]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20120302 snapshot
authorChet Ramey <chet.ramey@case.edu>
Mon, 9 Apr 2012 13:59:09 +0000 (09:59 -0400)
committerChet Ramey <chet.ramey@case.edu>
Mon, 9 Apr 2012 13:59:09 +0000 (09:59 -0400)
106 files changed:
AUTHORS
CWRU/CWRU.chlog
CWRU/CWRU.chlog~ [new file with mode: 0644]
CWRU/POSIX.NOTES.old [new file with mode: 0644]
CWRU/changelog [changed from file to symlink]
CWRU/old/set.def.save [new file with mode: 0644]
CWRU/save/unwind_prot.h.save [new file with mode: 0644]
MANIFEST
bashline.c
bashline.c~ [new file with mode: 0644]
builtins/evalstring.c
builtins/evalstring.c~ [new file with mode: 0644]
cross-build/cygwin32.cache.old [new file with mode: 0644]
doc/FAQ.orig [new file with mode: 0644]
doc/bash.1
doc/bashref.texi
examples/loadables/Makefile.in.save [new file with mode: 0644]
examples/scripts/adventure.sh.save1 [new file with mode: 0755]
lib/readline/complete.c
lib/readline/complete.c.save1 [new file with mode: 0644]
lib/readline/complete.c~ [new file with mode: 0644]
lib/readline/doc/Makefile.old [new file with mode: 0644]
lib/sh/zread.c~ [new file with mode: 0644]
po/af.gmo
po/af.po
po/bash.pot
po/bg.gmo
po/bg.po
po/ca.gmo
po/ca.po
po/cs.gmo
po/cs.po
po/da.gmo [new file with mode: 0644]
po/da.po
po/de.gmo
po/de.po
po/en@boldquot.gmo
po/en@boldquot.po
po/en@quot.gmo
po/en@quot.po
po/eo.gmo
po/eo.po
po/es.gmo
po/es.po
po/et.gmo
po/et.po
po/fi.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/ga.gmo
po/ga.po
po/gl.gmo [new file with mode: 0644]
po/gl.po
po/hu.gmo
po/hu.po
po/id.gmo
po/id.po
po/it.gmo [new file with mode: 0644]
po/it.po
po/ja.gmo
po/ja.po
po/lt.gmo
po/lt.po
po/nl.gmo
po/nl.po
po/pl.gmo
po/pl.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/sk.gmo
po/sk.po
po/sl.gmo [new file with mode: 0644]
po/sl.po
po/sv.gmo
po/sv.po
po/tr.gmo
po/tr.po
po/uk.gmo
po/uk.po
po/vi.gmo
po/vi.po
po/zh_CN.gmo
po/zh_CN.po
po/zh_TW.gmo
po/zh_TW.po
subst.c
subst.c~ [new file with mode: 0644]
tests/RUN-ONE-TEST
tests/RUN-ONE-TEST~ [new file with mode: 0755]
tests/array.right
tests/array6.sub
tests/array6.sub~ [new file with mode: 0644]
tests/intl.right
tests/intl.tests
tests/misc/regress/log.orig [new file with mode: 0644]
tests/misc/regress/shx.orig [new file with mode: 0644]
tests/new-exp.right
tests/new-exp2.sub
tests/new-exp2.sub~ [new file with mode: 0644]
tests/unicode1.sub [new file with mode: 0644]
tests/unicode2.sub [new file with mode: 0644]

diff --git a/AUTHORS b/AUTHORS
index 67cacd66490f0d28cb1a8ae1e30b870fb81a8d40..9ad0ba282bfd350469bf07f9c403820f7b9e0e15 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -390,6 +390,7 @@ tests/strip.tests       Chet Ramey
 tests/strip.right       Chet Ramey
 tests/tilde-tests       Chet Ramey
 tests/tilde.right       Chet Ramey
+tests/unicode1.sub     Chet Ramey, John Kearney
 tests/varenv.right      Chet Ramey
 tests/varenv.sh        Chet Ramey
 tests/misc/chld-trap.sh Chet Ramey
index ff5b2f9f2b01c2337153e1ee60306b29d1178777..7a936b967e48f09d2699321ed8fc518fcb5cf235 100644 (file)
@@ -4285,7 +4285,7 @@ findcmd.c
 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
+       - in parameter_brace_substring, increment `len' if start == 0, since
          we will be adding $0 to the beginning of the list when we process it
 
 doc/{bash.1,bashref.texi}
@@ -13450,4 +13450,44 @@ unicode.c
        - u32cconv: return UTF-8 conversion if iconv conversion to local
          charset is unsupported
 
-         
+                                   3/2
+                                   ---
+lib/readline/complete.c
+       - print_filename: if there is no directory hook, but there is a stat
+         hook, and we want to append a slash to directories, call the stat
+         hook before calling path_isdir on the expanded directory name.
+         Report and pointer to fix from Steve Rago <sar@nec-labs.com>
+
+                                   3/3
+                                   ---
+builtins/evalstring.c
+       - parse_and_execute: fix to change of 2/18: make sure the file
+         descriptor being redirected to is 0 before calling cat_file when
+         we see something like $(< file).  Real fix for bug reported by
+         Dan Douglas <ormaaj@gmail.com>
+
+subst.c
+       - parameter_brace_patsub: run the replacement string through quote
+         removal even if the expansion is within double quotes, because
+         the parser and string extract functions treat the quotes and
+         backslashes as special.  If they're treated as special, quote
+         removal should remove them (this is the Posix position and
+         compatible with ksh93).  THIS IS NOT BACKWARDS COMPATIBLE.
+
+                                   3/4
+                                   ---
+lib/readline/complete.c
+       - rl_menu_complete: fix to make show-all-if-ambiguous and
+         menu-complete-display-prefix work together if both are set.  Fix
+         from Sami Pietila <sami.pietila@gmail.com>
+
+                                   3/5
+                                   ---
+bashline.c
+       - dircomplete_expand_relpath: new variable, if non-zero, means that
+         `shopt -s direxpand' should expand relative pathnames.  Zero by
+         default, not user-settable yet
+       - bash_directory_completion_hook: if we have a relative pathname that
+         isn't changed by canonicalization or spell checking after being
+         appended to $PWD, then don't change what the user typed.  Controlled
+         by dircomplete_expand_relpath
diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~
new file mode 100644 (file)
index 0000000..8df2382
--- /dev/null
@@ -0,0 +1,13490 @@
+                                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, since
+         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 Kratochvil <jan.kratochvil@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
+         Kratochvil <jan.kratochvil@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 Pietila
+         <sami.pietila@gmail.com>
+
+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]
+
+                                  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)
+
+                                  10/19
+                                  -----
+builtins/evalfile.c
+       - even if the `check binary' flag is not passed to _evalfile, return an
+         error after reading 128 null characters if called by `source', on
+         the assumption that it's probably a binary file.  [This will be in
+         bash-4.1-beta]
+
+                                  10/24
+                                  -----
+[bash-4.1-alpha released]
+
+bashline.c
+       - don't call command_substitution_completion_function if we're
+         completing a substring delimited by a single quote.  Fixes bug
+         reported by bash-bugs@atu.cjb.net
+
+lib/readline/complete.c
+       - make sure _rl_skip_completed_text defaults to 0, as the
+         documentation states (incorrect in bash-4.1-alpha)
+       - in insert_match, skip over a close quote in the replacement text if
+         the character at point when completion is invoked is a single
+         quote.  Fixes complaint from bash-bugs@atu.cjb.net
+
+                                  10/26
+                                  -----
+shell.c
+       - in main, make sure "$EMACS" is non-null before calling strstr on its
+         value.  Fixes Red Hat bug 530911 submitted by Mitchell Berger
+
+builtins/mapfile.def
+       - don't save callback commands in shell history.  Suggested by
+         Jan Schampera <jan.schampera@web.de>
+
+mailcheck.c
+       - in file_mod_date_changed, make sure the modification time is later
+         than the saved modification date, not just that it's not equal.
+         Fix from Evgeniy Dushistov <dushistov@mail.ru>
+       - in file_access_date_changed, make sure the access time is later
+         than the saved access time, not just that it's not equal
+
+                                  10/27
+                                  -----
+builtins/shopt.def
+       - added new `compat40' compatibility variable, with associated changes
+         to shell_compatibility_level(), since the default compatibility level
+         is now 41
+
+test.c
+       - make the < and > operators to [[ use strcoll() only if the shell
+         compatibility level is greater than 40 (it is 41 by default in
+         bash-4.1)
+
+                                  10/28
+                                  -----
+support/shobj-conf
+       - decrease the default version of FreeBSD that creates shared libraries
+         to 4.x.  Advice from Peter Jeremy <peterjeremy@acm.org>
+
+                                  11/2
+                                  ----
+parse.y
+       - change parse_comsub to free `heredelim' and set it to 0 whenever the
+         comsub scanner finds the end of a here document.  Really need to
+         implement a stack of here doc delimiters like in the parser (can we
+         use redir_stack here, too?)
+       - fix parse_comsub to not attempt to read another here doc delimiter
+         after seeing a shell break character (that is not newline) if we
+         already have one.  Fixes Debian bash bug #553485, submitted by
+         Samuel Hym <samuel.hym@gmail.com>
+
+                                  11/3
+                                  ----
+variables.c
+       - fix bind_variable_internal to call a variable's dynamic 'set function'
+         with the right arguments depending on whether it's an associative
+         array, an indexed array, or a scalar.  Fixes Ubuntu bug #471504
+         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/471504 reported
+         by AJ Slater <aj.slater@gmail.com>
+
+[bash-4.1-beta frozen]
+
+                                  11/11
+                                  -----
+builtins/printf.def
+       - in getintmax(), in the case of a conversion error, return the partial
+         value accumulated so far, which is suppose to be what
+         strtoimax/strtoll/strtol returns
+
+                                  11/17
+                                  -----
+[bash-4.1-beta released]
+
+                                  11/18
+                                  -----
+builtins/{common.h,shopt.def},shell.c
+       - changed shopt variable "set functions" to take the option name as
+         the first argument; changed function prototypes and callers
+
+builtins/shopt.def
+       - change set_compatibility_level() to turn off other compatNN options
+         when one is set -- enforce mutual exclusivity.  Fixes problem noted
+         by Jan Schampera <jan.schampera@web.de>
+
+                                  11/19
+                                  -----
+lib/readline/rltty.c
+       - make sure prepare_terminal_settings() tests for the presence of
+         ECHOCTL before using it.  Fixes bug reported by Joachim Schmitz
+         <schmitz@hp.com>
+
+config-top.h
+       - new WORDEXP_OPTION define (off by default)
+
+shell.c
+       - don't include the --wordexp option or the supporting function
+         (run_wordexp) if WORDEXP_OPTION is not defined.  Suggested by
+         Aharon Robbins <arnold@skeeve.com>
+
+execute_cmd.c
+       - in execute_cond_node, turn on comsub_ignore_return if the flags
+         indicate we're ignoring the return value before calling
+         cond_expand_word.  Fixes bug reported by Anirban Sinha
+         <asinha@zeugmasystems.com>
+
+                                  11/20
+                                  -----
+lib/sh/snprintf.c,builtins/printf.def
+       - change check for HAVE_ASPRINTF and HAVE_SNPRINTF to check if value
+         is 1 or 0 rather than whether they are defined or not.  This allows
+         a value of 0 to enable function replacement
+
+configure.in,aclocal.m4
+       - new autoconf macro, BASH_FUNC_SNPRINTF, checks for snprintf present
+         and working as C99 specifies with a zero length argument.  Idea
+         from Greg Wooledge <wooledg@eeg.ccf.org>
+       - new macro BASH_FUNC_VSNPRINTF, does same thing for vsnprintf
+
+                                  11/25
+                                  -----
+subst.c
+       - in command_substitute, only tell parse_and_execute to reset the line
+         number in an interactive shell if sourcelevel == 0 -- we'll use the
+         line numbers from the sourced file
+
+execute_cmd.c
+       - in execute_simple_command, only subtract function_line_number from
+         line_number if sourcelevel == 0.  If sourcing, we'll use the line
+         numbers from the sourced file.  Fixes bug reported by Hugo
+         Mildenberger <Hugo.Mildenberger@namir.de>
+
+builtins/declare.def
+       - in declare_internal, call bind_assoc_variable instead of
+         bind_array_variable in the case of declare -A foo=bar.  Fixes bug
+         reported by Bernd Eggink <monoped@sudrala.de>.
+
+                                  11/27
+                                  -----
+lib/readline/util.c
+       - change declaration for _rl_walphabetic to use prototype, assuming
+         that any system with multibyte characters has a compiler that can
+         handle prototypes.  Fix for AIX compilation problem reported by
+         Nick Hillman <nick_hillman@neverbox.com>
+
+                                  11/28
+                                  -----
+execute_cmd.c
+       - make funcnest file-scope static and unwind-protect its value in
+         execute_function, so it can be used as a real measure of function
+         call nesting
+
+general.c
+       - fix off-by-one error in trim_pathname that caused it to short-circuit 
+         when PROMPT_DIRTRIM == number of directories - 1.  Fixes bug
+         reported by Dennis Williamson <dennistwilliamson@gmail.com>
+
+                                  11/29
+                                  -----
+jobs.c
+       - when fork() returns -1/EAGAIN, call waitchld(-1, 0) so the shell can
+         reap any dead jobs before trying fork again.  Currently disabled
+         until bash-4.2 development starts
+
+lib/readline/complete.c
+       - when incrementing _rl_interrupt_immediately, make sure it's greater
+         than 0 before decrementing it.  In practice, not a problem, but
+         the right way to do it.  Suggested by Jan Kratochvil
+         <jan.kratochvil@redhat.com>
+
+lib/readline/signals.c
+       - make sure rl_signal_handler doesn't set rl_caught_signal if
+         _rl_interrupt_immediately is set, so RL_CHECK_SIGNALS doesn't
+         cause it to be processed twice.  Suggested by Jan Kratochvil
+         <jan.kratochvil@redhat.com>
+       - if the callback interface is being used, use the code path that
+         immediately handles signals.  This restores the readline-5.2
+         behavior.  Fixes GDB readline bug reported by Jan Kratochvil
+         <jan.kratochvil@redhat.com>
+
+                                  12/18
+                                  -----
+[bash-4.1-rc1 released]
+
+                                  12/22
+                                  -----
+config-top.h
+       - don't have SYSLOG_HISTORY enabled by default
+
+lib/sh/Makefile.in
+       - add explicit dependency on pathnames.h for parallel make support
+
+externs.h
+       - add extern declaration for xtrace_fdchk
+
+lib/sh/snprintf.c
+       - add local prototype declarations for isinf, isnan if we are providing
+         local definitions
+
+lib/sh/fnxform.c
+       - add extern declaration for get_locale_var if HAVE_LOCALE_CHARSET not
+         defined
+
+execute_cmd.c
+       - define NEED_FPURGE_DECL so we pick up any extern declaration for
+         fpurge (e.g., if the system doesn't provide it)
+
+builtins/shopt.def
+       - correct prototype and declaration for set_shellopts_after_change so
+         it's the correct type for shopt_set_func_t
+       - add new function shopt_enable_hostname_completion that is the correct
+         type for shopt_set_func_t; just calls enable_hostname_completion and
+         returns its result
+
+                                  12/26
+                                  -----
+doc/{bash.1,bashref.texi}
+       - add \E and \" escape sequences to ANSI-C quoting description.
+         Suggested by Aharon Robbins <arnold@skeeve.com>
+
+                                  12/29
+                                  -----
+doc/bash.1
+       - make sure shell and environment variable names are always in
+         `small caps' bold.  Suggested by Aharon Robbins <arnold@skeeve.com>
+
+                                  12/30
+                                  -----
+{execute_cmd.c,parse.y,Makefile}
+       - changes for building minimal configuration from Matthias Klose
+         <doko@debian.org>
+
+[bash-4.1 frozen]
+
+                                  12/31
+                                  -----
+[bash-4.1 released]
+
+                                1/5/2010
+                                --------
+doc/bashref.texi
+       - document compat32 and compat40 shopt options.  Omission pointed out
+         by Dilyan Palauzov <Dilyan.Palauzov@aegee.org>
+
+                                   1/6
+                                   ---
+lib/readline/complete.c
+       - use `convfn' (converted filename) instead of entry->d_name (filename
+         read from file system) when adding partial or full completions to
+         the command line.  Bug and fix from Guillaume Outters
+         <guillaume.outters@free.fr>
+
+                                   1/7
+                                   ---
+builtins/printf.def
+       - fix prototype in extern declaration for vsnprintf.  Fix for bug
+         reported by Yann Rouillard <yann@pleiades.fr.eu.org>
+
+                                   1/9
+                                   ---
+parse.y
+       - fix shell_getc to handle alias expansions containing quoted
+         newlines.  Problems in bash-4.1 with aliases containing quoted
+         newlines in the middle of and at the end of their expansion.
+         Fix for bug reported by Jonathan Claggett
+         <jonathan@claggett.org>
+       - change mk_alexpansion to not append a space to an alias
+         expansion ending with a newline.  Works with shell_getc
+
+                                  1/11
+                                  ----
+lib/glob/Makefile.in
+       - add dependencies on shell.h and pathnames.h.  From Mike Frysinger
+         <vapier@gentoo.org>
+
+                                  1/15
+                                  ----
+doc/{bash.1,{bashref,version}.texi},lib/readine/doc/rluser.texi
+       - some typo fixes from Aharon Robbins <arnold@skeeve.com>
+       - added descriptions of ENV, COPROC, and MAPFILE variables
+       - added descriptions of READLINE_LINE and READLINE_POINT
+
+                                  1/21
+                                  ----
+arrayfunc.c
+       - free `akey', the word-expanded index into the assoc array to avoid
+         mem leak in array_value_internal
+       - free index into assoc array in unbind_array_element
+       - change array_value_internal to take an additional argument: an
+         arrayind_t *.  If not null, an index to an indexed array is
+         returned there.  If not an indexed array or subscript is @ or
+         *, the value is unchanged
+
+                                  1/22
+                                  ----
+builtins/ulimit.def
+       - include <ulimit.h> if we found it during configure and we don't
+         have resources.  Fixes omission reported by Joachim Schmitz
+         <jojo@schmitz-digital.de>
+
+{configure,config.h}.in
+       - check for <ulimit.h>, define HAVE_ULIMIT_H if found
+
+lib/sh/oslib.c
+       - include <signal.h> for extern declaration for kill(2) if
+         HAVE_KILLPG not defined
+
+jobs.c
+       - if HAVE_KILLPG is not defined, add an extern prototype decl for
+         killpg()
+
+                                  1/24
+                                  ----
+print_cmd.c
+       - when printing here-string redirections, don't quote the string.  The
+         original quotes, if any, are still in place and don't need to be
+         requoted.  Fixes bug reported by Arfrever Frehtes Taifersar Arahesis
+         <arfrever.fta@gmail.com>
+
+subst.c
+       - fix array_length_reference to return 0 for variables that have not
+         been assigned a value.  Fixes bug reported by Mart Frauenlab
+         <mart.frauenlob@chello.at>, but is not backwards compatible
+
+arrayfunc.[ch]
+       - change array_value to take a new arrayind_t *indp parameter like
+         get_array_value; changed extern prototype declaration
+
+subst.c
+       - changed callers of array_value to add extra parameter
+
+expr.c
+       - change expr_streval to set a new `lvalue' parameter with information
+         about the string being evaluated: string, value, array index (if
+         any), variable evaluated (if set).
+       - saving and restoring current context now saves and restores the
+         current `lvalue'
+       - new function expr_bind_array_element, binds an array element with an
+         already-computed index to a specified value
+       - anywhere we set the current token to a string (STR), save and set
+         the current lvalue
+       - change calls to expr_bind_variable to check whether or not the
+         current lvalue indicates an indexed array was evaluated, and, if so,
+         call expr_bind_array_element using the already-computed index
+         (curlval.ind).  Fixes problems with dynamic variables (e.g., RANDOM)
+         in array indices with {pre,post}-{inc,dec}rement and op=
+         operators reported by <dennis@netstrata.com>
+
+                                  1/25
+                                  ----
+expr.c
+       - fix subexpr() to initialize curlval and lastlval when resetting all
+         of the rest of the expression-parsing variables
+
+                                  1/26
+                                  ----
+builtins/setattr.def
+       - in show_var_attributes, if the variable is not set (value == 0),
+         don't print `name=""', just print `name'.  Pointed out by
+         Mart Frauenlab <mart.frauenlob@chello.at>
+
+arrayfunc.c
+       - fix array_keys to return NULL if the variable is not set or
+         invisible.  Pointed out by Mart Frauenlab <mart.frauenlob@chello.at>
+       - change array_value_internal to return NULL for variable which has
+         not been set
+
+                                  1/30
+                                  ----
+bashline.c
+       - in command_word_completion_function, don't call glob_pattern_p
+         on hint -- use the already-computed `globpat'.  At this point,
+         hint might contain an already-dequoted globbing character, but
+         glob_matches will be NULL.  Fixes bug reported by
+         coyote@wariat.org.pl
+
+                                   2/5
+                                   ---
+builtins/exec.def
+       - set extern variable "exec_argv0" to the argument to -a
+
+shell.c
+       - if exec_argv0 is set, set dollar_vars[0] to it and set it to NULL,
+         assuming it was set by `exec -a'.  `exec -a foo' now sets $0 to
+         foo in an executable shell script without a leading `#!' (fixes
+         longstanding bug)
+
+                                   2/8
+                                   ---
+variables.c
+       - in push_func_var, if a variable is in a special builtin's temporary
+         environment and needs to be propagated because we're in Posix mode,
+         or we just need to propagate a variable, and we are executing in a
+         function without any local variables (so the function-local variable
+         context has no variable hash table), make sure we create a hash
+         table so we have a place to save the variable to be propagated.
+         Fixes bug reported by Crestez Dan Leonard <cdleonard@gmail.com>.
+
+                                  2/18
+                                  ----
+builtins/hash.def
+       - change add_hashed_command to remove the command being looked up from
+         the hash table before trying to add it.  That way, if it's not found,
+         there won't be anything remaining in the hash table
+
+                                  2/26
+                                  ----
+trap.[ch]
+       - move IMPOSSIBLE_TRAP_HANDLER define to trap.h so other parts of the
+         shell can use it
+
+parse.y
+       - change yy_readline_get to use IMPOSSIBLE_TRAP_HANDER instead of NULL
+         as a sentinel value for the SIGINT signal handler
+       - make sure yy_readline_get resets interrupt_immediately to 0 after
+         calling readline() using the same criteria it used to set it to 1
+         before the call -- make the code symmetric.  Suggested by Werner
+         Fink <werner@suse.de>
+
+builtins/read.def
+       - move assignment to `retval' before decrement of interrupt_immediately
+         and terminate_immediately and call to discard_unwind_frame
+       - move assign_vars label before decrement of interrupt_immediately and
+         terminate_immediately so those variables get reset appropriately
+         if read -t times out
+
+subst.h
+       - new define for Q_DOLBRACE, indicates double-quoted ${...}
+
+subst.c
+       - in parameter_brace_expand, before calling parameter_brace_expand_rhs,
+         add Q_DOLBRACE to `quoted' if we're within double quotes.
+       - in expand_word_internal, if the Q_DOLBRACE flag is set, remove a
+         backslash escaping a }.  Result of a Posix discussion on the
+         austin-group list
+
+                                  2/27
+                                  ----
+variables.c
+       - new functions to save and restore the PIPESTATUS variable's internal
+         array: save_pipestatus_array and restore_pipestatus_array
+
+variables.h
+       - new extern declarations for save_pipestatus_array and
+         restore_pipestatus_array
+
+trap.c
+       - in run_pending_traps, _run_trap_internal, and run_exit_trap, save
+         and restore $PIPESTATUS while traps are running.  Fixes bug
+         reported by Florian Bruhin <me@the-compiler.org>
+
+parse.y
+       - use save_pipestatus_array and restore_pipestatus_array in
+         save_parser_state and restore_parser_state, respectively, replacing
+         inline code
+
+lib/readline/histfile.c
+       - fix callers of history_filename to be prepared to cope with it
+         returning NULL
+       - change history_filename to return NULL if $HOME is not set, rather
+         than trying to write the history file in the current directory.
+         This is the default directory, used only if the application does
+         not specify a history filename.  Changed due to long-ago (unsent)
+         bug report from OpenBSD
+
+{Makefile,config.h,configure}.in,externs.h,lib/sh/{dprintf.c,Makefile.in}
+       - change fdprintf to dprintf, which is the Posix standard interface,
+         look for it with configure, replace it if not available
+
+                                  2/28
+                                  ----
+command.h
+       - add new subshell flag, SUBSHELL_RESETTRAP.  Indicates to the trap
+         builtin that the shell is executing a command substitution and
+         should free the trap strings we left unfreed by reset_signal_handlers()
+
+trap.c
+       - free_trap_string() and free_trap_strings() are now compiled in
+
+builtins/trap.def
+       - if changing a signal disposition and the SUBSHELL_RESETTRAP flag is
+         set in subshell_environment, free the trap strings left unfreed by
+         reset_signal_handlers
+
+subst.c
+       - in command_substitute, set the SUBSHELL_RESETTRAP flag.  This change
+         is for Austin Group Posix interpretation 53
+         (http://austingroupbugs.net/view.php?id=53)
+
+                                   3/7
+                                   ---
+lib/sh/{Makefile.in,strchrnul.c},Makefile.in
+       - implementation of strchrnul, from gnulib
+
+configure.in,config.h.in
+       - look for strchrnul and compile in version in lib/sh/strchrnul.c if
+         not available
+       - look for mbsnrtowcs and define HAVE_MBSNRTOWCS if available
+
+lib/sh/xmbsrtowcs.c
+       - new function, xdupmbstowcs2, fast version of xdupmbstowcs used when
+         mbsnrtowcs is available and the indices are not required.  Called
+         from xdupmbstowcs as required.  Initial patch from
+         <0xe2.0x9a.0x9b@gmail.com>
+
+                                  3/22
+                                  ----
+print_cmd.c
+       - call print_deferred_heredocs virtually every time a recursive call
+         to make_command_string_internal is made so here documents get
+         printed correctly when they are attached to commands inside compound
+         commands such as for and while.  Fixes bug reported by Mike
+         Frysinger <vapier@gentoo.org>
+
+                                  3/25
+                                  ----
+builtins/printf.def
+       - fix have_precision case in PF macro to call printf with precision
+         instead of fieldwidth argument.  Fixes bug reported by Rob Robason
+         <rob@robason.net>
+
+                                  3/26
+                                  ----
+trap.[ch]
+       - new function, signal_is_hard_ignored, returns true if the shell
+         inherited SIG_IGN as a signal's disposition
+       - new function, set_original_signal (sig, handler), provides interface
+         for rest of shell to set original_signals[sig] = handler
+
+execute_cmd.c
+       - execute_disk_command needs to call reset_terminating_signals in the
+         child process before resetting traps with restore_original_signals
+
+builtins/trap.def
+       - call initialize_terminating_signals before calling display_traps for
+         trap -p or trap without any other arguments.  Possible future use
+
+lib/readline/complete.c
+       - rl_filename_completion_function needs to call
+         rl_filename_dequoting_function with `dirname' (which has already
+         been tilde-expanded) instead of `users_dirname', because it calls
+         opendir with `dirname'.  Fixes bug reported by Stefan H. Holek 
+         <stefan@jarn.com>
+
+                                  3/27
+                                  ----
+sig.c
+       - experimental change to set_signal_handler: when setting the SIGCHLD
+         handler, set the SA_RESTART flag so that interruptible system calls
+         get restarted after a child dies.  Fixes bug reported by Tomas
+         Trnka <tomastrnka@gmx.com>, but needs further evaluation
+
+lib/sh/eaccess.c
+       - eaccess(2) apparently does only half the job: it does not check that
+         the permission bits on a file actually allow, for instance, execution.
+         Need to augment with a call to sh_stataccess if eaccess returns
+         success on FreeBSD.  Fixes FreeBSD problem reported by Johan Hattne
+         <johan.hattne@utsouthwestern.edu>
+
+                                  3/28
+                                  ----
+parse.y,bashline.c,externs.h
+       - history_delimiting_chars now takes a const char * as an argument:
+         the line being added to the history.  Changed callers
+
+parse.y
+       - bash_add_history should not add a semicolon separator if the current
+         history entry already ends in a newline.  It can introduce syntax
+         errors (e.g., when it results in a null command before a close brace).
+         Fixes bug reported by Andreas Schwab <schwab@linux-m68k.org>
+
+parse.y
+       - history_delimiting_chars needs to return a newline instead of a
+         semicolon if it thinks the current line starts a here document
+         (if it contains `<<').  Also keeps track of the fact with a new
+         static variable, LAST_WAS_HEREDOC, so it can return the right
+         sequence of newlines later for the here-document body.  Fixes bug
+         reported by Andreas Schwab <schwab@linux-m68k.org>
+
+                                  3/29
+                                  ----
+lib/sh/eaccess.c
+       - if the system has faccessat, sh_eaccess will now use it in
+         preference to all other options
+
+                                  3/30
+                                  ----
+subst.h
+       - new string_extract and extract_dollar_brace_string flag value:
+         SX_POSIXEXP, set if the shell is expanding one of the new Posix
+         pattern removal word expansions
+
+parser.h
+       - new definitions for "word expansion state", shared between parse.y
+         and subst.c
+
+subst.c
+       - include parser.h
+
+                                   4/9
+                                   ---
+builtins/declare.def
+       - make sure declare_internal calls bind_assoc_variable with newly-
+         allocated memory for the key argument when using an implicit key
+         of "0".  Bug report and fix from Andreas Schwab
+         <schwab@linux-m68k.org>
+
+                                  4/14
+                                  ----
+lib/readline/input.c
+       - restructure the rl_event_hook loop in rl_read_key to call the
+         event hook after rl_gather_tyi() returns and rl_get_char has
+         a chance to collect the input.  Previous behavior was to call
+         the event hook before attempting to read input.  Problem
+         reported by Anant Shankar <anantshankar17@gmail.com>
+
+                                  4/15
+                                  ----
+builtins/fc.def
+       - fc_builtin needs to check whether the calculation of last_hist
+         leaves hlist[last_hist] == 0, and keep decrementing it until it
+         leaves a non-null history entry or goes < 0.  Currently only
+         does this if saved_command_line_count > 0, indicating we're
+         trying to edit a multi-line command.  Fixes bug reported by
+         Roman Rakus <rrakus@redhat.com>
+
+                                  4/17
+                                  ----
+subst.c
+       - new process substitution helper functions:
+               unlink_fifo - closes a single FD or FIFO
+               num_fifos - returns number of open FDs or active FIFOs
+               copy_fifo_list - returns a bitmap of open FDs or active FIFOs
+                 by index into appropriate list (dev_fd_list or fifo_list)
+               close_new_fifos - take a bitmap saved by copy_fifo_list and
+                 call unlink_fifo on any FD or FIFO open at the time of the
+                 call that is not marked as active in list
+
+execute_cmd.c
+       - execute_builtin_or_function: use new framework to close process
+         substitution FDs or FIFOs created by a shell builtin or shell
+         function.  Fixes bug reported by Charles Duffy <charles@dyfis.net>
+
+doc/{bash.1,bashref.texi}
+       - document 'C and "C constants for printf builtin
+
+                                  4/22
+                                  ----
+lib/readline/complete.c
+       - new function to return screenwidth for use when displaying possible
+         matches: complete_get_screenwidth; changed uses of _rl_screenwidth
+         to use complete_get_screenwidth().
+       - change complete_get_screenwidth to query (readline-private)
+         _rl_completion_colums, $COLUMNS, then _rl_screenwidth in that order
+       - change rl_display_match_list to deal with limit < 0 (which implies
+         that cols == 0) when _rl_screenwidth > 0
+
+lib/readline/bind.c
+       - new bindable variable: completion-display-width, controls the
+         number of columns used when displaying completions with new
+         sv_compwidth function to call when value is set or unset
+
+lib/readline/doc/{readline.3,rltech.texi}
+       - documented completion-display-width variable
+
+                                  4/23
+                                  ----
+execute_cmd.c
+       - change execute_in_subshell to reset trap handlers without freeing
+         the trap strings and set SUBSHELL_RESETTRAP.  In line with Austin
+         Group interp #53 (trap in a subshell).
+       - ditto for execute_simple_command where it can be determined that
+         the shell is going to run a builtin or function in a subshell
+
+trap.c
+       - new function, get_all_original_signals, retrieves the original
+         signal disposition for all signals
+
+trap.h
+       - extern declaration for get_all_original_signals
+
+builtins/trap.def
+       - change showtrap to display signals that are "hard ignored" as
+         trap commands to ignore them, even though that trap command would
+         be a no-op.  Partial fix for feature request from Siddhesh
+         Poyarekar <siddhesh.poyarekar@gmail.com>
+       - change trap_builtin to call get_all_original_signals before displaying
+         traps.  This will show inherited ignored signals.  Rest of feature
+         request from Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
+
+lib/readline/histexpand.c
+       - fix history_tokenize_word so that it understands $(...) and the
+          <(...) and >(...) expansions as a single word
+       - change history_tokenize_word so that it understands extended shell
+         globbing patterns as a single word.  Code is very similar to
+         $(...) code above.  Bug reported by Rajeev V. Pillai
+         <rajeevvp@gmail.com>
+
+                                  4/24
+                                  ----
+lib/readline/vi_mode.c
+       - add checks to rl_vi_char_search to make sure we've already done a
+         search if the command is `;' or `,', and return immediately if we
+         have not.  Fixes bug reported by Eric Ho <ericmho@shaw.ca>
+
+lib/readline/text.c
+       - make sure `dir' is in the valid range before searching in
+         _rl_char_search_internal.  Range checks in the code depend on it
+         being non-zero
+
+                                   5/3
+                                   ---
+lib/readline/complete.c
+       - in rl_complete_internal, if show-all-if-ambiguous or
+         show-all-if-unmodified are set (what_to_do == '!' or '@',
+         respectively), and the common match prefix is shorter than the
+         text being completed, inhibit inserting the match.
+         The guess is that replacing text with a shorter match will not
+         be wanted
+
+                                  5/20
+                                  ----
+lib/sh/unicode.c
+       - new file, with unicode character conversion-related code.  Will be
+         used to implement \u and \U escapes where appropriate, and for
+         other unicode-related functions in the future
+
+                                  5/21
+                                  ----
+builtins/printf.def
+       - add code to handle \u and \U escapes in format strings and arguments
+         processed by the %b format specifier
+
+lib/sh/strtrans.c
+       - add code to handle \u and \U escapes as unicode characters, works for
+         both `echo -e' and $'...'
+
+doc/{bash.1,bashref.texi}
+       - document new \u and \U escape sequences for $'...' and echo (printf
+         defers to the system's man page or Posix)
+
+                                  5/24
+                                  ----
+execute_cmd.c
+       - change execute_disk_command to return a status, instead of just
+         leaving it in `last_command_exit_value', since the parent's return
+         value is sometimes used (e.g., when a restricted shell refuses to
+         run a command with a `/').  Fixes bug reported by David Pitt
+         <David.Pitt@anz.com>
+
+                                  5/25
+                                  ----
+bashline.c
+       - change bash completion functions to save and restore the value of
+         rl_ignore_some_completions_function, and set it to the bash default
+         of filename_completion_ignore where appropriate.  Fixes bug
+         reported by Henning Bekel <h.bekel@googlemail.com>
+
+variables.c
+       - new convenience function: find_global_variable (name).  Looks for
+         NAME in the global variables table, skipping any local and
+         temporary environment variables
+
+builtins/declare.def
+       - add new -g option to declare/typeset/local, forces variables to be
+         created or modified at the global scope when executing inside a
+         shell function.  Requested by many, most recently by
+         konsolebox@gmail.com
+
+                                  5/27
+                                  ----
+test.c
+       - added new `-v var' unary test operator; returns TRUE if var is set
+         (i.e., has been assigned a value).  Works in both test builtin and
+         [[ conditional command
+
+doc/{bash.1,bashref.texi}
+       - documented new `-v var' unary conditional operator
+
+tests/test.tests
+       - added tests for new -v var operator
+
+builtins/kill.def
+       - change kill builtin so -PID (pgrp specification) following a
+         -s sig or -n sig option is not interpreted as a signal specification.
+         Fixes bug reported by Roman Rakus <rrakus@redhat.com>
+
+builtins/evalstring.c
+       - in parse_and_execute, if parse_command() returns non-zero,
+         indicating a parse error, exit the shell if the conditions require
+         a posix-mode non-interactive shell to abort (parse error in a `.'
+         script or eval string).  Bash-4.1 only printed a warning.  This is
+         from Austin Group interp 114
+
+doc/bashref.texi
+       - add note to the posix mode section of the texinfo manual noting
+         the changed behavior for `.' and `eval'
+
+parse.y
+       - change time_command_acceptable to allow TIME token to appear after
+         BANG token (to allow `! time foo', which is supposed to be valid)
+       - change pipeline_command production to allow multiple instances of
+         `!' (which toggle inverting the return status) and `time' (which
+         have no effect)
+
+execute_cmd.c
+       - In posix mode, `time' without a following pipeline prints the
+         elapsed user, system, and real time for the shell and its
+         children since the shell was invoked.
+         It's like `times' but obeys the setting of TIMEFORMAT.  A future
+         revision of Posix will require this
+
+doc/{bashref.texi,bash.1}
+       - document new posix mode use of `time' 
+
+parse.y
+       - add production to pipeline_command that permits `!' by itself to
+         be equivalent to `false' (and, with the changes above, permits
+         `! !' to be roughly equivalent to `true').  A future revision of
+         Posix will require this
+
+                                  5/28
+                                  ----
+parse.y
+       - fix \W prompt expansion to use memmove instead of strcpy, since the
+         source and target strings overlap (though you think it wouldn't
+         matter, since the overlapping regions are never touched at the same
+         time).  Fixes bug reported by Stéphane Jourdoi
+         <sjourdois@gmail.com>
+
+parse.y
+       - Posix interp 217 states that $(( must be parsed first as an
+         arithmetic expansion, so avoid attempting to parse it as a nested
+         command substitution.  Fixes bug reported by several, most recently
+         <jwm@horde.net>
+
+subst.c
+       - change extract_delimited_string to process nested $( as a possible
+         command substitution, but only if already parsing an arithmetic
+         expansion.  Rest of fix for Posix interp 217
+       - change parameter_brace_expand_rhs to make the := expansion operator
+         perform quote removal and both assign the result to the variable and
+         return it as the result of the expansion, rather than assign the
+         value after quote removal but return the value before quote removal.
+         Posix interp 221
+       - introduce new internal quoting flag: Q_DOLBRACE.  Denotes a double-
+         quoted ${...} expansion.  In this case, Posix interp 221 requires
+         that a backslash quoting an embedded `}' be removed, even though it's
+         not one of the characters marked as special inside double quotes.
+         Set in parameter_brace_expand, used by expand_word_internal.
+
+parse.y
+       - introduce new parsing state, P_DOLBRACE, set when parsing a ${...}
+         expansion
+       - set a "dolbrace operator state" in parse_matched_pair to decide
+         whether the lexer is reading the param, op, or word in
+         ${paramOPword}.  Will be used to decide whether or not to treat
+         single quotes specially in a double-quoted "${...}
+
+                                  5/29
+                                  ----
+parse.y
+       - change parse_matched_pair so that a single quote appearing in a
+         double-quoted ${...} expansion is not special unless the expansion
+         operator is `#[#]' or `%[%]'.  Posix interp 221
+
+subst.c
+       - change string_extract_double_quoted so that a single quote appearing
+         in a double-quoted ${...} expansion is not special unless the
+         expansion operator is `#[#]' or `%[%]'.  Posix interp 221
+
+doc/bashref.texi
+       - document posix-mode effects of Posix interp 221
+       - add section describing GNU parallel as requested by Stallman
+
+lib/readline/complete.c
+       - broke code that compares filenames read from the file system (and
+         possibly converted) to words being completed out into a separate
+         function: complete_fncmp
+       - augment complete_fncmp to treat hyphen and underscore as equivalent
+         when comparing filenames if _rl_completion_case_map is set
+
+lib/readline/rlprivate.h
+       - new extern declaration for _rl_completion_case_map
+
+lib/readline/util.c
+       - change _rl_strnicmp to return the difference between the characters,
+         like strcasecmp, and not modify the pointers it is passed
+       - change _rl_stricmp to not modify the pointers it is passed
+
+lib/readline/bind.c
+       - new bindable variable, "completion-case-map", toggles value of
+         _rl_completion_case_map
+
+lib/readline/doc/{rluser.texi,readline.3}
+       - document new bindable readline variable "completion-case-map"
+
+execute_cmd.c
+       - change execute_function to reset funcnest and jump back to top level
+         if funcnest exceeds funcnest_max
+       - use funcnest_max as a max function nesting level, if set to numeric
+         value greater than 0 (defaults to 0, so inactive)
+
+variables.c
+       - new variable FUNCNEST, controls funcnest_max value if set to numeric
+         value > 0
+sig.c
+       - reset funcnest to 0 when throw_to_top_level occurs
+
+doc/{bash.1,bashref.texi}
+       - document FUNCNEST variable and its effect on function execution
+
+lib/readline/funmap.c
+       - add new bindable command names to avoid case-insensitive matching
+         problems between, for instance, vi-fword and vi-fWord:
+
+               vi-forward-word
+               vi-forward-bigword
+               vi-backward-word
+               vi-backward-bigword
+               vi-end-word
+               vi-end-bigword
+
+         Suggested in a different form in 2006 (!) by Servatius Brandt
+         <servatius.brandt@arcor.de>
+
+builtins/mapfile.def
+       - run_callback now takes a new third argument: curline, the line
+         currently being read and about to be assigned
+       - the callback function/command now takes an additional argument:
+         the line to be assigned to the array index.  Feature suggested by
+         Dennis Williamson <dennistwilliamson@gmail.com>
+
+doc/{bash.1,bashref.texi}
+       - document new additional `line' argument to mapfile callback
+
+                                  5/30
+                                  ----
+builtins/printf.def
+       - add new %(fmt)T format specifier, where FMT is a strftime format.
+         Argument is number of seconds since the epoch, with -1 meaning
+         current time (roughly date +%s) and -2 meaning shell start time
+         (roughly $SECONDS, unless it's been assigned a value or unset).
+         Fieldwidth and precision are preserved, strftime result is printed
+         as with %[-][[fieldwidth][.[precision]]]s
+
+doc/{bash.1,bashref.texi}
+       - document new %(datefmt)T printf format specifier and special
+         arguments
+
+builtins/hash.def
+       - don't permit programs with slashes to be entered into the hash table
+         at all, even with the -p option.  Inconsistency pointed out by
+         Jan Schampera <jan.schampera@web.de>
+
+builtins/shopt.def
+       - add `compat41' option in preparation for bash-4.2
+
+                                   6/6
+                                   ---
+lib/readline/vi_mode.c
+       - finish restructuring rl_vi_domove and the functions that call it so
+         it works in callback mode, including numeric arguments.  Requested
+         a long time ago by Bob Rossi 
+
+lib/readline/callback.c
+       - arrange to call appropriate callback when readline state indicates
+         RL_STATE_VIMOTION, so vi motion commands like `cw' and `d2w' are
+         handled in callback mode
+
+lib/sh/wcswidth.c
+       - replacement wcswidth implementation
+
+aclocal.m4
+       - add REPLACE_FUNCS(wcswidth) to BASH_CHECK_MULTIBYTE
+
+execute_cmd.c
+       - fix select_query and print_index_and_element to compute correct
+         display width of select list elements in presence of multibyte
+         characters.  Bug reported by Bernd Eggink <monoped@sudrala.de>
+
+builtins/cd.def
+       - add posix-mandated -e option; currently ignored in most circumstances
+
+doc/{bash.1,bashref.texi}
+       - document new `cd -e' option
+
+                                  6/12
+                                  ----
+arrayfunc.c
+       - change array_value_internal to treat negative subscripts to indexed
+         arrays, offset from array_max_index(x) + 1, so foo[-1] is the last
+         element of $foo
+
+subst.c
+       - Change verify_substring_values to allow negative length specifications
+         when using string variables or array members.  Negative lengths
+         mean to return characters from OFFSET until (${#var} - N) for
+         {var:offset:-N}.  Feature requested by Richard Neill
+         <rn214@hermes.cam.ac.uk>
+
+doc/{bash.1,bashref.texi}
+       - document new behavior of negative subscripts to indexed arrays
+       - document new behavior of negative LENGTH in substring expansion
+
+configure.in
+       - change version to bash-4.2-devel
+
+variables.c
+       - make sure initialize_shell_variables calls sv_xtracefd if
+         BASH_XTRACEFD is inherited in the shell environment.  Fixes but
+         reported by <jsunx1@bellsouth.net>
+
+                                  6/13
+                                  ----
+lib/readline/complete.c
+       - change get_y_or_n to always return 1 when in callback mode, so we
+         don't do a blocking read.  Have to wait until readline-7.0 to add
+         a state so we can use callbacks, since that will change public
+         interface
+
+                                  6/17
+                                  ----
+subst.c
+       - fix memory leak in parameter_brace_expand: when performing pattern
+         removal with parameter_brace_remove_pattern, make sure `name' is
+         freed.  Fixes bug reported by oyvindh@dhampir.no
+
+                                  6/23
+                                  ----
+{parse.y,subst.c}
+       - make the ${param//pat/rep}, ${param^pat}, and ${param,pat} expansions
+         require single quotes and double quotes to match when within double
+         quotes.  This way every expansion except the Posix ones behaves as
+         bash has always behaved
+
+subst.c
+       - change remove_upattern and remove_wpattern to return their first
+         argument if nothing matches, change callers to allocate memory
+         appropriately
+       - change remove_pattern to short-circuit and return copy of PARAM
+         if remove_wpattern returns its first argument (indicating no match)
+         rather than convert back to multibyte string, allocating new memory
+         twice and calling wcsrtombs
+
+                                  6/24
+                                  ----
+execute_cmd.c
+       - add missing initializers for sh_coproc to eliminate a compiler
+         warning.  Patch from Werner Fink <werner@suse.de>
+
+                                  6/27
+                                  ----
+parse.y
+       - add `TIMEIGN' token to handle `time -p -- ...'.  Pointed out by
+         Laszlo Ersek <lacos@caesar.elte.hu> on austin-group list
+
+                                  6/28
+                                  ----
+jobs.c
+       - treat a shell with (subshell_environment&SUBSHELL_PIPE) != 0 like
+         a command substitution in wait_for and act like we received a
+         SIGINT if a job we're waiting for dies of SIGINT.  Fixes bug
+         reported by Ilya Basin <basinilya@gmail.com>
+
+                                   7/2
+                                   ---
+jobs.c
+       - if fork() fails in make_child, try to reap some dead children before
+         retrying
+
+execute_cmd.c
+       - change execute_pipeline to run the last command of a non-asynchronous
+         pipeline in the current shell environment if the `lastpipe' shell
+         option is enabled and job control is not active.  Code from
+         Werner Fink <werner@suse.de>
+
+parse.y
+       - Posix says (issue 267) that time is not recognized as a keyword
+         if the next token begins with a `-'
+
+doc/{bash.1,bashref.texi}
+       - changed the descriptions of BASH_SOURCE, BASH_LINENO, and FUNCNAME
+         as proposed in Ubuntu bug 591677.
+       - document new `lastpipe' shell option that runs last command of a
+         pipeline in the current shell environment
+       - document new posix-mode behavior with `time -p'
+
+                                   7/5
+                                   ---
+aclocal.m4
+       - new autoconf test WEXITSTATUS_OFFSET, bit offset in status word
+         returned by wait() of the process's exit status
+
+jobs.[ch]
+       - change stop_pipeline to return the actual index of the job just
+         created and added to the jobs table, instead of the current job
+       - job_exit_status and job_exit_signal are now global functions, with
+         extern declarations in jobs.h
+       - append_process: new utility function for use by the lastpipe code,
+         takes info, creates a PROCESS from them, and adds it to the end of
+         the passed job id's pipeline.  lastpipe code uses it to add a dummy
+         process for the last command in the pipeline
+       - freeze_jobs_list: new utility function so rest of shell can freeze
+         the jobs list.  Used by the lastpipe code
+
+execute_cmd.c
+       - changes to lastpipe code to make `pipefail' option, $PIPESTATUS, and
+         $? work correctly.  Uses append_process and job_exit_status
+
+                                  7/10
+                                  ----
+subst.c
+       - when performing pattern substitution word expansions, a `&' in the
+         replacement string is replaced by the text matched by the pattern.
+         The `&' can be quoted with a backslash to inhibit the expansion.
+         CURRENTLY DISABLED
+
+                                  7/13
+                                  ----
+pcomplib.[ch]
+       - new member for struct compspec: lcommand.  for future use
+
+                                  7/15
+                                  ----
+parse.y
+       - fix problem in parse_comsub where extra space was added to here-doc
+         delimiter if the first word in the comsub contained a `/'.  Fixes
+         bug reported by Alex Khesin <alexk@google.com>
+
+                                  7/20
+                                  ----
+parse.y
+       - change reserved_word_acceptable to return success if the last two
+         tokens read were `function WORD'.  Allows function definitions like
+         function good [[ -x foo ]];.  Fixes bug reported by Linda Walsh
+         <bash@tlinx.org>
+
+doc/{bash.1,bashref.texi}
+       - change function definition meta-syntax to make it clearer, rather
+         than let the text note the optional portions
+
+                                  7/24
+                                  ----
+bashhist.c
+       - change bash_history_inhibit_expansion() to suppress history expansion
+         for $! parameter expansion.  Fixes debian bug #589745 submitted by
+         Frank Heckenbach <f.heckenbach@fh-soft.de>
+
+lib/readline/terminal.c
+       - change rl_resize_terminal to always fetch the new terminal size and
+         only force the redisplay if _rl_echoing_p is non-zero.  Fixes bug
+         reported by Balazs Kezes <rlblaster@gmail.com>
+
+                                  7/25
+                                  ----
+lib/readline/xfree.c
+       - new file, contains definition of xfree moved from xmalloc.c
+
+                                  7/28
+                                  ----
+variables.c
+       - check suspect return values from bind_variable before trying to use
+         the returned SHELL_VAR *.  Changes to: initialize_shell_variables,
+         bind_int_variable, FIND_OR_MAKE_VARIABLE.  Fixes bug reported by
+         Roman Rakus <rrakus@redhat.com>
+
+                                  7/31
+                                  ----
+lib/readline/rltty.c
+       - fix rl_prep_terminal and rl_deprep_terminal to use fileno(stdout)
+         if rl_instream is NULL.  Fixes bug reported by Otto Allmendinger
+         otto.allmendinger@googlemail.com
+
+                                   8/2
+                                   ---
+lib/sh/casemod.c
+       - if the passed string is NULL or empty, return it immediately.  Fixes
+         bug reported by Dennis Williamson <dennistwilliamson@gmail.com>
+
+subst.c
+       - fix pat_subst to cope with the passed string being NULL
+
+arrayfunc.h
+       - added flag values for array_value_internal and its callers; converted
+         array_value_internal `allow_all' parameter into a general flags word
+       - get_array_value now takes a flags value
+       - changed array_value internal to use *indp as an index to use if the
+         AV_USEIND flag is set, rather than recomputing it
+
+subst.c
+       - get_var_and_type takes two new parameters: a flags word and an index
+         that represents an already-computed index for an array reference
+         (just indexed arrays so far).  Index is used and passed to array_value
+         if flags includes AV_USEIND
+       - parameter_brace_expand_word takes a new argument: the already-
+         computed index; returns W_ARRAYIND if word expanded is being used
+         as an array index
+       - changed parameter_brace_casemod, parameter_brace_patsub,
+         parameter_brace_substring, parameter_brace_remove_pattern to take new
+         flags and index arguments from parameter_brace_expand_word.  They
+         pass the new parameters along to get_var_and_type to use an
+         already-computed array index if necessary.  Fixes bug where array
+         indexes are computed twice reported by Andrew Benton
+         <b3nton@gmail.com>
+
+doc/bash.1,lib/readline/doc/{history.3,hsuser.texi}
+       - modified description of history event designators to clarify that
+         all non-absolute event designators are relative to the current
+         position in the history list.  Question raised by Frank
+         Heckenbach <f.heckenbach@fh-soft.de> as debian bash bug 590012
+
+                                   8/5
+                                   ---
+subst.c
+       - remove code that does not add a quoted null when the input string
+         is partially quoted; subsequent word splitting may require it.
+         Fixes bug reported by Eric Blake <eblake@redhat.com>
+
+                                  8/12
+                                  ----
+lib/glob/gmisc.c
+       - move match_pattern_wchar and match_pattern_char to new file in
+         glob library
+       - new functions: wmatchlen(pat, max) and umatchlen(pat, max), computes
+         number of characters PAT will match.  Returns the number of chars
+         that will be matched or -1 if the match length is indeterminate
+         (i.e., contains a `*')
+
+subst.c
+       - use umatchlen/wmatchlen in match_upattern/match_wpattern to bound
+         the number of match attempts in large strings to (usually) one,
+         depending on match length.  Fixes performance problems with
+         pattern substitution in large strings noted by Yi Yan
+         <yiyan97@hotmail.com>.  Can be applied to remove_[uw]pattern also
+
+                                  8/13
+                                  ----
+bashhist.c
+       - in maybe_append_history, change check for history_lines_this_session
+         so that we append the lines to the file if it's equal to the value
+         returned by where_history().  This means that without this change,
+         the history won't be appended if all the lines in the history list
+         were added in the current session since the last time the history
+         file was read or written.  Fixes bug reported by Bruce Korb
+         <bruce.korb@gmail.com>
+
+shell.h,parse.y
+       - add prompt_string_pointer to the parser_state struct saved and
+         restored by {save,restore}_parser_state.  Fixes both bugs exposed
+         by bash_completion and completion of open backquotes reported by
+         Egmont Koblinger <egmont@gmail.com>
+
+subst.h
+       - new flag for skip_to_delim: SD_EXTGLOB.  Skip extended globbing
+         patterns while looking for ending delimiter
+
+subst.c
+       - when passed the SD_EXTGLOB flag, skip_to_delim skips over extended
+         globbing patterns (when extended_glob is set) while looking for a
+         character in the delimiter set
+
+pathexp.c
+       - split_ignorespec: new function to replace calls to extract_colon_unit
+         in setup_ignore_patterns.  uses skip_to_delim with the SD_EXTGLOB
+         flag to skip over extended globbing patterns in variables like
+         HISTIGNORE and GLOBIGNORE.  Fixes bug reported by Dimitar DIMITROV
+         <mitkofr@yahoo.fr> and Greg Wooledge <wooledg@eeg.ccf.org>
+
+                                  8/28
+                                  ----
+lib/readline/rlprivate.h
+       - add members to search_cxt to save _rl_keymap
+       - new flag for isearch context: SF_CHGKMAP, set if we changed the
+         keymap while reading a character for the search string that
+         translated to a command
+
+lib/readline/isearch.c
+       - save current readline keymap in cxt->keymap and cxt->okeymap
+         in _rl_scxt_alloc
+       - in _rl_isearch_dispatch, only check for cxt->lastc as a member of
+         cxt->search_terminators if it's > 0 (i.e., not an isearch opcode)
+
+                                   9/3
+                                   ---
+support/signames.c
+       - add Solaris SIGJVM1 and SIGJVM2.  Update from Stefan Teleman
+         <stefan.teleman@oracle.com>
+
+shell.c
+       - instead of closing all fds 3-20 at shell startup, just set them to
+         be close-on-exec.  Report from Rainer Mülle <raimue@macports.org>
+
+lib/readline/isearch.c
+       - in _rl_isearch_dispatch, if the current character maps to ISKMAP,
+         move to the indicated keymap (using cxt->keymap) and go on to
+         read another character.  Fixes problem reported by Davor
+         Cubranic <cubranic@stat.ubc.ca>
+       - in _rl_isearch_dispatch, after translating key to possible opcode,
+         restore _rl_keymap from cxt->okeymap if necessary
+       - in _rl_isearch_dispatch, use key sequences that map to default
+         functions that ^G, ^W, and ^Y map to as equivalent to those chars
+
+lib/readline/complete.c
+       - new variable, _rl_menu_complete_prefix_first, zero by default
+       - change menu_complete to display common prefix (matches[0]) first
+         before cycling through rest of match list if
+         _rl_menu_complete_prefix_first is non-zero.  Suggested by Sami
+         Pietila <sami.pietila@gmail.com>
+
+lib/readline/bind.c
+       - new bindable readline variable, "menu-complete-display-prefix",
+         controls setting of _rl_menu_complete_prefix_first
+
+doc/{bash.1,bashref.texi},lib/readline/doc/{readline.3,rluser.texi}
+       - added description of menu-complete-display-prefix bindable
+         readline variable
+
+                                  9/17
+                                  ----
+configure.in
+       - remove AM_PATH_LISPDIR call since we don't use that bash debugger
+         any more.  Suggested by Mike Frysinger <vapier@gentoo.org>
+
+                                  10/6
+                                  ----
+findcmd.c
+       - change executable_file to set errno to EISDIR if the passed name
+         is a directory
+
+builtins/exec.def
+       - change exec_builtin to report appropriate error message if the
+         file argument is a directory.  Noted by Eric Blake <eblake@redhat.com>
+         in a message to austin-group
+
+builtins/source.def
+       - change source_builtin to make sure the shell exits if the file is
+         not found when in a non-interactive shell running in  posix mode
+         and source_searches_cwd == 0 (as posix mode makes it by default).
+         Pointed out in http://thread.gmane.org/gmane.comp.shells.dash/291/focus=392
+         by Jilles Tjoelker <jilles@stack.nl>
+
+execute_cmd.c
+       - set executing_command_builtin in execute_builtin if the builtin is
+         command_builtin.  Unwind-protected in execute_function_or_builtin
+         (like executing_builtin variable).  Available for rest of shell
+
+builtins/{source.def,evalfile.c}
+       - make sure that non-interactive posix mode shells exit if the file
+         argument to `.' is not found only if they are not being executed
+         by the command builtin (executing_command_builtin == 0).  This is
+         how `command' can cancel effects of special builtin exit properties
+         in the case of `dot file not found'
+
+                                  10/13
+                                  -----
+lib/sh/strtrans.c
+       - pass \c through unchanged if not escaping for `echo -e' and they are
+         the final two characters in the string
+
+                                  10/15
+                                  -----
+subst.c
+       - extract_dollar_brace_string: fix problem with single quotes
+         in unquoted ${...} for Posix compliance
+
+                                  10/16
+                                  -----
+builtins/exec.def
+       - catch return value from shell_execve; don't print duplicate error
+         message if return value is EX_NOTFOUND.  Make sure exit status
+         from exec is 127 if command is not found
+
+execute_cmd.c
+       - fix typo (`saved_redirects' should be `saved redirects') in
+         execute_function_or_builtin `command exec' case.  Typo caused
+         too much of the unwind-protect stack to be discarded
+       - in same execute_function_or_builtin case, don't discard the
+         `saved redirects' frame unconditionally; only discard it if
+         saved_redirects is non-null in the `command exec' case.  Fixes
+         sh -c 'command exec; exit 1' hanging bug uncovered by FreeBSD
+         sh test cases
+
+                                  10/18
+                                  -----
+subst.c
+       - when in posix mode, shell should not exit if a variable assignment
+         error (e.g., assigning to readonly variable) occurs preceding a
+         command that is not a special builtin.  Fixes bug uncovered by
+         FreeBSD sh test cases
+       - when in posix mode, the ${!?} and ${!#} expansions are not indirect
+         expansions, but posix word expansions involving the `!' variable
+
+parse.y
+       - fix parse_comsub so that it does not skip backslash-newline when
+         parsing a comment
+
+                                  10/19
+                                  -----
+subst.c
+       - fix parameter_brace_expand so that an attempt to use the % or #
+         expansions on an unset variable with -u set will cause a non-
+         interactive shell to abort.  Posix change
+       - fix parameter_brace_expand so that an attempt to use pattern
+         substitution or case modification expansions on an unset variable
+         with -u set will cause and unbound variable error and make a
+         non-interactive shell abort
+       - change parameter_brace_expand_length to return INTMAX_MIN if a
+         positional parameter is unset and -u is set
+       - if parameter_brace_expand_length returns INTMAX_MIN when -u is set,
+         treat it as an unbound variable error and make a non-interactive
+         shell abort.  Posix change
+       - change parameter_brace_expand_length to return INTMAX_MIN if an
+         implicit reference to array[0] is made ${#array} and array[0] is
+         not set when -u is set
+
+                                  10/20
+                                  -----
+builtins/cd.def
+       - Posix 2008 says that if no matching directories are found in $CDPATH,
+         use the directory name passed as an operand and go on.  Posix change
+
+doc/bashref.texi
+       - change Posix mode section with latest additions and removals
+
+                                  11/4
+                                  ----
+lib/readline/complete.c
+       - fix rl_menu_complete and rl_old_menu_complete to keep incrementing
+         match_list_index by match_list_size as long as it's < 0.  Fixes
+         bug reported by jeenuv@gmail.com
+
+braces.c
+       - make mkseq() take intmax_t arguments for sequence start and end
+         and make sure it's passed intmax_t values.  Fixes bug reported by
+         Pete Gregory <pg@bushlitt.org>
+
+sig.c
+       - if termsig_handler is called when terminate_immediately == 1,
+         assume we're being called as a signal handler and set
+         history_lines_this_session to 0 to inhibit history file being
+         written on shell exit.  Fixes long-standing bug most recently
+         observed by Andreas Schwab <schwab@linux-m68k.org>
+
+                                  11/5
+                                  ----
+redir.c
+       - add_undo_close_redirect now returns int, 0 on success, non-zero on
+         failure.  Currently always succeeds
+       - new macro REDIRECTION_ERROR to make do_redirection_internal return
+         value of errno
+       - change do_redirection_internal to call REDIRECTION_ERROR after
+         saving file descriptor and make do_redirection_internal return error
+         if add_undo_redirect or add_undo_close redirect fails.  This makes
+         failure to save a file descriptor a redirection error and the shell
+         behaves appropriately.  Fixes bug reported by Eric Blake
+         <eblake@redhat.com>
+
+bashline.c
+       - modify bash_forward_shellword to correctly handle quoted strings,
+         especially if point is in a quoted string when function is invoked.
+         Fixes bug reported by Daniel Colascione <dan.colascione@gmail.com>
+
+configure.in
+       - change version to 4.2-alpha
+
+                                  11/7
+                                  ----
+lib/readline/text.c
+       - in rl_insert, if we're not in the multibyte code path, don't try to
+         optimize and insert all of the available typeahead input if we're
+         reading input from a macro.  Fixes bug reported by Andre Majorel
+         <aym-ung@teaser.fr>
+
+lib/readline/text.c
+       - break out multibyte guts of rl_forward_char into a separate function
+         _rl_forward_char_internal that does nothing but calculate the new
+         value of point
+       - change rl_forward_char to call _rl_forward_char_internal instead of
+         having equivalent code inline
+
+lib/readline/rlprivate.h
+       - new extern declaration for _rl_forward_char_internal
+
+lib/readline/vi_mode.c
+       - change _rl_vi_append_forward to call _rl_forward_char_internal to
+         set rl_point, instead of calling rl_forward_char.  When at the end
+         of the line, rl_forward_char will ring the bell.  Fixes debian
+         bash bug 601042, reported by Alan J. Greenberger <alanjg@ptd.net>
+
+                                  11/14
+                                  -----
+subst.c
+       - fix match_upattern to use correct test to immediately break out of
+         loop (when potential match length is greater than number of chars
+         remaining in the string) in MATCH_ANY case
+
+                                  11/15
+                                  -----
+subst.c
+       - include "typemax.h" to make sure we have a definition of INTMAX_MIN
+
+                                  11/16
+                                  -----
+lib/sh/unicode.c
+       - make sure `localconv' isn't declared on machines without iconv
+       - add stub_charset for systems that don't have locale_charset: looks
+         up LC_CTYPE, returns everything after last `.', "UTF-8" if the
+         value is exactly "UTF-8", and "ASCII" otherwise
+
+                                  11/20
+                                  -----
+lib/readline/vi_mode.c
+       - in rl_domove_motion_callback, make sure to use m->key instead of
+         key, which is not initialized and should not be used.  Bug report
+         from Andreas Schwab <schwab@linux-m68k.org>
+       - in rl_vi_domove, make assignment to `m' explicit instead of
+         relying on evaluation order semantics, since the C standard leaves
+         them unspecified.  Bug report from Andreas Schwab
+         <schwab@linux-m68k.org>
+
+                                  11/21
+                                  -----
+lib/sh/shquote.c
+       - sh_single_quote and sh_double_quote now take a const char *
+         argument.  Fixes problem pointed out by Joachim Schmitz
+         <jojo@schmitz-digital.de>
+
+externs.h
+       - change extern declarations for sh_single_quote and sh_double_quote
+
+lib/sh/strchrnul.c
+       - make sure that return value is cast to (char *) if we're using a
+         part of the passed (const char *) argument.  Fixes problem pointed
+         out by Joachim Schmitz <jojo@schmitz-digital.de>
+
+lib/glob/gmisc.c
+       - fix a typo that mixed up defines for LPAREN and RPAREN.  Bug and
+         fix from Andreas Schwab <schwab@linux-m68k.org>
+       - use WLPAREN and WRPAREN in multibyte character environments
+       - fixed typos using L'cc' in a non-wide-char environment
+
+lib/readline/complete.c
+       - fix rl_filename_completion_function to dequote users_dirname if
+         there is a filename dequoting function (as well as dirname), since
+         users_dirname gets tacked back onto the beginning of the possible
+         completions and then requoted.  Bug reported by Andreas Schwab
+         <schwab@linux-m68k.org>
+
+                                  11/22
+                                  -----
+lib/readline/parens.c
+       - the `blink-matching-paren' variable should default to off
+
+                                  11/23
+                                  -----
+subst.h
+       - add extern declaration for close_new_fifos()
+
+lib/sh/fnxform.c
+       - fix curencoding to return the character past the `.', not a string
+         beginning with `.'
+
+lib/sh/unicode.c
+       - fix stub_charset to do the same cut-off at `@' as curencoding().
+         These two functions should be combined
+
+builtins/printf.def
+       - document new %(datefmt)T modifier in help text
+
+                                  11/24
+                                  -----
+parse.y
+       - fix `W' case in decode_prompt_string: memmove was copying one too
+         few bytes and missed the closing NUL.  Bug report from Tim Mooney
+         <Tim.Mooney@ndsu.edu>
+
+                                  11/26
+                                  -----
+subst.c
+       - in expand_word_internal, don't add quoted nulls to partially-
+         quoted strings if the word will not be subjected to word splitting
+         later (which will remove the quoted null).  Fixes bug reported by
+         Rocky Bernstein <rocky.bernstein@gmail.com>
+
+                                  11/28
+                                  -----
+subst.c
+       - change multibyte case of match_pattern to revert to match_upattern
+         if neither the pattern nor the string has any multibyte characters
+
+alias.c
+       - fix tests of backslash-escaped characters in skipquotes, skipws,
+         rd_token to check for backslash at EOS and not go past the end.
+         Fixes debian bug 603696 reported by Tim Small <tim@buttersideup.com>
+
+include/shmbchar.h
+       - new file, mbchar.h from gnulib minus the <stdbool.h> include
+
+lib/sh/shmbchar.c
+       - new file, mbchar.c from gnulib with additions
+       - moved mbstrlen from subst.c to here, changed initialization of mbs
+       - change mbstrlen to use is_basic to avoid calls to mbrlen for ASCII
+         chars; code hints from gnulib
+       - don't copy mbs and mbsbak if we're not calling mbrlen
+
+                                  11/29
+                                  -----
+lib/glob/smatch.c
+       - change xstrmatch to use internal_strmatch() if the pattern and
+         string don't have any multibyte characters
+
+                                  11/30
+                                  -----
+include/shmbutil.h
+       - change ADVANCE_CHAR and ADVANCE_CHAR_P macros to use is_basic and
+         only call mbrlen and copy state and state_bak if is_basic returns
+         false (non-ASCII).  Called all over the place.
+       - change rest of macros except BACKUP_CHAR and BACKUP_CHAR_P in the
+         same way
+
+                                  12/2
+                                  ----
+subst.c
+       - audit all calls to string_list and make sure caller can handle a
+         NULL return value.  Fixes bug reported by David Rochberg
+         <rochberg@google.com>
+
+general.h
+       - change sh_wassign_func_t to take an additional argument: an int
+         flags word
+
+subst.c
+       - change do_word_assignment to take an additional argument to match
+         wassign_func_t; change callers
+       - change call to (*assign_func) in expand_word_list_internal to match
+         new wassign_func_t prototype
+       - (*assign_func) passes 1 as additional arg if the simple command is
+         a builtin or function, in which case the assignment to the
+         temporary env should take effect
+
+variables.c
+       - change assign_in_env to take an additional argument to match
+         wassign_func_t; change callers
+       - move call to sv_ifs from dispose_temporary_env to
+         dispose_used_env_vars; we don't need to do it if called from
+         merge_temporary_env
+
+                                  12/3
+                                  ----
+variables.c
+       - change dispose_temporary_env to maintain a list (tempvar_list) of
+         variables that need to be handled specially.  If a variable that
+         gets freed by push_temp_var or propagate_temp_var is one of the
+         variables that the shell handles specially (IFS, LANG, etc.), it's
+         stored on the list.  For each variable in this list,
+         dispose_temp_var calls stupidly_hack_special_variables.
+       - assign_in_env calls stupidly_hack_special_variables if flags arg
+         is non-zero, so variable assignments affect current shell
+         execution environment if a builtin or function is being executed.
+         Fixes bug reported by Bruno Haible <bruno@clisp.org>
+
+                                  12/5
+                                  ----
+subst.c
+       - use mbsmbchar on both string and pattern in match_pattern instead
+         of strlen and mbstrlen; only go through the strings once
+
+                                  12/6
+                                  ----
+lib/readline/kill.c
+       - in rl_yank_last_arg, only switch directions if the `count'
+         argument is < 0, not < 1.  This makes explicit count arguments of
+         0 work as expected.  Fixes bug reported by Dennis Williamson
+         <dennistwilliamson@gmail.com>
+
+doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
+       - fix documentation for yank-last-arg to make it clear how the count
+         argument is set and how second and subsequent calls treat any
+         numeric argument
+
+doc/{bash.1,bashref.texi}
+       - slight changes to the description of test
+       - change \(bv to `|'; it seems that many `internationalized' versions
+         of groff don't render that as a vertical bar.  Fixes Debian bug
+         603805
+
+                                  12/10
+                                  -----
+configure.in
+       - changed release status to 4.2-beta
+
+                                  12/14
+                                  -----
+[bash-4.2-beta frozen]
+
+                                  12/18
+                                  -----
+redir.c
+       - change REDIRECTION_ERROR macro to accept a third argument: an
+         additional file descriptor to close before returning and error (pass
+         -1 to do nothing)
+       - change calls to REDIRECTION_ERROR to close appropriate file
+         descriptors.  Fixes bug reported by Andreas Schwab
+         <schwab@linux-m68k.org>
+       - make sure to close any file descriptors opened for REDIR_VARASSIGN
+         before returning an error
+
+                                  12/19
+                                  -----
+expr.c
+       - move processing of unary `-' and `+' to exp1 from exp0 to avoid
+         precedence problems.  Fixes bug reported by <12bric@gmail.com>
+
+                                  12/22
+                                  -----
+lib/sh/fpurge.c
+       - updated version from gnulib, inlined gnulib stdio-impl.h
+
+                                  12/24
+                                  -----
+doc/bash.1
+       - change the description of while and until to use `list-1' and
+         `list-2', similar to the Posix description.  Suggested by
+         Jeff Haemer <jeffrey.haemer@gmail.com>
+
+                                  12/27
+                                  -----
+execute_cmd.c
+       - slight changes to execute_command_internal and how it captures the
+         exit status of (command) and shell control structures with pipes to
+         avoid multiple variable assignments to last_command_exit_value
+       - change to execute_simple_command so that parent branches of shells
+         forked to execute commands in pipelines don't change $? to 0
+         (if (pipe_out != NO_PIPE) result = last_command_exit_value).  Fixes
+         bug reported by Damien Nadà<dnade.ext@orange-ftgroup.com>
+
+                                  12/28
+                                  -----
+configure.in
+       - changed version to bash-4.2-rc1
+
+                                1/2/2011
+                                --------
+lib/readline/complete.c
+       - fix rl_filename_completion_function to dequote and save users_dirname
+         before calling any function to transform the directory name passed
+         to opendir().  Fix from Andreas Schwab <schwab@linux-m68k.org>
+
+lib/readline/doc/
+       - make sure to note that rl_directory_completion_hook cannot modify
+         the directory name argument if it returns 0
+
+bashline.c
+       - make sure that bash_directory_completion_hook consistently returns
+         non-zero whenever it modifies its directory name argument 
+
+lib/readline/terminal.c
+       - don't bother with the declarations (extern or not) for PC, BS, and
+         UP if NCURSES_VERSION is defined, since ncurses defines local
+         versions of those symbols in the library.  Fixes bug most recently
+         reported by Kevin Scott <kscott@eznet.net> against Mac OS X
+
+include/filecntl.h
+       - make sure O_TEXT and O_BINARY are defined to avoid Windows-specific
+         (or cygwin-specific) code.  This and the following changes from
+         Eric Blake <eblake@redhat.com> for current cygwin systems
+
+input.h
+       - add a B_TEXT flag to note when the underlying file descriptor is
+         opened in O_TEXT mode
+
+lib/sh/tmpfile.c
+       - make sure temporary files are opened in binary mode (O_BINARY) on
+         systems where it matters
+
+input.c
+       - make sure to set the B_TEXT flag if the file descriptor has O_TEXT
+         in its flags (returned by fcntl)
+       - change b_fill_buffer to compensate for lseek() and read() returning
+         different offsets on files opened in O_TEXT mode
+       - cygwin now is able to lseek on files and set the unbuffered and text
+         flags appropriately, so can use the general test for a seekable fd
+       - now that cygwin uses O_TEXT or O_BINARY appropriately, we no longer
+         have to manually translate \r\n to \n
+
+redir.c
+       - remove the Cygwin-1.1 code from here_document_to_fd; cygwin is now
+         up to version 1.7 and can unlink an open file descriptor
+       - make sure temporary files used for here documents are opened in
+         binary mode (O_BINARY) on systems where it matters
+
+execute_cmd.c,parse.y
+       - make sure error messages use all printable characters in filenames
+         and strings
+
+{builtins/evalfile,shell,subst}.c
+       - remove cygwin-specific calls to setmode to force file descriptors
+         into text mode, since we're using text or binary mode according to
+         the mode of the mount point
+
+execute_cmd.c
+       - when creating pipes and making them stdin and stdout, make sure to
+         tell stdio that the mode of the underlying file descriptor may have
+         changed from text to binary
+
+subst.c
+       - when creating pipes for command substitution, make sure to
+         tell stdio that the mode of the underlying file descriptor may have
+         changed from text to binary
+
+                                   1/3
+                                   ---
+doc/{bash.1,bashref.texi}
+       - changes to the readonly documentation suggested by Jan Schampera
+         <jan.schampera@web.de>
+
+                                   1/4
+                                   ---
+builtins/read.def
+       - change bind_read_variable to consistently return NULL if there is some
+         kind of variable assignment error (e.g., assigning to a readonly or
+         noassign var)
+       - change read builtin to only call stupidly_hack_special_variables if
+         bind_read_variable returns non-NULL
+       - change read_builtin to return EXECUTION_FAILURE if there is an
+         assignment error (e.g., assigning to a readonly or noassign var).
+         Fixes bug reported by Jan Schampera <jan.schampera@web.de>
+
+                                   1/5
+                                   ---
+builtins/{help.def,common.c}
+       - change uses of a builtin's `short_doc' member to go through gettext
+         for possible translation before being displayed.  Suggestion from
+         <goeran@uddeborg.se>
+
+                                   1/6
+                                   ---
+shell.h
+       - new exit status define: EX_MISCERROR (2)
+
+builtins/getopts.def
+       - change getopts_bind_variable to return error if an attempt is made
+         to assign to a variable with the `noassign' attribute
+       - change getopts_bind_variable to return EX_MISCERROR if attempt is
+         made to assign to readonly or noassign variable
+
+builtins/cd.def
+       - change setpwd to return an int and return failure when PWD is
+         readonly; success otherwise
+       - change bindpwd to return failure if setpwd returns EXECUTION_FAILURE.
+         Inspired by message from Eric Blake <eblake@redhat.com>
+       - change pwd builtin to return failure if PWD is readonly (and setpwd
+         returns EXECUTION_FAILURE)
+
+                                   1/8
+                                   ---
+lib/sh/eaccess.c
+       - on FreeBSD and Solaris, check the result of access(2) with mode X_OK
+         for root by checking sh_stataccess().  Same code as was added to
+         check result of eaccess().  Fixes Solaris 11 problem reported by
+         <cloyce@headgear.org>
+
+                                  1/10
+                                  ----
+builtins/set.def
+       - add description of `--' to help text
+
+[bash-4.2-rc1 released]
+
+                                  1/14
+                                  ----
+lib/readline/readline.h
+       - fix/update description of rl_directory_rewrite_hook
+
+lib/readline/complete.c
+       - if there are no directory rewrite or completion hooks, set dirname
+         to a duplicate copy of users_dirname instead of calling the
+         dequoting function again
+
+bashline.c
+       - use rl_directory_rewrite_hook instead of rl_directory_completion_hook
+         to avoid changing the directory name the user typed, other than
+         dequoting it.  Fixes bug introduced by changes to directory
+         completion hook, pointed out first by William Bader
+         <william.bader@gmail.com>
+
+                                  1/16
+                                  ----
+lib/sh/strftime.c
+       - portability and other (int->long) updates from Aharon Robbins
+         <arnold@skeeve.com>
+
+configure.in
+       - change release level to rc2
+
+                                  1/17
+                                  ----
+execute_cmd.c
+       - short-circuit select builtin if read_builtin returns anything but
+         EXECUTION_SUCCESS, not just EXECUTION_FAILURE.  Fixes bug reported
+         by Pierre Gaston <pierre.gaston@gmail.com>
+
+                                  1/19
+                                  ----
+execute_cmd.c
+       - change execute_simple_command to save and restore the values of
+         executing_builtin and executing_command_builtin before discarding
+         the unwind-protect frame.  Bug and fix from Werner Fink
+         <werner@suse.de>
+
+                                  1/24
+                                  ----
+variables.c
+       - change brand to set rseed to a known, constant value if it's 0,
+         so the sequence is known.  Fixes issue reported by Olivier
+         Mehani <shtrom@ssji.net>
+
+                                   2/2
+                                   ---
+braces.c
+       - make sure to pass an `int' argument to asprintf in mkseq.  Fixes
+         bug reported by Mike Frysinger <vapier@gentoo.org>
+
+                                   2/5
+                                   ---
+lib/glob/gmisc.c
+       - fix wmatchlen and umatchlen to initialize all state variables.  Fix
+         from Andreas Schwab <schwab@linux-m68k.org>
+
+jobs.c
+       - change wait_for to call restore_sigint_handler right after exiting
+         the wait loop, instead of right before function returns.  Reduces
+         the window for a SIGINT to be lost because a child does not exit      
+         due to SIGINT
+
+                                   2/7
+                                   ---
+configure.in
+       - changed release status to `release'
+
+                                   2/9
+                                   ---
+execute_cmd.c
+       - make sure some variables are declared as volatile if necessary.  Bug
+         report and fix from Eric Blake <eblake@redhat.com>
+
+[bash-4.2 frozen]
+
+                                  2/11
+                                  ----
+print_cmd.c
+       - in indirection_level_string, change to simpler test of result of
+         MBLEN (< 0 instead of MB_INVALIDCH)
+
+                                  2/14
+                                  ----
+[bash-4.2 released]
+
+                                  2/15
+                                  ----
+lib/glob/gmisc.c
+       - fix wmatchlen and umatchlen to avoid going past the end of the
+         string on an incomplete bracket expression that ends with a
+         NUL.  Partial fix for bug reported by Clark Wang <dearvoid@gmail.com>
+
+                                  2/16
+                                  ----
+subst.h
+       - new string extract flag value: SX_WORD.  Used when calling
+         extract_dollar_brace_string to skip over the word in
+         ${param op word} from parameter_brace_expand
+
+subst.c
+       - change parameter_brace_expand to add SX_WORD to flags passed to
+         extract_dollar_brace_string
+       - change parameter_brace_expand to use SX_POSIXEXP for all non-posix
+         word expansion operators that treat single quotes as special, not
+         just % and #
+       - change extract_dollar_brace_string to initialize dolbrace_state to
+         DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use
+         DOLBRACE_QUOTE.  Fixes bug reported by Juergen Daubert <jue@jue.li>
+
+doc/{bash.1,bashref.texi}
+       - document the exact expansions here strings undergo
+
+                                  2/17
+                                  ----
+lib/readline/vi_mode.c
+       - make sure that `dd', `cc', and `yy' call vidomove_dispatch from
+         rl_domove_read_callback.  Fixes bug reported by Clark Wang
+         <dearvoid@gmail.com>
+
+lib/readline/callback.c
+       - make sure _rl_internal_char_cleanup is called after the
+         vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char.
+         Companion to above fix
+
+doc/{bash.1,bashref.texi}
+       - make sure that the text describing the rhs of the == and =~
+         operators to [[ states that only the quoted portion of the pattern
+         is matched as a string
+
+                                  2/18
+                                  ----
+lib/glob/gmisc.c
+       - better fix for umatchlen/wmatchlen: keep track of the number of
+         characters in a bracket expression as the value to increase
+         matchlen by if the bracket expression is not well-formed.  Fixes
+         bug reported by Clark Wang <dearvoid@gmail.com>
+
+subst.c
+       - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag
+         in the word flags.  We will not perform word splitting or quote
+         removal on the result, so we do not want to add quoted nulls if
+         we see "" or ''.  Fixes bug reported by Mike Frysinger
+         <vapier@gentoo.org>
+
+                                  2/19
+                                  ----
+variables.c
+       - new function, int chkexport(name), checks whether variable NAME is
+         exported and remakes the export environment if necessary.  Returns
+         1 if NAME is exported and 0 if not
+       - call chkexport(name) to get tzset to look at the right variable in
+         the environment when modifying TZ in sv_tz.  Don't call tzset if
+         chkexport doesn't indicate that the variable is exported
+
+variables.h
+       - new extern declaration for chkexport
+
+
+{parse.y,builtins/printf.def}
+       - call sv_tz before calling localtime() when formatting time strings
+         in prompt strings or using printf.  Fixes bug reported by
+         Dennis Williamson <dennistwilliamson@gmail.com>
+
+execute_cmd.c
+       - modify fix of 2/9 to add casts when those variables are passed to
+         functions; some compilers throw errors instead of warnings.  Report
+         and fix from Joachim Schmitz <jojo@schmitz-digital.de>
+
+support/shobj-conf
+       - add a stanza for nsk on the Tandem from Joachim Schmitz
+         <jojo@schmitz-digital.de>
+
+{shell,lib/readline/shell}.c
+       - Tandem systems should use getpwnam (getlogin()); for some reason
+         they don't do well with using getuid().  Fix from Joachim Schmitz
+         <jojo@schmitz-digital.de>
+
+                                   3/1
+                                   ---
+variables.c
+       - make sure that the return value from find_variable is non-null
+         before trying to use it in chkexport.  Fixes bug reported by
+         Evangelos Foutras <foutrelis@gmail.com>
+
+                                   3/3
+                                   ---
+parse.y
+       - when adding $$ to the current token buffer in read_token_word(),
+         don't xmalloc a buffer for two characters and then strcpy it, just
+         copy the characters directly into the token buffer.  Fix from
+         Michael Whitten <mfwitten@gmail.com>
+
+execute_cmd.c
+       - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to
+         be expanded, so "" doesn't add CTLNUL.  Similar to fix of 2/18 to
+         expand_string_for_rhs.  Fixes bug reported by Nathanael D. Noblet
+         <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
+
+parse.y
+       - fix extended_glob case of read_token_word to allocate an extra
+         space in the buffer for the next character read after the extended
+         glob specification if it's a CTLESC or CTLNUL.  Report and fix from
+         Michael Witten <mfwitten@gmail.com>
+       - fix shell expansions case of read_token_word to allocate an extra
+         space in the buffer for the next character read after the shell
+         expansion if it's a CTLESC or CTLNUL.  Report and fix from
+         Michael Witten <mfwitten@gmail.com>
+       - TENTATIVE: fix read_token_word to reduce the amount of buffer space
+         required to hold the translated and double-quoted value of $"..."
+         strings.  Report and fix from Michael Witten <mfwitten@gmail.com>
+       - change code around got_character and got_escaped_character labels to
+         make sure that we call RESIZE_MALLOCED_BUFFER before adding the
+         CTLESC before a CTLESC or CTLNUL, and before adding the character if
+         we're not adding a CTLESC.  Report and fix from
+         Michael Witten <mfwitten@gmail.com>
+
+subst.c
+       - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that
+         parameter expansion is on rhs of assignment statement.  That inhibits
+         word splitting
+       - change param_expand to call string_list_dollar_at with quoted == 1
+         if PF_ASSIGNRHS is set, so it will quote IFS characters in the
+         positional parameter before separating them with the first char of
+         $IFS.  This keeps the rhs from being split inappropriately.  Fixes
+         bug reported by Andres Perera <andres.p@zoho.com>
+
+                                   3/4
+                                   ---
+lib/readline/bind.c
+       - add a missing free of `names' in rl_function_dumper.  Bug report
+         and fix from Michael Snyder <msnyder@vmware.com>
+
+                                   3/5
+                                   ---
+lib/readline/rltty.c
+       - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd
+         if rl_instream is not set, like rl_prep_terminal
+
+                                   3/6
+                                   ---
+lib/readline/display.c
+       - fix rl_message to use a dynamically-allocated buffer instead of a
+         fixed-size buffer of 128 chars for the `local message prompt'.  Bug
+         report and fix from Micah Cowan <micah@cowan.name>
+
+                                   3/7
+                                   ---
+jobs.c
+       - add sentinel to wait_sigint_handler so it only sets wait_sigint_received
+         if waiting_for_child is non-zero; otherwise, it restores the old
+         SIGINT handler and sends itself the SIGINT
+       - set waiting_for_child around the calls to waitchld that use it to
+         synchronously wait for a process
+       - change logic that decides whether or not the child process blocked
+         or handled SIGINT based on whether or not waitpid returns -1/EINTR
+         and the shell receives a SIGINT and the child does not exit.  If
+         the child later exits due to SIGINT, cancel the assumoption that it
+         was handled
+       - instead of testing whether or not the child exited due to SIGINT
+         when deciding whether the shell should act on a SIGINT it received
+         while waiting, test whether or not we think the child caught
+         SIGINT.  If it did, we let it go (unless the shell has it trapped);
+         if it did not catch it, the shell acts on the SIGINT.  Fix from
+         Linus Torvalds <torvalds@linux-foundation.org>, bug report originally
+         from Oleg Nesterov <oleg@redhat.com>
+
+                                   3/8
+                                   ---
+shell.c
+       - initialize no_line_editing to 1 if READLINE is not defined -- we
+         can't have line editing without readline
+
+                                  3/12
+                                  ----
+lib/readline/signals.c
+       - add SIGHUP to the set of signals readline handles
+
+lib/readline/doc/rltech.texi
+       - document that SIGHUP is now part of the set of signals readline
+         handles
+
+lib/readline/input.c
+       - if _rl_caught_signal indicates that read() was interrupted by a
+         SIGHUP or SIGTERM, return READERR or EOF as appropriate
+       - call rl_event_hook, if it's set, if call to read in rl_getc
+         returns -1/EINTR.  If rl_event_hook doesn't do anything, this
+         continues the loop as before.  This handles the other fatal
+         signals
+
+execute_cmd.c
+       - add a couple of QUIT; calls to execute_disk_command and
+         execute_simple_command to improve responsiveness to interrupts
+         and fatal signals
+
+input.c
+       - rearrange getc_with_restart so that the return values from read()
+         are handled right
+
+parse.y
+       - don't need to set terminate_immediately in yy_stream_get, since
+         getc_with_restart checks for terminating signals itself
+       - since readline returns READERR on SIGHUP or SIGTERM, don't need
+         to set terminate_immediately.  Still doesn't handle other
+         signals well -- will have to check that some more
+
+bashline.c
+       - new function, bash_event_hook, for rl_event_hook.  Just checks for
+         terminating signals and acts on them using CHECK_TERMSIG.
+       - set rl_event_hook to bash_event_hook
+
+builtins/read.def
+       - take out setting terminate_immediately; add calls to CHECK_TERMSIG
+         after read calls
+
+doc/{bash.1,bashref.texi}
+       - move the text describing the effect of negative subscripts used to
+         reference indexed array elements to the paragraphs describing
+         ${parameter[subscript]}, since that's where they are implemented.
+         Pointed out by Christopher F. A. Johnson <cfajohnson@gmail.com>
+
+arrayfunc.[ch],subst.c
+       - array_expand_index now takes a new first argument: a SHELL_VAR *
+         of the array variable being subscripted.  Can be used later to fully
+         implement negative subscripts
+
+                                  3/14
+                                  ----
+lib/glob/glob.c
+       - fix mbskipname to not turn the directory entry name into a wide char
+         string if the conversion of the pattern to a wide char string fails
+       - fix mbskipname to call skipname if either the pattern or the filename
+         can't be converted into a wide-char string
+
+lib/glob/xmbsrtowcs.c
+       - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and
+         short-circuit with failure in that case.  Fixes bug reported by
+         Roman Rakus <rrakus@redhat.com>
+
+                                  3/15
+                                  ----
+bashline.c
+       - new variable, bash_filename_quote_characters to store the value
+         assigned to rl_filename_quote_characters so it can be restored
+         if changed.
+       - change bashline_reset and attempt_shell_completion to restore
+         rl_filename_quote_characters if not set to default
+
+                                  3/22
+                                  ----
+lib/glob/glob.c
+       - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs
+         fails to convert the pathname to a wide-character string
+
+lib/glob/xmbsrtowcs.c
+       - xdupmbstowcs2: change to fix problem with leading '\\' (results in
+         nms == 0, which causes it to short-circuit with failure right
+         away).  Fixes bug pointed out by Werner Fink <werner@suse.de>
+       - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the
+         next single-byte character and going on
+       - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC
+         bytes; try to avoid calls to realloc (even if they don't actually
+         result in more memory being allocated)
+
+                                  3/24
+                                  ----
+doc/{bash.1,bashref.texi}
+       - slightly modify BASH_SUBSHELL description based on complaint from
+         Sam Liddicott <sam@liddicott.com>
+
+                                  3/25
+                                  ----
+trap.c
+       - change free_trap_strings to not call free_trap_string for signals
+         that are being ignored, like reset_or_restore_signal_handlers.
+         Fixes bug reported by Satoshi Takahashi <blue3waters@gmail.com>
+
+                                  3/26
+                                  ----
+lib/readline/rltypedefs.h
+       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
+         suggested by Tom Tromey <tromey@redhat.com>
+
+lib/readline/rlstdc.h
+       - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from
+         config.h.in to here because declaration of rl_message in
+         readline.h uses the defines.  This makes it hard for another packages
+         to use after the header files are installed, since config.h is not
+         one of the installed files.  Suggested by Tom Tromey
+         <tromey@redhat.com>
+
+                                  3/27
+                                  ----
+print_cmd.c
+       - change indirection_string from a static buffer to a dynamic one
+         managed by indirection_level_string(), so we don't end up truncating
+         PS4.  Suggested by Dennis Williamson <dennistwilliamson@gmail.com>
+
+lib/readline/shell.c
+       - change sh_set_lines_and_columns to use static buffers instead of
+         allocating the buffers to pass to setenv/putenv
+
+lib/readline/terminal.c
+       - change _rl_get_screen_size to not call sh_set_lines_and_columns if
+         ignore_env == 0
+       - _rl_sigwinch_resize_terminal: new function to just retrieve terminal
+         size, ignoring environment
+
+lib/readline/rlprivate.h
+       - new external declaration for _rl_sigwinch_resize_terminal() (currently
+         unused)
+
+lib/readline/signals.c
+       - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH
+       - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just
+         leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle
+       - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH.
+         Should fix hang when sending multiple repeated SIGWINCH reported by
+         Henning Bekel <h.bekel@googlemail.com>
+
+                                  3/29
+                                  ----
+lib/sh/snprintf.c
+       - include math.h for any defines for isinf/isnan
+       - use code from gnulib documentation to implement isinf/isnan if they
+         are not defined
+
+configure.in
+       - don't check for isinf or isnan; c99 says they're macros anyway
+
+config.h.in
+       - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used
+         by snprintf.c
+
+                                   4/2
+                                   ---
+braces.c
+       - brace_gobbler: fix to understand double-quoted command substitution,
+         since the shell understands unquoted comsubs.  Fixes bug reported
+         by Michael Whitten <mfwitten@gmail.com>
+
+lib/readline/display.c
+       - include <pc.h> on MDOS
+       - get and set screen size using DJGPP-specific calls on MSDOS
+       - move cursor up clear screen using DJGPP-specific calls
+       - don't call tputs on DJGPP; there is no good terminfo support
+
+lib/readline/terminal.c
+       - include <pc.h> on MDOS
+       - get and set screen size using DJGPP-specific calls on MSDOS
+       - use DJGPP-specific initialization on MSDOS, zeroing all the
+         _rl_term_* variables
+       - don't call tputs on DJGPP; there is no good terminfo support
+         DJGPP support from Eli Zaretskii  <eliz@gnu.org>
+
+                                   4/6
+                                   ---
+
+config-top.h
+       - change DEFAULT_PATH_VALUE to something more useful and modern
+
+                                   4/8
+                                   ---
+tests/printf2.sub
+       - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect.
+         Reported by Cedric Arbogast <arbogast.cedric@gmail.com>
+
+                                  4/11
+                                  ----
+include/chartypes.h
+       - fix a couple of dicey defines (though ones that don't cause any
+         compiler warnings) in IN_CTYPE_DOMAIN
+
+doc/{bashref.texi,bash.1}
+       - add note referring to duplicating file descriptors in sections
+         describing redirecting stdout and stderr and appending to stdout
+         and stderr.  Suggested by Matthew Dinger <mdinger.bugzilla@gmail.com>
+
+pcomplete.c
+       - it_init_helptopics: new function to support completing on help topics,
+         not just builtins
+       - it_helptopics: new programmable completion list of help topics
+       - build list of helptopic completions in gen_action_completions on
+         demand
+
+pcomplete.h
+       - new extern declaration for it_helptopics
+
+builtins/complete.def
+       - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN,
+         since there are more help topics than just builtins.  Suggested by
+         Clark Wang <dearvoid@gmail.com>
+
+                                  4/12
+                                  ----
+print_cmd.c
+       - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS
+         before ending the body of the command, so heredocs get attached to
+         the right command instead of to the loop.  From gentoo bug 363371
+         http://bugs.gentoo.org/show_bug.cgi?id=363371
+
+execute_cmd.c
+       - change coproc_pidchk to unset the appropriate shell variables when
+         the (currently single) known coproc pid terminates
+       - cleanup and new functions to fully support multiple coprocesses when
+         and if I decide to go there
+
+                                  4/13
+                                  ----
+print_cmd.c
+       - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS
+         after call to make_command_string_internal before printing closing
+         `}'
+       - fix make_command_string_internal to add a call to
+         PRINT_DEFERRED_HEREDOCS after recursive call to
+         make_command_string_internal in case cm_subshell before printing
+         closing `)'
+
+                                  4/14
+                                  ----
+print_cmd.c
+       - change overlapping strcpy in named_function_string to memmove
+
+sig.h
+       - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just
+         restores an old signal mask
+
+trap.c
+       - set_signal: instead of setting the signal handler to SIG_IGN while
+         installing the new trap handler, block the signal and unblock it
+         after the new handler is installed.  Fixes bug reported by Roman
+         Rakus <rrakus@redhat.com>
+
+                                  4/15
+                                  ----
+doc/{bash.1,bashref.texi}
+       - make it clear that enabling monitor mode means that all jobs run in
+         separate process groups
+
+                                  4/18
+                                  ----
+builtins/fc.def
+       - update fix of 4/15/2010 to not take saved_command_line_count into
+         account when stepping down the history list to make sure that
+         last_hist indexes something that is valid.  Fixes bug reported by
+         <piuma@piumalab.org>
+
+                                  4/19
+                                  ----
+builtins/fc.def
+       - fc_gethnum: make sure the calculation to decide the last history
+         entry is exactly the same as fc_builtin.  Fixes bug uncovered by
+         fix of 4/18 to stop seg fault
+
+                                  4/22
+                                  ----
+lib/readline/terminal.c
+       - change _rl_enable_meta_key to set a flag indicating that it sent the
+         enable-meta sequence
+       - _rl_disable_meta_key: new function to turn off meta mode after we
+         turned it on with _rl_enable_meta_key
+
+lib/readline/rlprivate.h
+       - extern declaration for _rl_disable_meta_key
+
+configure.in
+       - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited
+         from the environment.  Fixes HP/UX build problem reported by
+         "Daniel Richard G." <skunk@iSKUNK.ORG>
+
+                                  4/26
+                                  ----
+config-top.h
+       - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy
+         to enable via configure option or editing this file
+
+                                  4/29
+                                  ----
+lib/sh/eaccess.c
+       - freebsd provides faccessat, with the same misfeature as their eaccess
+         and access implementations (X_OK returns true for uid==0 regardless
+         of the actual file permissions), so reorganize code to check the
+         file permissions as with eaccess.  Report and fix from Johan Hattne
+         <johan.hattne@utsouthwestern.edu>
+
+                                   5/2
+                                   ---
+doc/{bash.1,bashref.texi}
+       - add forward reference to `Pattern Matching' from `Pathname
+         Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
+
+                                   5/5
+                                   ---
+pcomplib.c
+       - the bash_completion project now distributes over 200 completions
+         for various programs, with no end in sight, so increase the value
+         of COMPLETE_HASH_BUCKETS from 32 to 128
+
+pathexp.c
+       - quote_string_for_globbing: make sure CTLESC quoting CTLESC is
+         translated into \<CTLESC> even if the flags include QGLOB_REGEXP.
+         We don't want to process the second CTLESC as a quote character.
+         Fixes bug reported by Shawn Bohrer <sbohrer@rgmadvisors.com>
+
+                                   5/6
+                                   ---
+builtins/printf.def
+       - change PRETURN to not call fflush if ferror(stdout) is true
+       - if a call to one of the stdio functions or printstr leaves
+         ferror(stdout) true, and PRETURN is going to be called, let PRETURN
+         print the error message rather than doubling up the messages.  Fixes
+         problem reported by Roman Rakus <rrakus@redhat.com>
+
+                                   5/9
+                                   ---
+doc/{bash.1,bashref.texi}
+       - add note to the effect that lists inside compound command can be
+         terminated by newlines as well as semicolons.  Suggested by
+         Roman Byshko <rbyshko@gmail.com>
+
+                                  5/10
+                                  ----
+subst.c
+       - remove_quoted_nulls: fix problem that caused it to skip over the
+         character after a CTLNUL, which had the effect of skipping every
+         other of a series of CTLNULs.  Fixes bug reported by
+         Marten Wikstrom <marten.wikstrom@keystream.se>
+
+                                  5/11
+                                  ----
+subst.c
+       - extract_process_subst: add SX_COMMAND flag to call to
+         extract_delimited_string, since we're expanding the same sort of
+         command as command substitution.  Fixes bug reported in Ubuntu
+         bug 779848
+
+                                  5/12
+                                  ----
+configure.in
+       - set the prefer_shared and prefer_static variables appropriately
+         depending on the value of $opt_static_link
+
+aclocal.m4
+       - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the
+         libraries it's searching for if the prefer_shared variable is "no".
+         Fixes problem reported by Cedric Arbogast <arbogast.cedric@gmail.com>
+
+                                  5/13
+                                  ----
+lib/readline/readline.c
+       - _rl_internal_teardown: add call to _rl_disable_meta_key to make the
+         meta key active only for the duration of the call to readline()
+       - _rl_internal_setup: move call to _rl_enable_meta_key here from
+         readline_initialize_everything so the meta key is active only for
+         the duration of the call to readline().  Suggestion from Miroslav
+         Lichvar <mlichvar@redhat.com>
+
+builtins/help.def
+       - help_builtin: change strncmp to strcmp so that `help read' no longer
+         matches `readonly'.  Suggested by Clark Wang <dearvoid@gmail.com>
+
+config.h.in
+       - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests
+         for libintl
+
+lib/malloc/malloc.c
+       - internal_free: don't use the cached value of memtop when deciding
+         whether or not to adjust the break and give memory back to the kernel
+         when using the GNU C library, since glibc uses sbrk for its own
+         internal purposes.  From Debian bug 614815, reported by Samuel
+         Thibault <samuel.thibault@gnu.org>
+
+aclocal.m4
+       - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN
+         to avoid warning about not using AC_LANG_SOURCE
+
+                                  5/14
+                                  ----
+bashline.[ch]
+       - two new functions, bashline_set_event_hook and bashline_reset_event_hook,
+         to set rl_event_hook to bash_event_hook and back to NULL, respectively
+       - don't set rl_event_hook unconditionally
+
+sig.c
+       - termsig_sighandler: if the shell is currently interactive and
+         readline is active, call bashline_set_event_hook to cause
+         termsig_handler to be called via bash_event_hook when the shell
+         returns from the signal handler
+
+                                  5/15
+                                  ----
+lib/readline/display.c
+       - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0
+         for UTF-8 combining characters.  Added workaround dependent on
+         MACOSX.  Fixes problem pointed out by Thomas De Contes
+         <d.l.tDecontes@free.fr>
+
+                                  5/16
+                                  ----
+lib/readline/rlmbutil.h
+       - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining
+         characters on systems where wcwidth is broken (e.g., Mac OS X).
+
+lib/readline/{complete,display,mbutil}.c
+       - use WCWIDTH instead of wcwidth
+
+                                  5/17
+                                  ----
+lib/readline/display.c
+       - update_line: after computing ofd and nfd, see whether the next
+         character in ofd is a zero-width combining character.  If it is,
+         back ofd and nfd up one, so the base characters no longer compare
+         as equivalent.  Fixes problem reported by Keith Winstein
+         <keithw@mit.edu>
+
+lib/readline/nls.c
+       - _rl_utf8locale: new flag variable, set to non-zero if the current
+         locale is UTF-8
+       - utf8locale(): new function, returns 1 if the passed lspec (or the
+         current locale) indicates that the locale is UTF-8.  Called from
+         _rl_init_eightbit
+
+lib/readline/rlprivate.h
+       - extern declaration for _rl_utf8locale
+
+locale.c
+       - locale_utf8locale: new flag variable, set to non-zero if the current
+         locale is UTF-8 (currently unused)
+       - locale_isutf8(): new function, returns 1 if the passed lspec (or the
+         current locale) indicates that the locale is UTF-8.  Should be called
+         whenever the locale or LC_CTYPE value is modified
+
+aclocal.m4
+       - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns
+         zero-width characters like unicode combining characters as having
+         display length 1; define WCWIDTH_BROKEN in this case
+
+config.h.in
+       - WCWIDTH_BROKEN: new define
+
+lib/readline/rlmbutil.h
+       - change WCWIDTH macro to use _rl_utf8locale and the full range of
+         Unicode combining characters (U+0300-U+036F)
+
+                                  5/19
+                                  ----
+lib/readline/rlprivate.h
+       - _rl_search_context: new member, prevc, will hold character read
+         prior to lastc
+
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: if the character causes us to index into
+         another keymap, save that character in cxt->prevc
+       - _rl_isearch_dispatch: if we index into another keymap, but don't
+         find a function that's special to i-search, and the character that
+         caused us to index into that keymap would have terminated the
+         search, push back cxt->prevc and cxt->lastc to make it appear as
+         if `prevc' terminated the search, and execute lastc as a command.
+         We have to push prevc back so we index into the same keymap before
+         we read lastc.  Fixes bug report from Davor Cubranic
+         <cubranic@stat.ubc.ca>
+
+                                  5/20
+                                  ----
+expr.c
+       - expr_bind_variable: pay attention to the return value from
+         bind_variable and check whether or not we should error out due to
+         a readonly or noassign variable.  Fixes bug reported by Eric
+         Blake <eblake@redhat.com>
+
+                                  5/26
+                                  ----
+
+lib/readline/search.c
+       - include histlib.h for ANCHORED_SEARCH defines
+       - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for
+         the duration of a history search
+       - rl_history_search_reinit: takes a new flags variable, defines whether
+         or not the search is anchored; assigned to rl_history_search_flags
+       - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to
+         beginning of search string; otherwise search string is unmodified
+       - rl_history_search_internal: set rl_point appropriately based on
+         whether or not rl_history_search_flags includes ANCHORED_SEARCH
+       - rl_history_substr_search_forward: new function, for non-anchored
+         substring search forward through history for string of characters
+         preceding rl_point
+       - rl_history_substr_search_backward: new function, for non-anchored
+         substring search backward through history for string of characters
+         preceding rl_point.  Original code from Niraj Kulkarni
+         <kulkarniniraj14@gmail.com>
+
+lib/readline/readline.h
+       - extern declarations for rl_history_substr_search_{for,back}ward
+
+lib/readline/funmap.c
+       - history-substring-search-forward: new bindable command, invokes
+         rl_history_substr_search_forward
+       - history-substring-search-backward: new bindable command, invokes
+         rl_history_substr_search_backward
+
+lib/readline/doc/{rluser.texi,readline.3}
+       - document history-substring-search-forward and
+         history-substring-search-backward
+
+                                  5/27
+                                  ----
+{nojobs,jobs}.c
+       - add support for DONT_REPORT_SIGTERM so that the shell doesn't print
+         a message when a job exits due to SIGTERM since that's the default
+         signal sent by the kill builtin.  Suggested by Marc Herbert
+         <mark.herbert@gmail.com>
+
+config-top.h
+       - DONT_REPORT_SIGTERM: new user-modifiable setting.  Commented out
+         by default
+
+                                  5/28
+                                  ----
+lib/readline/bind.c
+       - _rl_skip_to_delim: skip to a closing double quote or other delimiter,
+         allowing backslash to quote any character, including the delimiter
+       - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline
+         code
+       - rl_parse_and_bind: allow quoted strings as the values of string
+         variables.  Variable values without double quotes have trailing
+         whitespace removed (which still allows embedded whitespace, for
+         better or worse).  Fixes problem with string variables not matching
+         in `set' command if values happen to have trailing spaces or tabs
+         (debian bash bug #602762), but introduces slight incompatibility.
+
+                                  5/29
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clarify unset description to specify that without options, a
+         variable, then a shell function if there is no variable by that
+         name, is unset.  Fixes discrepancy reported by Mu Qiao
+         <qiaomuf@gentoo.org>
+
+                                  6/4
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clarify description of LINES and COLUMNS (and checkwinsize shopt
+         option) to make it clear that only interactive shells set a
+         handler for SIGWINCH and update LINES and COLUMNS.  Original
+         report submitted by Jonathan Nieder <jrnieder@gmail.com>
+
+arrayfunc.c
+       - expand_compound_array_assignment: defer expansion of words between
+         parens when performing compound assignmnt to an associative array
+         variable
+       - assign_compound_array_list: perform the same expansions when doing
+         a compound array assignment to an associative array variable as
+         when doing a straight array index assignment.  The idea is that
+               foo=( [ind1]=bar [ind2]=quux)
+         is the same as
+               foo[ind1]=bar ; foo[ind2]=quux
+
+         This fixes problems with double-expansion and quote removal being
+         performed on the array indices
+
+                                  6/13
+                                  ----
+doc/{bash.1,bashref.texi}
+       - Add a little text to make it clear that the locale determines how
+         range expressions in glob patterns are handled.
+
+
+                                  6/21
+                                  ----
+builtins/read.def
+       - display a message and return error status if -a is used with an
+         existing associative array.  Fixes bug reported by Curtis Doty
+         <curtis@greenkey.net>
+
+                                  6/24
+                                  ----
+{jobs,nojobs}.c
+       - non-interactive shells now react to the setting of checkwinsize
+         and set LINES and COLUMNS after a foreground job exits.  From a
+         suggestion by Leslie Rhorer <lrhorer@satx.rr.com>
+
+doc/{bash.1,bashref.texi}
+       - checkwinsize: remove language saying that only interactive shells
+         check the window size after each command
+
+lib/readline/histfile.c
+       - history_backupfile: new file, creates a backup history file name
+         given a filename (appending `-')
+       - history_do_write: when overwriting the history file, back it up
+         before writing.  Restore backup file on a write error.  Suggested
+         by chkno@chkno.net
+
+bashline.c
+       - find_cmd_name: two new arguments, return the start and end of the
+         actual text string used to find the command name, without taking
+         whitespace into account
+       - attempt_shell_completion: small changes to make sure that completion
+         attempted at the beginning of a non-empty line does not find a
+         programmable completion, even if the command name starts at point
+       - attempt_shell_completion: small change to make sure that completion
+         does not find a progcomp when in whitespace before the command
+         name
+       - attempt_shell_completion: small change to make sure that completion
+         does not find a progcomp when point is at the first character of a
+         command name, even when there is leading whitespace (similar to
+         above).  Fixes problems noted by Ville Skytta <ville.skytta@iki.fi>
+
+subst.c
+       - brace_expand_word_list: since the individual strings in the strvec
+         returned by brace_expand are already allocated, don't copy them to
+         newly-allocated memory when building the WORD_LIST, just use them
+         intact
+
+locale.c
+       - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change
+         the locale to avoid a function call every time we need to read it
+
+shell.h
+       - new struct to save shell_input_line and associated variables:
+         shell_input_line_state_t
+       - add members of sh_parser_state_t to save and restore token and the
+         size of the token buffer
+
+parse.y
+       - {save,restore}_input_line_state: new functions to save and restore
+         shell_input_line and associated variables
+       - {save,restore}_parser_state: add code to save and restore the token
+         and token buffer size
+       - xparse_dolparen: call save_ and restore_input_line_state to avoid
+         problems with overwriting shell_input_line when we recursively
+         call the parser to parse a command substitution.  Fixes bug
+         reported by Rui Santos <rsantos@grupopie.com>
+
+include/shmbutil.h
+       - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and
+         similar macros
+
+lib/glob/smatch.c
+       - rangecmp,rangecmp_wc: change to take an additional argument, which
+         forces the use of strcoll/wscoll when non-zero.  If it's 0, a new
+         variable `glob_asciirange' controls whether or not we use strcoll/
+         wscoll.  If it's non-zero, we use straight C-locale-like ordering.
+         Suggested by  Aharon Robbins <arnold@skeeve.com>
+
+                                  6/30
+                                  ----
+execute_cmd.c
+       - execute_pipeline: make sure the lastpipe code is protected by
+         #ifdef JOB_CONTROL.  Fixes problem reported by Thomas Cort
+         <tcort@minix3.org>
+
+                                   7/2
+                                   ---
+lib/readline/complete.c
+       - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around
+         completion functions that touch the file system.  Idea from Jan
+         Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
+         team
+
+lib/readline/signals.c
+       - rl_signal_handler: if we're in callback mode, don't interrupt
+         immediately on a SIGWINCH
+
+                                   7/3
+                                   ---
+bashline.c
+       - set_directory_hook: and its siblings are a new set of functions to
+         set, save, and restore the appropriate directory completion hook
+       - change callers to use {set,save,restore}_directory_hook instead of
+         manipulating rl_directory_rewrite_hook directly
+       - dircomplete_expand: new variable, defaults to 0, if non-zero causes
+         directory names to be word-expanded during word and filename
+         completion
+       - change {set,save,restore}_directory_hook to look at dircomplete_expand
+         and change rl_directory_completion_hook or rl_directory_rewrite_hook
+         appropriately
+
+bashline.h
+       - extern declaration for set_directory_hook so shopt code can use it
+
+                                   7/6
+                                   ---
+builtins/shopt.def
+       - globasciiranges: new settable shopt option, makes glob ranges act
+         as if in the C locale (so b no longer comes between A and B).
+         Suggested by Aharon Robbins <arnold@skeeve.com>
+
+                                   7/7
+                                   ---
+doc/{bash.1,bashref.texi}
+       - document new `globasciiranges' shopt option
+
+                                   7/8
+                                   ---
+builtins/shopt.def
+       - direxpand: new settable option, makes filename completion expand
+         variables in directory names like bash-4.1 did.
+       - shopt_set_complete_direxpand: new function, does the work for the
+         above by calling set_directory_hook
+
+doc/{bash.1,bashref.texi}
+       - document new `direxpand' shopt option
+
+                                  7/15
+                                  ----
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: when adding character to search string, use
+         cxt->lastc (which we use in the switch statement) instead of c,
+         since lastc can be modified earlier in the function
+
+                                  7/18
+                                  ----
+lib/readline/rlprivate.h
+       - _rl_search_context: add another member to save previous value of
+         (multibyte) lastc: pmb is to mb as prevc is to lastc
+
+lib/readline/isearch.c:
+       - _rl_isearch_dispatch: if a key sequence indexes into a new keymap,
+         but doesn't find any bound function (k[ind].function == 0) or is
+         bound to self-insert (k[ind].function == rl_insert), back up and
+         insert the previous character (the one that caused the index into a
+         new keymap) and arrange things so the current character is the next
+         one read, so both of them end up in the search string.  Fixes bug
+         reported by Clark Wang <dearvoid@gmail.com>
+       - _rl_isearch_dispatch: a couple of efficiency improvements when adding
+         characters to the isearch string
+
+                                  7/24
+                                  ----
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb
+         appropriately when in a multibyte locale
+
+doc/{bash.1,bashref.texi}
+       - correct description of {x}>file (and other redirection operators
+         that allocate a file descriptor) to note the the fd range is
+         greater than or equal to 10.  Fixes problem reported by
+         Christian Ullrich 
+
+lib/readline/signals.c
+       - rl_signal_handler: don't interrupt immediately if in callback mode
+
+lib/readline/callback.c
+       - rl_callback_read_char: install signal handlers only when readline
+         has control in callback mode, so readline's signal handlers aren't
+         called when the application is active (e.g., between the calls to
+         rl_callback_handler_install and rl_callback_read_char).  If the
+         readline signal handlers only set a flag, which the application
+         doesn't know about, the signals will effectively be ignored until
+         the next time the application calls into the readline callback
+         interface.  Fixes problem of calling unsafe functions from signal
+         handlers when in callback mode reported by Jan Kratochvil
+         <jan.kratochvil@redhat.com>
+
+execute_cmd.c
+       - fix_assignment_words: when in Posix mode, the `command' builtin
+         doesn't change whether or not the command name it protects is an
+         assignment builtin.  One or more instances of `command'
+         preceding `export', for instance, doesn't make `export' treat its
+         assignment statement arguments differently.  Posix interpretation
+         #351
+
+doc/{bash.1,bashref.texi}
+       - document new Posix-mode behavior of `command' when preceding builtins
+         that take assignment statements as arguments
+
+builtins/printf.def
+       - printstr: if fieldwidth or precision are < 0 or > INT_MAX when
+         supplied explicitly (since we take care of the `-' separately),
+         clamp at INT_MAX like when using getint().  Fixes issue reported
+         by Ralph Coredroy <ralph@inputplus.co.uk>
+
+                                  7/25
+                                  ----
+lib/readline/chardefs.h
+       - isxdigit: don't define if compiling with c++; declared as a c++
+         template function.  Fixes bug reported by Miroslav Lichvar
+         <mlichvar@redhat.com>
+
+builtins/printf.def
+       - getint: if garglist == 0, return whatever getintmax returns (0).
+         Fixes bug reported  by Ralph Coredroy <ralph@inputplus.co.uk>
+
+                                  7/28
+                                  ----
+doc/{bash.1,bashref.texi}
+       - minor changes to the descriptions of the cd and pushd builtins
+
+lib/sh/zread.c
+       - zsyncfd: change variable holding return value from lseek to
+         off_t.  Bug report and fix from Gregory Margo <gmargo@pacbell.net>
+
+                                   8/1
+                                   ---
+expr.c
+       - don't check for division by 0 when in a context where no evaluation
+         is taking place.  Fixes bug reported by dnade.ext@orange-ftgroup.com
+
+                                   8/6
+                                   ---
+execute_cmd.c
+       - execute_command_internal: the parent branch of the subshell code
+         (where the child calls execute_in_subshell) should not close all
+         open FIFOs with unlink_fifo_list if it's part of a shell function
+         that's still executing.  Fixes bug reported by Maarten Billemont
+         <lhunath@lyndir.com>
+
+                                   8/9
+                                   ---
+builtins/common.c
+       - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument
+
+builtins/return.def
+       - return_builtin: just call get_exitstat to get the return status,
+         let it handle proper parsing and handling of arguments.  Fixes
+         issue most recently raised by Linda Walsh <bash@tlinx.org>.
+         Reverses change from 9/11/2008 (see above)
+
+                                  8/16
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clean up `set -e' language to make it clearer that any failure of
+         a compound command will cause the shell to exit, not just subshells
+         and brace commands
+
+                                  8/17
+                                  ----
+configure.in
+       - make the various XXX_FOR_BUILD variables `precious' to autoconf to
+         avoid stale data
+       - change how CC_FOR_BUILD is initialized when cross-compiling and not,
+         but do not change behavior
+       - initialize CFLAGS_FOR_BUILD to -g when cross-compiling
+       - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty
+         when cross-compiling
+       - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when
+         CFLAGS not inherited from environment (like effect of old
+         auto_cflags variable)
+       - substitute LIBS_FOR_BUILD into output Makefiles
+         [changes inspired by bug report from Nathan Phillip Brink
+         <ohnobinki@ohnopublishing.net> -- gentoo bug 378941]
+
+builtins/Makefile.in   
+       - substitute LIBS_FOR_BUILD from configure, not strictly initialized
+         to $(LIBS)
+
+                                  8/27
+                                  ----
+doc/{bash.1,bashref.texi}
+       - minor changes to the here string description to clarify the
+         expansions performed on the word
+
+support/shobj-conf
+       - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes
+         to darwin stanzas.  Fixes readline bug reported by Vincent
+         Sheffer <vince.sheffer@apisphere.com>
+
+lib/sh/strtrans.c
+       - ansic_wshouldquote: check a string with multi-byte characters for
+         characters that needs to be backslash-octal escaped for $'...'
+       - ansic_shouldquote: if is_basic fails for one character, let
+         ansic_wshouldquote examine the rest of the string and return what
+         it returns.  From a patch sent by Roman Rakus <rrakus@redhat.com>
+
+                                  8/30
+                                  ----
+lib/sh/strtrans.c
+       - ansic_quote: changes to quote (or not) multibyte characters.  New
+         code converts them to wide characters and uses iswprint to check
+         valid wide chars.  From a patch sent by Roman Rakus
+         <rrakus@redhat.com>
+
+                                   9/7
+                                   ---
+lib/sh/shquote.c
+       - sh_backslash_quote: change to be table-driven so we can use a
+         different table if we want to
+       - sh_backslash_quote: takes a second char table[256] argument;
+
+externs.h
+       - sh_backslash_quote: add second argument to function prototype
+
+bashline.c,braces.c,parse.y,builtins/printf.def
+       - change callers of sh_backslash_quote to add second argument
+
+bashline.c
+       - filename_bstab: table of characters to pass to sh_backslash_quote;
+         characters with value 1 will be backslash-quoted
+       - set_filename_bstab: turn on characters in filename backslash-quote
+         table according to passed string argument
+       - call set_filename_bstab every time rl_filename_quote_characters is
+         assigned a value
+       - bash_quote_filename: call sh_backslash_quote with filename_bstab
+         as second argument.  This allows other characters in filenames to
+         be quoted without quoting, for instance, a dollar sign in a shell
+         variable reference
+
+                                   9/8
+                                   ---
+bashline.c
+       - complete_fullquote: new variable, controls table passed to
+         sh_backslash_quote.  If non-zero (the default), the standard set
+         of shell metacharacters -- as in bash versions up to and including
+         bash-4.2 -- gets backslash-quoted by the completion code.  If zero,
+         sh_backslash_quote gets the table with the characters in the
+         variable reference removed, which means they are removed from the
+         set of characters to be quoted in filenames
+
+                                  9/10
+                                  ----
+bashline.c
+       - bash_filename_stat_hook: new function, designed to expand variable
+         references in filenames before readline passes them to stat(2)
+         to determine whether or not they are a directory
+
+                                  9/15
+                                  ----
+builtins/declare.def
+       - if assign_array_element fails due to a bad (or empty) subscript, mark
+         it as an assignment error and don't attempt any further processing
+         of that declaration.  Fixes segfault bug reported by Diego Augusto
+         Molina <diegoaugustomolina@gmail.com>
+
+                                  9/19
+                                  ----
+expr.c
+       - exppower: replace the simple exponentiation algorithm with an
+         implementation of exponentiation by squaring.  Inspired by report
+         from Nicolas ARGYROU <nargy@yahoo.com>
+
+bashline.c
+       - bash_quote_filename: check for rtext being non-null before
+         dereferencing it
+       - set_saved_history: operate_and_get_next assumes that the previous
+         line was added to the history, even when the history is stifled and
+         at the max number of entries.  If it wasn't, make sure the history
+         number is incremented properly.  Partial fix for bug reported by
+         gregrwm <backuppc-users@whitleymott.net>
+
+doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
+       - minor editorial changes inspired by suggestions from
+         Roger Zauner <rogerx.oss@gmail.com>
+
+                                  9/20
+                                  ----
+lib/intl/localealias.c
+       - read_alias_file: close resource leak (fp) when returning on error
+
+                                  9/22
+                                  ----
+execute_command.c
+       - execute_intern_function: implement Posix interpretation 383 by making
+         it an error to define a function with the same name as a special
+         builtin when in Posix mode.
+         http://austingroupbugs.net/view.php?id=383#c692
+
+                                  9/25
+                                  ----
+doc/{bash.1,bashref.texi}
+       - formatting and some content changes from Benno Schulenberg
+         <bensberg@justemail.net>
+       - document new posix-mode behavior from interp 383 change of 9/22
+
+                                  9/30
+                                  ----
+execute_cmd.c
+       - shell_execve: add strerror to error message about executable file
+         that shell can't execute as a shell script.  From suggestion by
+         daysleeper <daysleeper@centrum.cz>
+
+                                  10/1
+                                  ----
+bashhist.c
+       - maybe_add_history: act as if literal_history is set when parser_state
+         includes PST_HEREDOC, so we save the bodies of here-documents just
+         as they were entered.  Fixes bug reported by Jonathan Wakely
+         <bugs@kayari.org>
+       - bash_add_history: make sure that the second and subsequent lines of
+         a here document don't have extra newlines or other delimiting
+         chars added, since they have the trailing newline preserved, when
+         `lithist' is set and history_delimiting_chars isn't called
+
+execute_cmd.c
+       - execute_command_internal: avoid fd exhaustion caused by using
+         process substitution in loops inside shell functions by using
+         copy_fifo_list and close_new_fifos ().  Fixes debian bash bug
+         642504
+
+lib/readline/complete.c
+       - new variable, rl_filename_stat_hook, used by append_to_match.  If
+         filename completion is desired, and rl_filename_stat_hook points
+         to a function, call that function to expand the filename in an
+         application-specific way before calling stat.
+
+bashline.c
+       - bash_default_completion: if variable completion returns a single
+         match, use bash_filename_stat_hook and file_isdir to determine
+         whether or not the variable name expands to a directory.  If it
+         does, set the filename_append_character to `/'.  This is not
+         perfect, so we will see how it works out.  Adds functionality
+         requested by Peter Toft <pto@linuxbog.dk> and Patrick Pfeifer
+         <patrick@pfeifer.de>
+       - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things
+         like $HOME/Downloads (after completion) have a slash appended.
+         In general, this causes the stat hook to be called whenever
+         filename completion is appended.  Adds functionality requested by
+         Patrick Pfeifer <patrick@pfeifer.de>
+
+lib/readline/readline.h
+       - new extern declaration for rl_filename_stat_hook
+
+lib/readline/doc/rltech.texi
+       - rl_directory_rewrite_hook: now documented
+       - rl_filename_stat_hook: document
+
+pcomplete.c
+       - gen_action_completions: in the CA_DIRECTORY case, turn off
+         rl_filename_completion_desired if it was off before we called
+         rl_filename_completion_function and we didn't get any matches.
+         Having it on causes readline to quote the matches as if they
+         were filenames.  Adds functionality requested by many,
+         including Clark Wang <dearvoid@gmail.com>
+
+assoc.[ch]
+       - assoc_replace: new function, takes the same arguments as
+         assoc_insert, but returns the old data instead of freeing it
+       - assoc_insert: if the object returned by hash_insert doesn't have
+         the same value for its key as the key passed as an argument, we
+         are overwriting an existing value.  In this case, we can free the
+         key.  Fixes bug reported by David Parks <davidparks21@yahoo.com>
+
+                                  10/5
+                                  ----
+print_cmd.c
+       - indirection_level_string: small change to only re-enable `x'
+         option after calling decode_prompt_string if it was on before.  In
+         normal mode, it will be, but John Reiser <jreiser@bitwagon.com>
+         has a novel use for that code in conjunction with a pre-loaded
+         shared library that traces system call usage in shell scripts
+
+                                  10/10
+                                  -----
+Makefile.in
+       - Fix from Mike Frysinger <vapier@gentoo.org> to avoid trying to
+         build y.tab.c and y.tab.h with two separate runs of yacc if
+         parse.y changes.  Problem with parallel makes
+       - Fix from Mike Frysinger <vapier@gentoo.org> to avoid subdirectory
+         builds each trying to make version.h (and all its dependencies)
+
+lib/sh/Makefile.in
+       - remove some dependencies on version.h where it doesn't make sense
+
+variables.c
+       - initialize_shell_variables: while reading the environment, a shell
+         running in posix mode now checks for SHELLOPTS being readonly (it
+         gets set early on in main()) before trying to assign to it.  It
+         saves an error message and the variable gets parsed as it should.
+         Fixes bug reported by Len Giambrone <Len.Giambrone@intersystems.com>
+
+                                  10/14
+                                  -----
+doc/{bash.1,bashref.texi}
+       - add to the "duplicating file descriptors" description that >&word
+         doesn't redirect stdout and stderr if word expands to `-'
+       - add to the "appending standard output and standard error"
+         description a note that >&word, where word is a number or `-',
+         causes other redirection operators to apply for sh and Posix
+         compatibility reasons.  Suggested by Greg Wooledge
+         <wooledg@eeg.ccf.org>
+
+                                  10/15
+                                  -----
+pcomplete.c
+       - change pcomp_filename_completion_function to only run the filename
+         dequoting function in the cases (as best as it can figure) where
+         readline won't do it via rl_filename_completion_function.  Based
+         on reports from <lolilolicon@gmail.com>
+
+                                  10/19
+                                  -----
+bashline.c
+       - attempt_shell_completion: add call to set_directory_hook() to make
+         sure the rewrite functions are correct.  It's cheap and doesn't
+         hurt
+       - command_word_completion_function: if completing a command name that
+         starts with `.' or `..', temporarily suppress the effects of the
+         `direxpand' option and restore the correct value after calling
+         rl_filename_completion_function.  If it's enabled, the directory
+         name will be rewritten and no longer match `./' or `../'.  Fixes
+         problem reported by Michael Kalisz <michael@kalisz.homelinux.net>
+
+                                  10/22
+                                  -----
+builtins/history.def
+       - push_history: make sure remember_on_history is enabled before we
+         try to delete the last history entry -- the `history -s' command
+         might not have been saved.  Fixes bug reported by
+         lester@vmw-les.eng.vmware.com
+
+lib/readline/complete.c
+       - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
+         instead of straight return; add same call at end of function.
+         Placeholder for future work in deinstalling signal handlers when
+         readline is not active
+
+                                  10/25
+                                  -----
+expr.c
+       - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
+         for DIV and MOD and avoid SIGFPE.  Bug report and pointer to fix
+         from Jaak Ristioja <jaak.ristioja@cyber.ee>
+       - expassign: same changes for arithmetic overflow for DIV and MOD
+
+                                  10/28
+                                  -----
+subst.c
+       - parameter_brace_expand: allow pattern substitution when there is an
+         expansion of the form ${var/} as a no-op: replacing nothing with
+         nothing
+       - parameter_brace_patsub: don't need to check for PATSUB being NULL;
+         it never is
+
+flags.c
+       - if STRICT_POSIX is defined, initialize history_expansion to 0, since
+         history expansion (and its treatment of ! within double quotes) is
+         not a conforming posix environment.  From austin-group issue 500
+
+lib/readline/histexpand.c
+       - history_expand: when processing a string within double quotes
+         (DQUOTE == 1), make the closing double quote inhibit history
+         expansion, as if the word were outside double quotes.  In effect,
+         we assume that the double quote is followed by a character in
+         history_no_expand_chars.  tcsh and csh seem to do this.  This
+         answers a persistent complaint about history expansion
+
+                                  10/29
+                                  -----
+make_cmd.c
+       - make_arith_for_command: use skip_to_delim to find the next `;'
+         when breaking the string between the double parens into three
+         separate components instead of a simple character loop.  Fixes
+         bug reported by Dan Douglas <ormaaj@gmail.com>
+
+                                  11/2
+                                  ----
+Makefile.in
+       - make libbuiltins.a depend on builtext.h to serialize its creation
+         and avoid conflict between multiple invocations of mkbuiltins.
+         Fix from Mike Frysinger <vapier@gentoo.org>
+
+                                  11/5
+                                  ----
+findcmd.c
+       - user_command_matches: if stat(".", ...) returns -1, set st_dev
+         and st_ino fields in dotinfo to 0 to avoid same_file matches
+       - find_user_command_in_path: check stat(2) return the same way
+
+lib/glob/glob.c
+       - glob_vector: don't call strlen(pat) without checking pat == 0
+       - glob_dir_to_array: make sure to free `result' and all allocated
+         members before returning error due to malloc failure
+       - glob_vector: make sure to free `nextname' and `npat' on errors
+         (mostly when setting lose = 1)
+       - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make
+         sure we free `subdir'
+       - glob_filename: when expanding ** (GX_ALLDIRS), make sure we
+         free temp_results (return value from glob_vector)
+
+lib/glob/xmbsrtowcs.c
+       - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead
+         of sizeof (char **) when assigning idxtmp
+
+execute_cmd.c
+       - print_index_and_element: return 0 right away if L == 0
+       - is_dirname: fix memory leak by freeing `temp'
+       - time_command: don't try to deref NULL `command' when assigning
+         to `posix_time'
+       - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's
+         terminated for functions that expect that
+
+builtins/read.def
+       - read_builtin: don't call bind_read_variable with a potentially-null
+         string
+
+pcomplete.c
+       - gen_command_matches: don't call dispose_word_desc with a NULL arg
+       - gen_compspec_completions: fix memory leak by freeing `ret' before
+         calling gen_action_completions (tcs, ...).  happens when
+         performing directory completion as default and no completions
+         have been generated
+       - gen_progcomp_completions: make sure to set foundp to 0 whenever
+         returning NULL
+       - it_init_aliases: fix memory leak by freeing alias_list before
+         returning
+
+bashline.c
+       - command_word_completion_function: don't call restore_tilde with a
+         NULL directory_part argument
+       - bash_directory_expansion: bugfix: don't throw away results of
+         rl_directory_rewrite_hook if it's set and returns non-zero
+       - bind_keyseq_to_unix_command: free `kseq' before returning error
+
+arrayfunc.c
+       - assign_array_element_internal: make sure `akey' is freed if non-null
+         before returning error
+       - assign_compound_array_list: free `akey' before returning error
+       - array_value_internal: free `akey' before returning error
+       - unbind_array_element: free `akey' before returning error
+
+subst.c
+       - array_length_reference: free `akey' before returning error in case
+         of expand_assignment_string_to_string error
+       - array_length_reference: free `akey' after call to assoc_reference
+       - skip_to_delim: if skipping process and command substitution, free
+         return value from extract_process_subst
+       - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before
+         returning if verify_substring_values fails
+       - parameter_brace_expand: remove two duplicate lines that allocate
+         ret in parameter_brace_substring case
+       - parameter_brace_expand: convert `free (name); name = xmalloc (...)'
+         to use `xrealloc (name, ...)'
+       - parameter_brace_expand: free `name' before returning when handling
+         ${!PREFIX*} expansion
+       - split_at_delims: fix memory leak by freeing `d2' before returning
+
+redir.c
+       - redirection_error: free `filename' if the redirection operator is
+         REDIR_VARASSIGN by assigning allocname
+
+eval.c
+       - send_pwd_to_eterm: fix memory leak by freeing value returned by
+         get_working_directory()
+
+builtins/cd.def
+       - change_to_directory: fix memory leak by freeing return value from
+         resetpwd()
+       - cd_builtin: fix memory leak by freeing value returned by dirspell()
+       - cd_builtin: fix memory leak by freeing `directory' if appropriate
+         before overwriting with return value from resetpwd()
+
+builtins/type.def
+       - describe_command: free `full_path' before overwriting it with return
+         value from sh_makepath
+
+builtins/complete.def
+       - compgen_builtin: fix memory leak by calling strlist_dispose (sl)
+         before overwriting sl with return value from completions_to_stringlist
+
+builtins/hash.def
+       - list_hashed_filename_targets: fix memory leak by freeing `target'
+
+make_cmd.c
+       - make_arith_for_command: free `init', `test', and `step' before
+         returning error on parse error
+
+jobs.c
+       - initialize_job_control: don't call move_to_high_fd if shell_tty == -1
+
+general.c
+       - check_dev_tty: don't call close with an fd < 0
+       - legal_number: deal with NULL `string' argument, return invalid
+
+lib/sh/fmtulong.c
+       - fmtulong: if the `base' argument is invalid, make sure we index
+         buf by `len-1' at maximum
+
+print_cmd.c
+       - print_deferred_heredocs: don't try to dereference a NULL `cstring'
+       - cprintf: make sure to call va_end (args)
+
+variables.c
+       - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *)
+         instead of sizeof (WORD_LIST **)
+
+lib/sh/zmapfd.c
+       - zmapfd: if read returns error, free result and return -1 immediately
+         instead of trying to reallocate it
+
+                                  11/6
+                                  ----
+execute_cmd.c
+       - cpl_reap: rewrote to avoid using pointer after freeing it; now builds
+         new coproc list on the fly while traversing the old one and sets the
+         right values for coproc_list when done
+
+                                  11/12
+                                  -----
+builtins/set.def
+       - if neither -f nor -v supplied, don't allow a readonly function to
+         be implicitly unset.  Fixes bug reported by Jens Schmidt
+         <jens.schmidt35@arcor.de>
+
+lib/readline/callback.c
+       - change CALLBACK_READ_RETURN to clear signal handlers before returning
+         from rl_callback_read_char so readline's signal handlers aren't
+         installed when readline doesn't have control.  Idea from Jan
+         Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
+         team
+
+pcomplete.h
+       - COPT_NOQUOTE: new complete/compgen option value
+
+builtins/complete.def
+       - noquote: new complete/compgen option; will be used to disable
+         filename completion quoting
+
+pcomplete.c
+       - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns
+         of rl_filename_quoting_desired if set; turns it on if unset (value
+         is inverted, since default is on)
+
+doc/bash.1,lib/readline/doc/rluser.texi
+       - document new -o noquote option to complete/compgen/compopt
+
+pathexp.c
+       - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters
+         between brackets in an ERE bracket expression are not inappropriately
+         quoted with backslashes.  This is a pretty substantial change,
+         should be stressed when opening bash up for alpha and beta tests.
+         Fixes bug pointed out by Stephane Chazleas
+         <stephane_chazelas@yahoo.fr>
+
+doc/{bash.1,bashref.texi}
+       - document that regexp matches can be inconsistent when quoting
+         characters in bracket expressions, since usual quoting characters
+         lose their meaning within brackets
+       - note that regular expression matching when the pattern is stored
+         in a shell variable which is quoted for expansion causes string
+         matching
+
+redir.h
+       - RX_SAVEFD: new flag value; notes that a redirection denotes an
+         fd used to save another even if it's not >= SHELL_FD_BASE
+
+redir.c
+       - do_redirection_internal: when deciding whether or not to reset the
+         close-on-exec flag on a restored file descriptor, trust the value
+         of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE
+         if the RX_SAVEFD flag is set
+       - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor
+         limit is such that the shell can't duplicate to a file descriptor
+         >= 10.  Fixes a limitation that tripped a coreutils test reported
+         by Paul Eggert <eggert@cs.ucla.edu>
+
+                                  11/19
+                                  -----
+doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
+       - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading
+         the startup files
+       - make it clear that bash runs HISTSIZE=500 after reading the
+         startup files
+       - make it clear that setting HISTSIZE=0 causes commands to not be
+         saved in the history list
+       - make it clear that setting HISTFILESIZE=0 causes the history file
+         to be truncated to zero size
+
+variables.c
+       - sv_histsize: change so setting HISTSIZE to a value less than 0
+         causes the history to be `unstifled'
+       - sv_histsize: change so setting HISTFILESIZE to a value less than 0
+         results in no file truncation
+       - make it clear that numeric values less than 0 for HISTFILESIZE or
+         HISTSIZE inhibit the usual functions
+
+                                  11/23
+                                  -----
+parse.y
+       - save_input_line_state: add missing `return ls' at the end, since the
+         function is supposed to return its argument.  Pointed out by
+         Andreas Schwab <schwab@linux-m68k.org>
+
+builtins/read.def
+       - skip over NUL bytes in input, as most modern shells seem to.  Bug
+         report by Matthew Story <matt@tablethotels.com>
+
+lib/readline/vi_mode.c
+       - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key
+
+                                  11/25
+                                  -----
+builtins/read.def
+       - read_builtin: if xrealloc returns same pointer as first argument,
+         don't bother with the remove_unwind_protect/add_unwind_protect pair
+       - read_builtin: set a flag (`reading') around calls to zread/zreadc
+         and readline()
+       - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if
+         currently in read(2) (reading != 0)
+       - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero,
+         behavior of old SIGALRM catching function
+       - read_builtin: call CHECK_ALRM in appropriate places while reading
+         line of input.  Fixes bug reported by Pierre Gaston
+         <pierre.gaston@gmail.com>
+
+lib/readline/vi_mode.c
+       - rl_vi_replace: initialize characters before printing characters in
+         vi_replace_keymap to their default values in vi_insertion_keymap,
+         since we're supposed to be in insert mode replacing characters
+       - rl_vi_replace: call rl_vi_start_inserting to set last command to
+         `R' for undo
+       - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future
+         use by _rl_vi_done_inserting
+       - vi_save_insert_buffer: new function, broke out code that copies text
+         into vi_insert_buffer from _rl_vi_save_insert
+       - _rl_vi_save_replace: new function, saves text modified by
+         rl_vi_replace (using current point and vi_replace_count to figure
+         it out) to vi_replace_buffer
+       - _rl_vi_save_insert: call vi_save_insert_buffer
+       - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call
+         _rl_vi_save_replace to save text modified in replace mode (uses
+         vi_save_insert_buffer)
+       - _rl_vi_replace_insert: new function, replaces the number of chars
+         in vi_insert_buffer after rl_point with contents ov vi_insert_buffer
+       - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and
+         there's something in vi_insert_buffer.  Fixes bug with `.' not
+         redoing the most recent `R' command, reported by Geoff Clare
+         <g.clare@opengroup.org> in readline area on savannah
+
+                                  11/26
+                                  -----
+lib/readline/rlprivate.h
+       - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal
+         to be handled
+       - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending
+         SIGINT to be handled
+
+lib/readline/complete.c
+       - remove all mention of _rl_interrupt_immediately
+       - rl_completion_matches: check RL_SIG_RECEIVED after each call to
+         the entry function, call RL_CHECK_SIGNALS if true to handle the
+         signal
+       - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free
+         and zero out the match_list this function allocated
+       - rl_completion_matches: if the completion entry function is
+         rl_filename_completion_function, free the contents of match_list,
+         because that function does not keep state and will not free the
+         entries; avoids possible memory leak pointed out by
+         Garrett Cooper <yanegomi@gmail.com>
+       - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after
+         calling rl_attempted_completion_function, free the returned match
+         list and handle the signal with RL_CHECK_SIGNALS; avoids
+         possible memory leak pointed out by Garrett Cooper
+         <yanegomi@gmail.com>
+       - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after
+         calling rl_completion_matches, free the returned match list and
+         handle the signal with RL_CHECK_SIGNALS
+
+lib/readline/util.c
+       - rl_settracefp: new utility function to set the tracing FILE *
+
+lib/readline/signals.c
+       - _rl_sigcleanup: pointer to a function that will be called with the
+         signal and a void * argument from _rl_handle_signal
+       - _rl_sigcleanarg: void * that the rest of the code can set to have
+         passed to the signal cleanup function
+       - _rl_handle_signal: if _rl_sigcleanup set, call as
+               (*_rl_sigcleanup) (sig, _rl_sigcleanarg)
+
+lib/readline/rlprivate.h
+       - extern declarations for _rl_sigcleanup and _rl_sigcleanarg
+
+lib/readline/complete.c
+       - _rl_complete_sigcleanup: signal cleanup function for completion code;
+         calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT
+       - rl_complete_internal: before calling display_matches if what_to_do
+         == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match
+         list gets freed on SIGINT; avoids possible memory leak pointed out
+         by Garrett Cooper <yanegomi@gmail.com>
+       - rl_complete_internal: in default switch case, call _rl_free_match_list
+         before returning to avoid memory leak
+
+doc/bashref.texi
+       - start at a set of examples for the =~ regular expression matching
+         operator, touching on keeping the pattern in a shell variable and
+         quoting portions of the pattern to remove their special meaning
+
+                                  12/1
+                                  ----
+lib/glob/gmisc.c
+       - extglob_pattern: new function, returns 1 if pattern passed as an
+         argument looks like an extended globbing pattern
+
+lib/glob/glob.c
+       - skipname: return 0 immediately if extglob_pattern returns non-zero,
+         let the extended globbing code do the right thing with skipping
+         names beginning with a `.'
+       - mbskipname: return 0 immediately if extglob_pattern returns non-zero,
+         let the extended globbing code do the right thing with skipping
+         names beginning with a `.'.  Fixes bug reported by Yongzhi Pan
+         <panyongzhi@gmail.com>
+
+                                  12/2
+                                  ----
+lib/glob/smatch.c
+       - patscan, patscan_wc: no longer static so other parts of the glob
+         library can use them, renamed to glob_patscan, glob_patscan_wc
+
+lib/glob/glob.c
+       - extern declarations for glob_patscan, glob_patscan_wc
+       - wchkname: new function, does skipname on wchar_t pattern and dname,
+         old body of mbskipname after converting to wide chars
+       - extglob_skipname: new function, checks all subpatterns in an extglob
+         pattern to determine whether or not a filename should be skipped.
+         Calls skipname for each subpattern.  Dname is only skipped if all
+         subpatterns indicate it should be.  Better fix for bug reported by
+         Yongzhi Pan <panyongzhi@gmail.com>
+       - wextglob_skipname: wide-char version of extglob_skipname, calls
+         wchkname instead of calling back into mbskipname for each
+         subpattern to avoid problems with char/wchar_t mismatch
+       - skipname: call extglob_skipname if extglob_pattern returns non-zero
+       - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero
+       - mbskipname: short-circuit immediately if no multibyte chars in
+         pattern or filename
+
+execute_cmd.c
+       - execute_cond_node: added parens to patmatch assignment statement to
+         make intent clearer
+
+                                  12/3
+                                  ----
+configure.in,config.h.in
+       - check for imaxdiv, define HAVE_IMAXDIV if present
+
+expr.c
+       - expassign, exp2: use imaxdiv if available.  Doesn't help with checks
+         for overflow from 10/25
+
+                                  12/6
+                                  ----
+lib/readline/complete.c
+       - compute_lcd_of_matches: if we're ignoring case in the matches, only
+         use what the user typed as the lcd if it matches the first match
+         (after sorting) up to the length of what was typed (if what the
+         user typed is longer than the shortest of the possible matches, use
+         the shortest common length of the matches instead).  If it doesn't
+         match, use the first of the list of matches, as if case were not
+         being ignored.  Fixes bug reported by Clark Wang
+         <dearvoid@gmail.com>
+
+                                  12/7
+                                  ----
+builtins/cd.def
+       - cd_builtin: add code to return error in case cd has more than one
+         non-option argument, conditional on CD_COMPLAINS define (which is
+         not defined anywhere)
+
+doc/{bash.1,bashref.texi}
+       - note that additional arguments to cd following the directory name
+         are ignored.  Suggested by Vaclav Hanzl <hanzl@noel.feld.cvut.cz>
+
+                                  12/10
+                                  -----
+lib/readline/input.c
+       - rl_read_key: don't need to increment key sequence length here; doing
+         it leads to an off-by-one error
+
+lib/readline/macro.c
+       - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length
+         fixed, can decrement current_macro_index by rl_key_sequence_length
+         (length of key sequence that closes keyboard macro)
+
+lib/readline/readline.c
+       - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length
+         when ESC maps to a new keymap and we're converting meta characters
+         to ESC+key
+       - _rl_dispatch_subseq: better increment of rl_key_sequence_length
+         before we dispatch to a function in the ISFUNC case (where the
+         second increment above should have happened)
+       - rl_executing_keyseq: the full key sequence that ended up executing
+         a readline command.  Available to the calling application, maintained
+         by _rl_dispatch_subseq, indexed by rl_key_sequence_length
+       - rl_executing_key: the key that was bound to the currently-executing
+         readline command.  Same as the `key' argument to the function
+
+lib/readline/readline.h
+       - rl_executing_keyseq: extern declaration
+       - rl_executing_key: extern declaration
+       - rl_key_sequence_length: declaration moved here from rlprivate.h,
+         now part of public interface
+
+lib/readline/rlprivate.h
+       - new extern declaration for _rl_executing_keyseq_size, buffer size
+         for rl_executing_keyseq
+
+lib/readline/doc/rltech.texi
+       - documented new variables: rl_executing_key, rl_executing_keyseq,
+         rl_key_sequence_length
+
+                                  12/13
+                                  -----
+bashline.c
+       - bash_execute_unix_command: replace ad-hoc code that searches
+         cmd_xmap for correct command with call to rl_function_of_keyseq
+         using rl_executing_keyseq; now supports key sequences longer
+         than two characters.  Fixes bug reported by Michael Kazior
+         <kazikcz@gmail.com>
+
+                                  12/15
+                                  -----
+make_cmd.c
+       - make_function_def: don't null out source_file before calling
+         make_command so it can be used later on when the function definition
+         is executed
+
+execute_cmd.c
+       - execute_intern_function: second argument is now FUNCTION_DEF *
+         instead of COMMAND *
+       - execute_command_internal: call execute_intern_function with the
+         new second argument (the entire FUNCTION_DEF instead of just the
+         command member)
+       - execute_intern_function: if DEBUGGER is defined, call
+         bind_function_def before calling bind_function, just like
+         make_function_def does (might be able to take out the call in
+         make_function_def depending on what the debugger does with it).
+         Fixes bug reported by <dethrophes@motd005>
+
+expr.c
+       - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1;
+         fix typos and logic errors
+
+                                  12/16
+                                  -----
+bashline.c
+       - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over
+         command substitutions and doesn't treat them as command separators
+       - attempt_shell_completion: instead of taking first return from
+         find_cmd_name as command name to use for programmable completion,
+         use loop to skip over assignment statements.  Fixes problem reported
+         by Raphael Droz <raphael.droz+floss@gmail.com>
+       - attempt_shell_completion: if we don't find a command name but the
+         command line is non-empty, assume the other words are all assignment
+         statements and flag that point is in a command position so we can
+         do command name completion
+       - attempt_shell_completion: if the word being completed is the first
+         word following a series of assignment statements, and the
+         command line is non-empty, flag that point is in a command position
+         so we can do command name completion
+
+lib/readline/history.c
+       - history_get_time: atol -> strtol
+
+                                  12/18
+                                  -----
+parse.y
+       - parser_in_command_position: external interface to the
+         command_token_position macro for use by other parts of the shell,
+         like the completion mechanism
+
+externs.h
+       - extern declaration for parser_in_command_position
+
+                                  12/19
+                                  -----
+
+builtins/read.def
+       - read_builtin: make sure all calls to bind_read_variable are passed
+         a non-null string.  Fixes bug reported by Dan Douglas
+         <ormaaj@gmail.com>
+
+bashline.c
+       - attempt_shell_completion: mark that we're in a command position if
+         we're at the start of the line and the parser is ready to accept
+         a reserved word or command name.  Feature most recently suggested
+         by Peng Yu <pengyu.ut@gmail.com>
+
+                                  12/21
+                                  -----
+lib/readline/bind.c
+       - _rl_escchar: return the character that would be backslash-escaped
+         to denote the control character passed as an argument ('\n' -> 'n')
+       - _rl_isescape: return 1 if character passed is one that has a
+         backslash escape
+       - _rl_untranslate_macro_value: new second argument: use_escapes, if
+         non-zero translate to backslash escapes where possible instead of
+         using straight \C-x for control character `x'.  Change callers
+       - _rl_untranslate_macro_value: now global
+
+lib/readline/rlprivate.h
+       - _rl_untranslate_macro_value: extern declaration
+
+lib/readline/{macro.c,readline.h}
+       - rl_print_last_kbd_macro: new bindable function, inspired by patch
+         from Mitchel Humpherys
+
+lib/readline/funmap.c
+       - print-last-kbd-macro: new bindable command, bound to
+         rl_print_last_kbd_macro
+
+lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
+       - print-last-kbd-macro: document.
+
+lib/readline/text.c
+       - _rl_insert_next: if we're defining a macro, make sure the key gets
+         added to the macro text (should really audit calls to rl_read_key()
+         and make sure the right thing is happening for all of them)
+
+bashline.[ch]
+       - print_unix_command_map: new function, prints all bound commands in
+         cmd_xmap using rl_macro_dumper in a reusable format
+
+builtins/bind.def
+       - new -X option: print all keysequences bound to Unix commands using
+         print_unix_command_map.  Feature suggested by Dennis Williamson
+         (2/2011)
+
+doc/{bash.1,bashref.texi}
+       - document new `bind -X' option
+
+                                  12/24
+                                  -----
+
+doc/{bash.1,bashref.texi}
+       - add a couple of sentences to the description of the case modification
+         operators making it clearer that each character of parameter is
+         tested against the pattern, and that the pattern should only attempt
+         to match a single character.  Suggested by Bill Gradwohl
+         <bill@ycc.com>
+
+                                  12/28
+                                  -----
+shell.c
+       - init_noninteractive: instead of calling set_job_control(0) to
+         unconditionally turn off job control, turn on job control if
+         forced_interactive or jobs_m_flag is set
+       - shell_initialize: call initialize_job_control with jobs_m_flag as
+         argument so `bash -m script' enables job control while running the
+         script
+
+jobs.c
+       - initialize_job_control: if the `force' argument is non-zero, turn on
+         job control even if the shell is not currently interactive
+         (interactive == 0)
+
+                                  12/29
+                                  -----
+
+flags.h
+       - new extern declaration for jobs_m_flag
+
+builtins/{cd,set}.def,doc/{bash.1,bashref.texi}
+       - added text clarifying the descriptions of cd -L and -P, suggested by
+         Padraig Brady <p@draigbrady.com>
+       - slight change to the description of `set -P' about resolving symbolic
+         links
+
+lib/readline/doc/rluser.texi
+       - Added an example to the programmable completion section: _comp_cd,
+         a completion function for cd, with additional verbiage.  Text
+         includes a reference to the bash_completion project
+
+                                1/1/2012
+                                --------
+jobs.c
+       - set_job_status_and_cleanup: note that a job is stopped due to
+         SIGTSTP (any_tstped) if job_control is set; there's no need to
+         test interactive
+
+                                   1/5
+                                   ---
+quit.h
+       - LASTSIG(): new macro, expands to signal number of last terminating
+         signal received (terminating_signal or SIGINT)
+
+trap.c
+       - first_pending_trap: returns lowest signal number with a trap pending
+       - trapped_signal_received: set to the last trapped signal the shell
+         received in trap_handler(); reset to 0 in run_pending_traps
+
+builtins/read.def
+       - read_builtin: changes to posix-mode (posixly_correct != 0) to make
+         `read' interruptible by a trapped signal.  After the trap runs,
+         read returns 128+sig and does not assign the partially-read line
+         to the named variable(s).  From an austin-group discussion started
+         by David Korn
+
+                                  1/11
+                                  ----
+doc/{bash.1,bashref.texi}
+       - slight changes to the descriptions of the compat32 and compat40 shell
+         options to clarify their meaning
+
+                                  1/12
+                                  ----
+lib/readline/{colors.[ch],parse-colors.[ch]}
+       - new files, part of color infrastructure support
+
+Makefile.in,lib/readline/Makefile.in
+       - arrange to have colors.o and parse-colors.o added to readline
+         library
+
+{configure,config.h}.in
+       - check for stdbool.h, define HAVE_STDBOOL_H if found
+
+                                  1/14
+                                  ----
+lib/readline/bind.c
+       - colored_stats: new bindable variable, enables using colors to
+         indicate file type when listing completions
+
+lib/readline/complete.c
+       - _rl_colored_stats: new variable, controlled by colored-stats bindable
+         variable
+       - colored_stat_start, colored_stat_end: new functions to set and reset
+         the terminal color appropriately depending on the type of the
+         filename to be printed
+       - print_filename: changes to print colors if `colored-stats' variable
+         set.  Changes contributed by Raphael Droz
+         <raphael.droz+floss@gmail.com>
+
+lib/readline/readline.c
+       - rl_initialize_everything: add call to _rl_parse_colors to parse
+         color values out of $LS_COLORS.  May have to add to rl_initialize
+         to make more dynamic if LS_COLORS changes (which doesn't happen
+         very often, if at all)
+
+lib/readline/rlprivate.h
+       - _rl_colored_stats: new extern declaration
+
+lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
+       - colored-stats: document new bindable readline variable
+
+lib/readline/colors.c
+       - _rl_print_color_indicator: call rl_filename_stat_hook before calling
+         lstat/stat so we can get color indicators for stuff like
+         $HOME/Applications
+
+lib/readline/complete.c
+       - stat_char: call rl_filename_stat_hook before calling lstat/stat
+
+findcmd.[ch],execute_cmd.c
+       - search_for_command: now takes a second `flags' argument; changed
+         header function prototype and callers
+       - search_for_command: if (flags & 1), put the command found in $PATH
+         into the command hash table (previous default behavior)
+
+execute_cmd.c
+       - is_dirname: call search_for_command with flags argument of 0 so it
+         doesn't try to put something in the command hash table
+
+bashline.c
+       - bash_command_name_stat_hook: a hook function for readline's
+         filename_stat_hook that does $PATH searching the same way that
+         execute_cmd.c:execute_disk_command() does it, and rewrites the
+         passed filename if found.  Does not put names into command hash
+         table.  This allows command name completion to take advantage
+         of `visible-stats' and `colored-stats' settings.
+       - executable_completion: new function, calls the directory completion
+         hook to expand the filename before calling executable_file or
+         executable_or_directory; change command_word_completion_function to
+         call executable_completion.  This allows $HOME/bin/[TAB] to do
+         command completion and display alternatives
+
+                                  1/17
+                                  ----
+pcomplete.c
+       - gen_command_matches: now takes a new second argument: the command
+         name as deciphered by the programmable completion code and used
+         to look up the compspec; changed callers (gen_compspec_completions)
+       - gen_shell_function_matches: now takes a new second argument: the
+         command that originally caused the completion function to be
+         invoked; changed callers (gen_compspec_completions))
+       - build_arg_list: now takes a new second argument: the command name
+         corresponding to the current compspec; changed callers
+         (gen_command_matches, gen_shell_function_matches)
+       - build_arg_list: now uses `cmd' argument to create $1 passed to
+         invoked command or shell function
+       - gen_compspec_completions: if we skipped a null command at the
+         beginning of the line (e.g., for completing `>'), add a new word for
+         it at the beginning of the word list and increment nw and cw
+         appropriately.  This is all a partial fix for the shortcoming
+         pointed out by Sung Pae <sungpae@gmail.com>
+
+                                  1/18
+                                  ----
+
+{configure,config.h}.in
+       - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
+         define HAVE_DECL_AUDIT_USER_TTY if both are found
+
+lib/readline/rlconf.h
+       - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel
+         tty auditing system if it's available and enabled
+
+lib/readline/util.c
+       - _rl_audit_tty: new function, send a string to the kernel tty audit
+         system
+
+lib/readline/rlprivate.h
+       - _rl_audit_tty: new extern declaration
+
+lib/readline/readline.c
+       - readline: call _rl_audit_tty with line to be returned before returning
+         it if the Linux tty audit system is available and it's been enabled
+         in rlconf.h  Original patch from Miroslav Trmac; recent request
+         from Miroslav Lichvar <mlichvar@redhat.com>
+
+                                  1/21
+                                  ----
+
+lib/readline/readline.c:
+       - _rl_dispatch_subseq: add an inter-character timeout for multi-char
+         key sequences.  Suggested by <rogerx.oss@gmail.com>.  Still needs
+         work to make a user-settable variable
+
+parse.y
+       - shell_getc: make code that uses the pop_alias dependent on ALIAS
+         define
+
+variables.h
+       - sv_tz: extern define should only depend on HAVE_TZSET
+
+expr.c
+       - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
+         move assignment to `ind' inside define
+       - expr_bind_array_element: declaration and uses need to be #ifdef
+         ARRAY_VARS
+
+arrayfunc.h
+       - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
+         defined; used in subst.c unconditionally
+
+sig.h
+       - make the signal blocking functions not dependent on JOB_CONTROL
+
+sig.c
+       - sigprocmask: make the replacement definition not dependent on
+         JOB_CONTROL
+
+trap.c
+       - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
+         HAVE_POSIX_SIGNALS and BSD signals
+
+                                  1/24
+                                  ----
+
+print_cmd.c
+       - print_redirection_list: change the conditions under which
+         r_duplicating_output_word is mapped to r_err_and_out to more or
+         less match those used in redir.c.  Fixes bug pointed out by
+         Dan Douglas <ormaaj@gmail.com>
+
+
+                                  1/29
+                                  ----
+lib/readline/signals.c
+       - _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies
+         unless SIGWINCH is defined.  Fixes bug reported by Pierre Muller
+         <pierre.muller@ics-cnrs.unistra.fr>
+
+doc/{bash.1,bashref.texi}
+       - small modifications to the introduction to the REDIRECTION section
+         to describe how redirections can modify file handles
+       - small modification to the section describing base#n to make it
+         clearer that n can be denoted using non-numerics.  From a posting
+         by Linda Walsh <bash@tlinx.org>
+
+                                   2/2
+                                   ---
+builtins/printf.def
+       - printf_builtin: make sure vbuf is intialized and non-null when -v
+         is supplied, since other parts of the code assume that it's not
+         null (e.g., bind_printf_variable()).  Fixes bug reported by Jim
+         Avera <james_avera@yahoo.com>
+
+                                   2/4
+                                   ---
+lib/readline/undo.c
+       - _rl_free_undo_list: new function, old body of rl_free_undo_list,
+         frees undo entries in UNDO_LIST * passed as argument
+       - rl_free_undo_list: call _rl_free_undo_list
+
+lib/readline/rlprivate.h
+       - _rl_free_undo_list: new extern declaration
+       - _rl_keyseq_timeout: new extern declaration (see below)
+
+lib/readline/misc.c
+       - rl_clear_history: new function.  Clears the history list and frees
+         all associated data similar to history.c:clear_history(), but
+         takes rl_undo_list into account and frees and UNDO_LISTs saved as
+         `data' members of a history list entry
+
+lib/readline/doc/rltech.texi
+       - rl_clear_history: documented
+
+lib/readline/readline.c
+       - _rl_keyseq_timeout: new variable to hold intra-key timeout value
+         from 1/21 fix; specified in milliseconds.  Default value is 500
+       - _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key
+         timeout if it's greater than 0; no timeout if <= 0
+       - _rl_dispatch_subseq: don't check for queued keyboard input if we have
+         pushed or pending input, or if we're reading input from a macro
+
+lib/readline/bind.c
+       - keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout
+       - string_varlist: add keyseq-timeout
+       - sv_seqtimeout: new function to modify value of _rl_keyseq_timeout;
+         clamps negative values at 0 for now
+       - _rl_get_string_variable_value: return value for keyseq-timeout
+
+doc/bash.1,lib/readline/doc/{rluser.texi,readline.3}
+       - keyseq-timeout: documented
+
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: modification to fix from 7/18 to not use
+         cxt->keymap and cxt->okeymap, since by the time this code is
+         executed, they are equal.  Use `f' to check for rl_insert or
+         unbound func
+       - _rl_isearch_dispatch: if we're switching keymaps, not in
+         callback mode, and don't have pending or pushed input, use
+         _rl_input_queued to resolve a potentially ambiguous key sequence.
+         Suggested by Roger Zauner <rogerx.oss@gmail.com>
+       - _rl_isearch_dispatch: if we have changed keymaps and resolved to
+         an editing function (not self-insert), make sure we stuff the
+         right characters back onto the input after changing the keymap
+         back so the right editing function is executed after the search
+         is terminated.  Rest of fix for bug reported by Roger Zauner
+         <rogerx.oss@gmail.com>
+
+                                   2/5
+                                   ---
+builtins/gen-helpfiles.c
+       - new file: reads struct builtin and writes the long docs to files
+         in the `helpdirs' subdirectory.  The filename is given in the
+         previously-unused `handle' member of the struct builtin.  Links
+         with `tmpbuiltins.o', which is created by Makefile to have the
+         right long documentation.  When not cross-compiling, gets the
+         right #defines based on configuration options from config.h instead
+         of trying to parse conditional parts of def files.  Fixes
+         shortcoming pointed out by Andreas Schwab <schwab@linux-m68k.org>
+
+builtins/Makefile.in
+       - tmpbuiltins.c: new generated file, created to enable creation of
+         separate helpfiles based on correct #defines instead of trying to
+         parse conditional parts of def files
+       - gen-helpfiles: new program to generate helpfiles, links with
+         tmpbuiltins.o
+       - HELPFILES_TARGET: new target, substituted by configure to `helpdoc'
+         if separate helpfiles requested
+       - targets: new target, libbuiltins.a and $(HELPFILES_TARGET)
+       - CREATED_OBJECTS: new variable, holds created object files for
+         make clean; changed make clean to remove created objects
+       - helpdoc: changed to call gen-helpfiles instead of mkbuiltins
+
+Makefile.in
+       - when building libbuiltins.a, recursively call make with `targets'
+         argument to make sure separate helpfiles get built
+
+configure.in
+       - substitute `helpdoc' as value of HELPFILES_TARGET if
+         --enable-separate-helpfiles supplied as configure argument
+
+builtins/mkbuiltins.c
+       - `-nofunctions': new argument, causes mkbuiltins to not write value
+         for function implementing a particular builtin to struct builtin
+         and to write document file name to `handle' member of struct builtin
+       - no longer writes separate helpfiles; that is left to gen-helpfiles
+
+                                   2/8
+                                   ---
+subst.c
+       - make sure last_command_exit_value is set to a non-zero value before
+         any calls to report_error, since `-e' set will short-circuit
+         report_error.  Fixes bug reported by Ewan Mellor
+         <Ewan.Mellor@eu.citrix.com>
+
+variables.c
+       - make_local_array_variable: added second argument; if non-zero,
+         function will return an existing local associative array variable
+         instead of insisting on an indexed array
+
+variable.h,subst.c
+       - make_local_array_variable: changed prototype and caller
+
+builtins/declare.def
+       - declare_internal: add second arg to call to make_local_array_variable;
+         making_array_special, which indicates we're processing an
+         assignment like declare a[b]=c.  Fixes seg fault resulting from
+         a being an already-declared local associative array variable in a
+         function.  Ubuntu bash bug 928900.
+
+                                  2/14
+                                  ----
+
+execute_cmd.c
+       - execute_command_internal: if redirections into or out of a loop fail,
+         don't try to free ofifo_list unless saved_fifo is non-zero.  It's
+         only valid if saved_fifo is set
+
+                                  2/15
+                                  ----
+{arrayfunc,braces,variables}.c
+       - last_command_exit_value: make sure it's set before any calls to
+         report_error, since -e will cause that to exit the shell
+
+builtins/common.c
+       - get_job_by_name: call internal_error instead of report_error so this
+         doesn't exit the shell
+
+                                  2/18
+                                  ----
+builtins/evalstring.c
+       - parse_and_execute: make sure the file descriptor to be redirected to
+         is 1 before calling cat_file.  One fix for bug reported by Dan Douglas
+         <ormaaj@gmail.com>
+
+parse.y
+       - read_token_word: don't return NUMBER if a string of all digits
+         resolves to a number that overflows the bounds of an intmax_t.
+         Other fix for bug reported by Dan Douglas <ormaaj@gmail.com>
+
+                                  2/19
+                                  ----
+lib/sh/strtrans.c
+       - ansicstr: use 0x7f as the boundary for characters that translate
+         directly from ASCII to unicode (\u and \U escapes) instead of
+         UCHAR_MAX, since everything >= 0x80 requires more than one byte.
+         Bug and fix from John Kearney <dethrophes@web.de>
+
+builtins/printf.def
+       - tescape: ditto for printf \u and \U escape sequences
+
+                                  2/20
+                                  ----
+lib/sh/unicode.c
+       - u32toutf8: fix to handle encodings up to six bytes long correctly
+         (though technically UTF-8 only has characters up to 4 bytes long).
+         Report and fix from John Kearney <dethrophes@web.de>
+       - u32toutf8: first argument is now an unsigned 32-bit quantity,
+         changed callers (u32cconv) to pass c instead of wc
+       - u32reset: new function, resets local static state to uninitialized
+         (locale information, currently)
+
+locale.c
+       - call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
+         cached locale information used by u32cconv.  From a report from
+         John Kearney <dethrophes@web.de>
+
+                                  2/21
+                                  ----
+doc/{bash,builtins}.1
+       - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+lib/sh/unicode.c
+       - u32cconv: only assume you can directly call wctomb on the passed
+         value if __STDC_ISO_10646__ is defined and the value is <=
+         0x7fffffff
+       - stub_charset: return locale as default instead of "ASCII", let
+         rest of code decide what to do with it
+
+lib/readline/parens.c
+       - _rl_enable_paren_matching: make paren matching work in vi insert
+         mode.  Bug report from <derflob@derflob.de>
+
+                                  2/22
+                                  ----
+lib/sh/shquote.c
+       - sh_backslash_quote: quote tilde in places where it would be
+         expanded.  From a report from John Kearney <dethrophes@web.de>
+
+                                  2/23
+                                  ----
+execute_cmd.c
+       - execute_pipeline: wrap the discard_unwind_frame call in #ifdef
+         JOB_CONTROL, since the frame is only created if JOB_CONTROL is
+         defined.  Bug and fix from Doug Kehn <rdkehn@yahoo.com>
+
+                                  2/25
+                                  ----
+error.c
+       - report_error: make sure last_command_exit_value is non-zero before
+         we call exit_shell, since the exit trap may reference it.  Call
+         exit_shell with last_command_exit_value to allow exit statuses
+         other than 1
+
+unicode.c
+       - stub_charset: use local static buffer to hold charset, don't change
+         value returned by get_locale_var.  Based on idea and code from
+         John Kearney <dethrophes@web.de>
+       - u32toutf16: function to convert unsigned 32-bit value (unicode) to
+         UTF-16.  From John Kearney <dethrophes@web.de>
+       - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
+         is two bytes, send result to wcstombs, return if not encoding error.
+         From John Kearney <dethrophes@web.de>
+       - u32cconv: return UTF-8 conversion if iconv conversion to local
+         charset is unsupported
+
+                                   3/2
+                                   ---
+lib/readline/complete.c
+       - print_filename: if there is no directory hook, but there is a stat
+         hook, and we want to append a slash to directories, call the stat
+         hook before calling path_isdir on the expanded directory name.
+         Report and pointer to fix from Steve Rago <sar@nec-labs.com>
+
+                                   3/3
+                                   ---
+builtins/evalstring.c
+       - parse_and_execute: fix to change of 2/18: make sure the file
+         descriptor being redirected to is 0 before calling cat_file when
+         we see something like $(< file).  Real fix for bug reported by
+         Dan Douglas <ormaaj@gmail.com>
+
+subst.c
+       - parameter_brace_patsub: run the replacement string through quote
+         removal even if the expansion is within double quotes, because
+         the parser and string extract functions treat the quotes and
+         backslashes as special.  If they're treated as special, quote
+         removal should remove them (this is the Posix position and
+         compatible with ksh93).  THIS IS NOT BACKWARDS COMPATIBLE.
+
+                                   3/4
+                                   ---
+lib/readline/complete.c
+       - rl_menu_complete: fix to make show-all-if-ambiguous and
+         menu-complete-display-prefix work together if both are set.  Fix
+         from Sami Pietila <sami.pietila@gmail.com>
+
+                                   3/5
+                                   ---
+bashline.c
+       - dircomplete_expand_relpath: new variable, if non-zero, means that
+         `shopt -s direxpand' should expand relative pathnames.  Zero by
+         default, not user-settable yet
+       - bash_directory_completion_hook: 
diff --git a/CWRU/POSIX.NOTES.old b/CWRU/POSIX.NOTES.old
new file mode 100644 (file)
index 0000000..1707ab1
--- /dev/null
@@ -0,0 +1,82 @@
+Starting bash with the `--posix' command-line option or executing
+`set -o posix' while bash is running will cause bash to conform more
+closely to the Posix.2 standard by changing the behavior to match that
+specified by Posix.2 in areas where the bash default differs.
+
+The following list is what's changed when `posix mode' is in effect:
+
+1.  When a command in the hash table no longer exists, bash will re-search
+    $PATH to find the new location.  This is also available with
+    `shopt -s checkhash'.
+
+2.  The >& redirection does not redirect stdout and stderr.
+
+3.  The message printed by the job control code and builtins when a job
+    exits with a non-zero status is `Done(status)'.
+
+4.  Reserved words may not be aliased.
+
+5.  The Posix.2 PS1 and PS2 expansions of `!' -> history number and
+    `!!' -> `!' are enabled, and parameter expansion is performed on
+    the value regardless of the setting of the `promptvars' option.
+
+6.  Interactive comments are enabled by default.  (Note that bash has
+    them on by default anyway.)
+
+7.  The Posix.2 startup files are executed ($ENV) rather than the normal
+    bash files.
+
+8.  Tilde expansion is only performed on assignments preceding a command
+    name, rather than on all assignment statements on the line.
+
+9.  The default history file is ~/.sh_history (default value of $HISTFILE).
+
+10. The output of `kill -l' prints all the signal names on a single line,
+    separated by spaces.
+
+11. Non-interactive shells exit if `file' in `. file' is not found.
+
+12. Redirection operators do not perform pathname expansion on the word
+    in the redirection unless the shell is interactive
+
+13. Function names must be valid shell identifiers.  That is, they may not
+    contain characters other than letters, digits, and underscores, and
+    may not start with a digit.  Declaring a function with an illegal name
+    causes a fatal syntax error in non-interactive shells.
+
+14. Posix.2 `special' builtins are found before shell functions during command
+    lookup.
+
+15. If a Posix.2 special builtin returns an error status, a non-interactive
+    shell exits.  The fatal errors are those listed in the POSIX.2 standard,
+    and include things like passing incorrect options, redirection errors,
+    variable assignment errors for assignments preceding the command name,
+    and so on.
+
+16. The environment passed to executed commands is not sorted.  Neither is
+    the output of `set'.  This is not strictly Posix.2 behavior, but sh
+    does it this way.  Ksh does not.  It's not necessary to sort the
+    environment; no program should rely on it being sorted.
+
+17. If the `cd' builtin finds a directory to change to using $CDPATH, the
+    value it assigns to $PWD does not contain any symbolic links, as if
+    `cd -P' had been executed.
+
+18. A non-interactive shell exits with an error status if a variable
+    assignment error occurs when no command name follows the assignment
+    statements.  A variable assignment error occurs, for example, when
+    trying to assign a value to a read-only variable.
+
+19. A non-interactive shell exits with an error status if the iteration
+    variable in a for statement or the selection variable in a select
+    statement is a read-only variable.
+
+20. Process substitution is not available.
+
+21. Assignment statements preceding POSIX.2 `special' builtins persist in
+    the shell environment after the builtin completes.
+
+There is other Posix.2 behavior that bash does not implement.  Specifically:
+
+1.  Assignment statements affect the execution environment of all builtins,
+    not just special ones.
deleted file mode 100644 (file)
index 17e73d14190540b6aebcd355e13dd3493b8f7164..0000000000000000000000000000000000000000
+++ /dev/null
-                                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 Kratochvil <jan.kratochvil@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
-         Kratochvil <jan.kratochvil@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 Pietila
-         <sami.pietila@gmail.com>
-
-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]
-
-                                  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)
-
-                                  10/19
-                                  -----
-builtins/evalfile.c
-       - even if the `check binary' flag is not passed to _evalfile, return an
-         error after reading 128 null characters if called by `source', on
-         the assumption that it's probably a binary file.  [This will be in
-         bash-4.1-beta]
-
-                                  10/24
-                                  -----
-[bash-4.1-alpha released]
-
-bashline.c
-       - don't call command_substitution_completion_function if we're
-         completing a substring delimited by a single quote.  Fixes bug
-         reported by bash-bugs@atu.cjb.net
-
-lib/readline/complete.c
-       - make sure _rl_skip_completed_text defaults to 0, as the
-         documentation states (incorrect in bash-4.1-alpha)
-       - in insert_match, skip over a close quote in the replacement text if
-         the character at point when completion is invoked is a single
-         quote.  Fixes complaint from bash-bugs@atu.cjb.net
-
-                                  10/26
-                                  -----
-shell.c
-       - in main, make sure "$EMACS" is non-null before calling strstr on its
-         value.  Fixes Red Hat bug 530911 submitted by Mitchell Berger
-
-builtins/mapfile.def
-       - don't save callback commands in shell history.  Suggested by
-         Jan Schampera <jan.schampera@web.de>
-
-mailcheck.c
-       - in file_mod_date_changed, make sure the modification time is later
-         than the saved modification date, not just that it's not equal.
-         Fix from Evgeniy Dushistov <dushistov@mail.ru>
-       - in file_access_date_changed, make sure the access time is later
-         than the saved access time, not just that it's not equal
-
-                                  10/27
-                                  -----
-builtins/shopt.def
-       - added new `compat40' compatibility variable, with associated changes
-         to shell_compatibility_level(), since the default compatibility level
-         is now 41
-
-test.c
-       - make the < and > operators to [[ use strcoll() only if the shell
-         compatibility level is greater than 40 (it is 41 by default in
-         bash-4.1)
-
-                                  10/28
-                                  -----
-support/shobj-conf
-       - decrease the default version of FreeBSD that creates shared libraries
-         to 4.x.  Advice from Peter Jeremy <peterjeremy@acm.org>
-
-                                  11/2
-                                  ----
-parse.y
-       - change parse_comsub to free `heredelim' and set it to 0 whenever the
-         comsub scanner finds the end of a here document.  Really need to
-         implement a stack of here doc delimiters like in the parser (can we
-         use redir_stack here, too?)
-       - fix parse_comsub to not attempt to read another here doc delimiter
-         after seeing a shell break character (that is not newline) if we
-         already have one.  Fixes Debian bash bug #553485, submitted by
-         Samuel Hym <samuel.hym@gmail.com>
-
-                                  11/3
-                                  ----
-variables.c
-       - fix bind_variable_internal to call a variable's dynamic 'set function'
-         with the right arguments depending on whether it's an associative
-         array, an indexed array, or a scalar.  Fixes Ubuntu bug #471504
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/471504 reported
-         by AJ Slater <aj.slater@gmail.com>
-
-[bash-4.1-beta frozen]
-
-                                  11/11
-                                  -----
-builtins/printf.def
-       - in getintmax(), in the case of a conversion error, return the partial
-         value accumulated so far, which is suppose to be what
-         strtoimax/strtoll/strtol returns
-
-                                  11/17
-                                  -----
-[bash-4.1-beta released]
-
-                                  11/18
-                                  -----
-builtins/{common.h,shopt.def},shell.c
-       - changed shopt variable "set functions" to take the option name as
-         the first argument; changed function prototypes and callers
-
-builtins/shopt.def
-       - change set_compatibility_level() to turn off other compatNN options
-         when one is set -- enforce mutual exclusivity.  Fixes problem noted
-         by Jan Schampera <jan.schampera@web.de>
-
-                                  11/19
-                                  -----
-lib/readline/rltty.c
-       - make sure prepare_terminal_settings() tests for the presence of
-         ECHOCTL before using it.  Fixes bug reported by Joachim Schmitz
-         <schmitz@hp.com>
-
-config-top.h
-       - new WORDEXP_OPTION define (off by default)
-
-shell.c
-       - don't include the --wordexp option or the supporting function
-         (run_wordexp) if WORDEXP_OPTION is not defined.  Suggested by
-         Aharon Robbins <arnold@skeeve.com>
-
-execute_cmd.c
-       - in execute_cond_node, turn on comsub_ignore_return if the flags
-         indicate we're ignoring the return value before calling
-         cond_expand_word.  Fixes bug reported by Anirban Sinha
-         <asinha@zeugmasystems.com>
-
-                                  11/20
-                                  -----
-lib/sh/snprintf.c,builtins/printf.def
-       - change check for HAVE_ASPRINTF and HAVE_SNPRINTF to check if value
-         is 1 or 0 rather than whether they are defined or not.  This allows
-         a value of 0 to enable function replacement
-
-configure.in,aclocal.m4
-       - new autoconf macro, BASH_FUNC_SNPRINTF, checks for snprintf present
-         and working as C99 specifies with a zero length argument.  Idea
-         from Greg Wooledge <wooledg@eeg.ccf.org>
-       - new macro BASH_FUNC_VSNPRINTF, does same thing for vsnprintf
-
-                                  11/25
-                                  -----
-subst.c
-       - in command_substitute, only tell parse_and_execute to reset the line
-         number in an interactive shell if sourcelevel == 0 -- we'll use the
-         line numbers from the sourced file
-
-execute_cmd.c
-       - in execute_simple_command, only subtract function_line_number from
-         line_number if sourcelevel == 0.  If sourcing, we'll use the line
-         numbers from the sourced file.  Fixes bug reported by Hugo
-         Mildenberger <Hugo.Mildenberger@namir.de>
-
-builtins/declare.def
-       - in declare_internal, call bind_assoc_variable instead of
-         bind_array_variable in the case of declare -A foo=bar.  Fixes bug
-         reported by Bernd Eggink <monoped@sudrala.de>.
-
-                                  11/27
-                                  -----
-lib/readline/util.c
-       - change declaration for _rl_walphabetic to use prototype, assuming
-         that any system with multibyte characters has a compiler that can
-         handle prototypes.  Fix for AIX compilation problem reported by
-         Nick Hillman <nick_hillman@neverbox.com>
-
-                                  11/28
-                                  -----
-execute_cmd.c
-       - make funcnest file-scope static and unwind-protect its value in
-         execute_function, so it can be used as a real measure of function
-         call nesting
-
-general.c
-       - fix off-by-one error in trim_pathname that caused it to short-circuit 
-         when PROMPT_DIRTRIM == number of directories - 1.  Fixes bug
-         reported by Dennis Williamson <dennistwilliamson@gmail.com>
-
-                                  11/29
-                                  -----
-jobs.c
-       - when fork() returns -1/EAGAIN, call waitchld(-1, 0) so the shell can
-         reap any dead jobs before trying fork again.  Currently disabled
-         until bash-4.2 development starts
-
-lib/readline/complete.c
-       - when incrementing _rl_interrupt_immediately, make sure it's greater
-         than 0 before decrementing it.  In practice, not a problem, but
-         the right way to do it.  Suggested by Jan Kratochvil
-         <jan.kratochvil@redhat.com>
-
-lib/readline/signals.c
-       - make sure rl_signal_handler doesn't set rl_caught_signal if
-         _rl_interrupt_immediately is set, so RL_CHECK_SIGNALS doesn't
-         cause it to be processed twice.  Suggested by Jan Kratochvil
-         <jan.kratochvil@redhat.com>
-       - if the callback interface is being used, use the code path that
-         immediately handles signals.  This restores the readline-5.2
-         behavior.  Fixes GDB readline bug reported by Jan Kratochvil
-         <jan.kratochvil@redhat.com>
-
-                                  12/18
-                                  -----
-[bash-4.1-rc1 released]
-
-                                  12/22
-                                  -----
-config-top.h
-       - don't have SYSLOG_HISTORY enabled by default
-
-lib/sh/Makefile.in
-       - add explicit dependency on pathnames.h for parallel make support
-
-externs.h
-       - add extern declaration for xtrace_fdchk
-
-lib/sh/snprintf.c
-       - add local prototype declarations for isinf, isnan if we are providing
-         local definitions
-
-lib/sh/fnxform.c
-       - add extern declaration for get_locale_var if HAVE_LOCALE_CHARSET not
-         defined
-
-execute_cmd.c
-       - define NEED_FPURGE_DECL so we pick up any extern declaration for
-         fpurge (e.g., if the system doesn't provide it)
-
-builtins/shopt.def
-       - correct prototype and declaration for set_shellopts_after_change so
-         it's the correct type for shopt_set_func_t
-       - add new function shopt_enable_hostname_completion that is the correct
-         type for shopt_set_func_t; just calls enable_hostname_completion and
-         returns its result
-
-                                  12/26
-                                  -----
-doc/{bash.1,bashref.texi}
-       - add \E and \" escape sequences to ANSI-C quoting description.
-         Suggested by Aharon Robbins <arnold@skeeve.com>
-
-                                  12/29
-                                  -----
-doc/bash.1
-       - make sure shell and environment variable names are always in
-         `small caps' bold.  Suggested by Aharon Robbins <arnold@skeeve.com>
-
-                                  12/30
-                                  -----
-{execute_cmd.c,parse.y,Makefile}
-       - changes for building minimal configuration from Matthias Klose
-         <doko@debian.org>
-
-[bash-4.1 frozen]
-
-                                  12/31
-                                  -----
-[bash-4.1 released]
-
-                                1/5/2010
-                                --------
-doc/bashref.texi
-       - document compat32 and compat40 shopt options.  Omission pointed out
-         by Dilyan Palauzov <Dilyan.Palauzov@aegee.org>
-
-                                   1/6
-                                   ---
-lib/readline/complete.c
-       - use `convfn' (converted filename) instead of entry->d_name (filename
-         read from file system) when adding partial or full completions to
-         the command line.  Bug and fix from Guillaume Outters
-         <guillaume.outters@free.fr>
-
-                                   1/7
-                                   ---
-builtins/printf.def
-       - fix prototype in extern declaration for vsnprintf.  Fix for bug
-         reported by Yann Rouillard <yann@pleiades.fr.eu.org>
-
-                                   1/9
-                                   ---
-parse.y
-       - fix shell_getc to handle alias expansions containing quoted
-         newlines.  Problems in bash-4.1 with aliases containing quoted
-         newlines in the middle of and at the end of their expansion.
-         Fix for bug reported by Jonathan Claggett
-         <jonathan@claggett.org>
-       - change mk_alexpansion to not append a space to an alias
-         expansion ending with a newline.  Works with shell_getc
-
-                                  1/11
-                                  ----
-lib/glob/Makefile.in
-       - add dependencies on shell.h and pathnames.h.  From Mike Frysinger
-         <vapier@gentoo.org>
-
-                                  1/15
-                                  ----
-doc/{bash.1,{bashref,version}.texi},lib/readine/doc/rluser.texi
-       - some typo fixes from Aharon Robbins <arnold@skeeve.com>
-       - added descriptions of ENV, COPROC, and MAPFILE variables
-       - added descriptions of READLINE_LINE and READLINE_POINT
-
-                                  1/21
-                                  ----
-arrayfunc.c
-       - free `akey', the word-expanded index into the assoc array to avoid
-         mem leak in array_value_internal
-       - free index into assoc array in unbind_array_element
-       - change array_value_internal to take an additional argument: an
-         arrayind_t *.  If not null, an index to an indexed array is
-         returned there.  If not an indexed array or subscript is @ or
-         *, the value is unchanged
-
-                                  1/22
-                                  ----
-builtins/ulimit.def
-       - include <ulimit.h> if we found it during configure and we don't
-         have resources.  Fixes omission reported by Joachim Schmitz
-         <jojo@schmitz-digital.de>
-
-{configure,config.h}.in
-       - check for <ulimit.h>, define HAVE_ULIMIT_H if found
-
-lib/sh/oslib.c
-       - include <signal.h> for extern declaration for kill(2) if
-         HAVE_KILLPG not defined
-
-jobs.c
-       - if HAVE_KILLPG is not defined, add an extern prototype decl for
-         killpg()
-
-                                  1/24
-                                  ----
-print_cmd.c
-       - when printing here-string redirections, don't quote the string.  The
-         original quotes, if any, are still in place and don't need to be
-         requoted.  Fixes bug reported by Arfrever Frehtes Taifersar Arahesis
-         <arfrever.fta@gmail.com>
-
-subst.c
-       - fix array_length_reference to return 0 for variables that have not
-         been assigned a value.  Fixes bug reported by Mart Frauenlab
-         <mart.frauenlob@chello.at>, but is not backwards compatible
-
-arrayfunc.[ch]
-       - change array_value to take a new arrayind_t *indp parameter like
-         get_array_value; changed extern prototype declaration
-
-subst.c
-       - changed callers of array_value to add extra parameter
-
-expr.c
-       - change expr_streval to set a new `lvalue' parameter with information
-         about the string being evaluated: string, value, array index (if
-         any), variable evaluated (if set).
-       - saving and restoring current context now saves and restores the
-         current `lvalue'
-       - new function expr_bind_array_element, binds an array element with an
-         already-computed index to a specified value
-       - anywhere we set the current token to a string (STR), save and set
-         the current lvalue
-       - change calls to expr_bind_variable to check whether or not the
-         current lvalue indicates an indexed array was evaluated, and, if so,
-         call expr_bind_array_element using the already-computed index
-         (curlval.ind).  Fixes problems with dynamic variables (e.g., RANDOM)
-         in array indices with {pre,post}-{inc,dec}rement and op=
-         operators reported by <dennis@netstrata.com>
-
-                                  1/25
-                                  ----
-expr.c
-       - fix subexpr() to initialize curlval and lastlval when resetting all
-         of the rest of the expression-parsing variables
-
-                                  1/26
-                                  ----
-builtins/setattr.def
-       - in show_var_attributes, if the variable is not set (value == 0),
-         don't print `name=""', just print `name'.  Pointed out by
-         Mart Frauenlab <mart.frauenlob@chello.at>
-
-arrayfunc.c
-       - fix array_keys to return NULL if the variable is not set or
-         invisible.  Pointed out by Mart Frauenlab <mart.frauenlob@chello.at>
-       - change array_value_internal to return NULL for variable which has
-         not been set
-
-                                  1/30
-                                  ----
-bashline.c
-       - in command_word_completion_function, don't call glob_pattern_p
-         on hint -- use the already-computed `globpat'.  At this point,
-         hint might contain an already-dequoted globbing character, but
-         glob_matches will be NULL.  Fixes bug reported by
-         coyote@wariat.org.pl
-
-                                   2/5
-                                   ---
-builtins/exec.def
-       - set extern variable "exec_argv0" to the argument to -a
-
-shell.c
-       - if exec_argv0 is set, set dollar_vars[0] to it and set it to NULL,
-         assuming it was set by `exec -a'.  `exec -a foo' now sets $0 to
-         foo in an executable shell script without a leading `#!' (fixes
-         longstanding bug)
-
-                                   2/8
-                                   ---
-variables.c
-       - in push_func_var, if a variable is in a special builtin's temporary
-         environment and needs to be propagated because we're in Posix mode,
-         or we just need to propagate a variable, and we are executing in a
-         function without any local variables (so the function-local variable
-         context has no variable hash table), make sure we create a hash
-         table so we have a place to save the variable to be propagated.
-         Fixes bug reported by Crestez Dan Leonard <cdleonard@gmail.com>.
-
-                                  2/18
-                                  ----
-builtins/hash.def
-       - change add_hashed_command to remove the command being looked up from
-         the hash table before trying to add it.  That way, if it's not found,
-         there won't be anything remaining in the hash table
-
-                                  2/26
-                                  ----
-trap.[ch]
-       - move IMPOSSIBLE_TRAP_HANDLER define to trap.h so other parts of the
-         shell can use it
-
-parse.y
-       - change yy_readline_get to use IMPOSSIBLE_TRAP_HANDER instead of NULL
-         as a sentinel value for the SIGINT signal handler
-       - make sure yy_readline_get resets interrupt_immediately to 0 after
-         calling readline() using the same criteria it used to set it to 1
-         before the call -- make the code symmetric.  Suggested by Werner
-         Fink <werner@suse.de>
-
-builtins/read.def
-       - move assignment to `retval' before decrement of interrupt_immediately
-         and terminate_immediately and call to discard_unwind_frame
-       - move assign_vars label before decrement of interrupt_immediately and
-         terminate_immediately so those variables get reset appropriately
-         if read -t times out
-
-subst.h
-       - new define for Q_DOLBRACE, indicates double-quoted ${...}
-
-subst.c
-       - in parameter_brace_expand, before calling parameter_brace_expand_rhs,
-         add Q_DOLBRACE to `quoted' if we're within double quotes.
-       - in expand_word_internal, if the Q_DOLBRACE flag is set, remove a
-         backslash escaping a }.  Result of a Posix discussion on the
-         austin-group list
-
-                                  2/27
-                                  ----
-variables.c
-       - new functions to save and restore the PIPESTATUS variable's internal
-         array: save_pipestatus_array and restore_pipestatus_array
-
-variables.h
-       - new extern declarations for save_pipestatus_array and
-         restore_pipestatus_array
-
-trap.c
-       - in run_pending_traps, _run_trap_internal, and run_exit_trap, save
-         and restore $PIPESTATUS while traps are running.  Fixes bug
-         reported by Florian Bruhin <me@the-compiler.org>
-
-parse.y
-       - use save_pipestatus_array and restore_pipestatus_array in
-         save_parser_state and restore_parser_state, respectively, replacing
-         inline code
-
-lib/readline/histfile.c
-       - fix callers of history_filename to be prepared to cope with it
-         returning NULL
-       - change history_filename to return NULL if $HOME is not set, rather
-         than trying to write the history file in the current directory.
-         This is the default directory, used only if the application does
-         not specify a history filename.  Changed due to long-ago (unsent)
-         bug report from OpenBSD
-
-{Makefile,config.h,configure}.in,externs.h,lib/sh/{dprintf.c,Makefile.in}
-       - change fdprintf to dprintf, which is the Posix standard interface,
-         look for it with configure, replace it if not available
-
-                                  2/28
-                                  ----
-command.h
-       - add new subshell flag, SUBSHELL_RESETTRAP.  Indicates to the trap
-         builtin that the shell is executing a command substitution and
-         should free the trap strings we left unfreed by reset_signal_handlers()
-
-trap.c
-       - free_trap_string() and free_trap_strings() are now compiled in
-
-builtins/trap.def
-       - if changing a signal disposition and the SUBSHELL_RESETTRAP flag is
-         set in subshell_environment, free the trap strings left unfreed by
-         reset_signal_handlers
-
-subst.c
-       - in command_substitute, set the SUBSHELL_RESETTRAP flag.  This change
-         is for Austin Group Posix interpretation 53
-         (http://austingroupbugs.net/view.php?id=53)
-
-                                   3/7
-                                   ---
-lib/sh/{Makefile.in,strchrnul.c},Makefile.in
-       - implementation of strchrnul, from gnulib
-
-configure.in,config.h.in
-       - look for strchrnul and compile in version in lib/sh/strchrnul.c if
-         not available
-       - look for mbsnrtowcs and define HAVE_MBSNRTOWCS if available
-
-lib/sh/xmbsrtowcs.c
-       - new function, xdupmbstowcs2, fast version of xdupmbstowcs used when
-         mbsnrtowcs is available and the indices are not required.  Called
-         from xdupmbstowcs as required.  Initial patch from
-         <0xe2.0x9a.0x9b@gmail.com>
-
-                                  3/22
-                                  ----
-print_cmd.c
-       - call print_deferred_heredocs virtually every time a recursive call
-         to make_command_string_internal is made so here documents get
-         printed correctly when they are attached to commands inside compound
-         commands such as for and while.  Fixes bug reported by Mike
-         Frysinger <vapier@gentoo.org>
-
-                                  3/25
-                                  ----
-builtins/printf.def
-       - fix have_precision case in PF macro to call printf with precision
-         instead of fieldwidth argument.  Fixes bug reported by Rob Robason
-         <rob@robason.net>
-
-                                  3/26
-                                  ----
-trap.[ch]
-       - new function, signal_is_hard_ignored, returns true if the shell
-         inherited SIG_IGN as a signal's disposition
-       - new function, set_original_signal (sig, handler), provides interface
-         for rest of shell to set original_signals[sig] = handler
-
-execute_cmd.c
-       - execute_disk_command needs to call reset_terminating_signals in the
-         child process before resetting traps with restore_original_signals
-
-builtins/trap.def
-       - call initialize_terminating_signals before calling display_traps for
-         trap -p or trap without any other arguments.  Possible future use
-
-lib/readline/complete.c
-       - rl_filename_completion_function needs to call
-         rl_filename_dequoting_function with `dirname' (which has already
-         been tilde-expanded) instead of `users_dirname', because it calls
-         opendir with `dirname'.  Fixes bug reported by Stefan H. Holek 
-         <stefan@jarn.com>
-
-                                  3/27
-                                  ----
-sig.c
-       - experimental change to set_signal_handler: when setting the SIGCHLD
-         handler, set the SA_RESTART flag so that interruptible system calls
-         get restarted after a child dies.  Fixes bug reported by Tomas
-         Trnka <tomastrnka@gmx.com>, but needs further evaluation
-
-lib/sh/eaccess.c
-       - eaccess(2) apparently does only half the job: it does not check that
-         the permission bits on a file actually allow, for instance, execution.
-         Need to augment with a call to sh_stataccess if eaccess returns
-         success on FreeBSD.  Fixes FreeBSD problem reported by Johan Hattne
-         <johan.hattne@utsouthwestern.edu>
-
-                                  3/28
-                                  ----
-parse.y,bashline.c,externs.h
-       - history_delimiting_chars now takes a const char * as an argument:
-         the line being added to the history.  Changed callers
-
-parse.y
-       - bash_add_history should not add a semicolon separator if the current
-         history entry already ends in a newline.  It can introduce syntax
-         errors (e.g., when it results in a null command before a close brace).
-         Fixes bug reported by Andreas Schwab <schwab@linux-m68k.org>
-
-parse.y
-       - history_delimiting_chars needs to return a newline instead of a
-         semicolon if it thinks the current line starts a here document
-         (if it contains `<<').  Also keeps track of the fact with a new
-         static variable, LAST_WAS_HEREDOC, so it can return the right
-         sequence of newlines later for the here-document body.  Fixes bug
-         reported by Andreas Schwab <schwab@linux-m68k.org>
-
-                                  3/29
-                                  ----
-lib/sh/eaccess.c
-       - if the system has faccessat, sh_eaccess will now use it in
-         preference to all other options
-
-                                  3/30
-                                  ----
-subst.h
-       - new string_extract and extract_dollar_brace_string flag value:
-         SX_POSIXEXP, set if the shell is expanding one of the new Posix
-         pattern removal word expansions
-
-parser.h
-       - new definitions for "word expansion state", shared between parse.y
-         and subst.c
-
-subst.c
-       - include parser.h
-
-                                   4/9
-                                   ---
-builtins/declare.def
-       - make sure declare_internal calls bind_assoc_variable with newly-
-         allocated memory for the key argument when using an implicit key
-         of "0".  Bug report and fix from Andreas Schwab
-         <schwab@linux-m68k.org>
-
-                                  4/14
-                                  ----
-lib/readline/input.c
-       - restructure the rl_event_hook loop in rl_read_key to call the
-         event hook after rl_gather_tyi() returns and rl_get_char has
-         a chance to collect the input.  Previous behavior was to call
-         the event hook before attempting to read input.  Problem
-         reported by Anant Shankar <anantshankar17@gmail.com>
-
-                                  4/15
-                                  ----
-builtins/fc.def
-       - fc_builtin needs to check whether the calculation of last_hist
-         leaves hlist[last_hist] == 0, and keep decrementing it until it
-         leaves a non-null history entry or goes < 0.  Currently only
-         does this if saved_command_line_count > 0, indicating we're
-         trying to edit a multi-line command.  Fixes bug reported by
-         Roman Rakus <rrakus@redhat.com>
-
-                                  4/17
-                                  ----
-subst.c
-       - new process substitution helper functions:
-               unlink_fifo - closes a single FD or FIFO
-               num_fifos - returns number of open FDs or active FIFOs
-               copy_fifo_list - returns a bitmap of open FDs or active FIFOs
-                 by index into appropriate list (dev_fd_list or fifo_list)
-               close_new_fifos - take a bitmap saved by copy_fifo_list and
-                 call unlink_fifo on any FD or FIFO open at the time of the
-                 call that is not marked as active in list
-
-execute_cmd.c
-       - execute_builtin_or_function: use new framework to close process
-         substitution FDs or FIFOs created by a shell builtin or shell
-         function.  Fixes bug reported by Charles Duffy <charles@dyfis.net>
-
-doc/{bash.1,bashref.texi}
-       - document 'C and "C constants for printf builtin
-
-                                  4/22
-                                  ----
-lib/readline/complete.c
-       - new function to return screenwidth for use when displaying possible
-         matches: complete_get_screenwidth; changed uses of _rl_screenwidth
-         to use complete_get_screenwidth().
-       - change complete_get_screenwidth to query (readline-private)
-         _rl_completion_colums, $COLUMNS, then _rl_screenwidth in that order
-       - change rl_display_match_list to deal with limit < 0 (which implies
-         that cols == 0) when _rl_screenwidth > 0
-
-lib/readline/bind.c
-       - new bindable variable: completion-display-width, controls the
-         number of columns used when displaying completions with new
-         sv_compwidth function to call when value is set or unset
-
-lib/readline/doc/{readline.3,rltech.texi}
-       - documented completion-display-width variable
-
-                                  4/23
-                                  ----
-execute_cmd.c
-       - change execute_in_subshell to reset trap handlers without freeing
-         the trap strings and set SUBSHELL_RESETTRAP.  In line with Austin
-         Group interp #53 (trap in a subshell).
-       - ditto for execute_simple_command where it can be determined that
-         the shell is going to run a builtin or function in a subshell
-
-trap.c
-       - new function, get_all_original_signals, retrieves the original
-         signal disposition for all signals
-
-trap.h
-       - extern declaration for get_all_original_signals
-
-builtins/trap.def
-       - change showtrap to display signals that are "hard ignored" as
-         trap commands to ignore them, even though that trap command would
-         be a no-op.  Partial fix for feature request from Siddhesh
-         Poyarekar <siddhesh.poyarekar@gmail.com>
-       - change trap_builtin to call get_all_original_signals before displaying
-         traps.  This will show inherited ignored signals.  Rest of feature
-         request from Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
-
-lib/readline/histexpand.c
-       - fix history_tokenize_word so that it understands $(...) and the
-          <(...) and >(...) expansions as a single word
-       - change history_tokenize_word so that it understands extended shell
-         globbing patterns as a single word.  Code is very similar to
-         $(...) code above.  Bug reported by Rajeev V. Pillai
-         <rajeevvp@gmail.com>
-
-                                  4/24
-                                  ----
-lib/readline/vi_mode.c
-       - add checks to rl_vi_char_search to make sure we've already done a
-         search if the command is `;' or `,', and return immediately if we
-         have not.  Fixes bug reported by Eric Ho <ericmho@shaw.ca>
-
-lib/readline/text.c
-       - make sure `dir' is in the valid range before searching in
-         _rl_char_search_internal.  Range checks in the code depend on it
-         being non-zero
-
-                                   5/3
-                                   ---
-lib/readline/complete.c
-       - in rl_complete_internal, if show-all-if-ambiguous or
-         show-all-if-unmodified are set (what_to_do == '!' or '@',
-         respectively), and the common match prefix is shorter than the
-         text being completed, inhibit inserting the match.
-         The guess is that replacing text with a shorter match will not
-         be wanted
-
-                                  5/20
-                                  ----
-lib/sh/unicode.c
-       - new file, with unicode character conversion-related code.  Will be
-         used to implement \u and \U escapes where appropriate, and for
-         other unicode-related functions in the future
-
-                                  5/21
-                                  ----
-builtins/printf.def
-       - add code to handle \u and \U escapes in format strings and arguments
-         processed by the %b format specifier
-
-lib/sh/strtrans.c
-       - add code to handle \u and \U escapes as unicode characters, works for
-         both `echo -e' and $'...'
-
-doc/{bash.1,bashref.texi}
-       - document new \u and \U escape sequences for $'...' and echo (printf
-         defers to the system's man page or Posix)
-
-                                  5/24
-                                  ----
-execute_cmd.c
-       - change execute_disk_command to return a status, instead of just
-         leaving it in `last_command_exit_value', since the parent's return
-         value is sometimes used (e.g., when a restricted shell refuses to
-         run a command with a `/').  Fixes bug reported by David Pitt
-         <David.Pitt@anz.com>
-
-                                  5/25
-                                  ----
-bashline.c
-       - change bash completion functions to save and restore the value of
-         rl_ignore_some_completions_function, and set it to the bash default
-         of filename_completion_ignore where appropriate.  Fixes bug
-         reported by Henning Bekel <h.bekel@googlemail.com>
-
-variables.c
-       - new convenience function: find_global_variable (name).  Looks for
-         NAME in the global variables table, skipping any local and
-         temporary environment variables
-
-builtins/declare.def
-       - add new -g option to declare/typeset/local, forces variables to be
-         created or modified at the global scope when executing inside a
-         shell function.  Requested by many, most recently by
-         konsolebox@gmail.com
-
-                                  5/27
-                                  ----
-test.c
-       - added new `-v var' unary test operator; returns TRUE if var is set
-         (i.e., has been assigned a value).  Works in both test builtin and
-         [[ conditional command
-
-doc/{bash.1,bashref.texi}
-       - documented new `-v var' unary conditional operator
-
-tests/test.tests
-       - added tests for new -v var operator
-
-builtins/kill.def
-       - change kill builtin so -PID (pgrp specification) following a
-         -s sig or -n sig option is not interpreted as a signal specification.
-         Fixes bug reported by Roman Rakus <rrakus@redhat.com>
-
-builtins/evalstring.c
-       - in parse_and_execute, if parse_command() returns non-zero,
-         indicating a parse error, exit the shell if the conditions require
-         a posix-mode non-interactive shell to abort (parse error in a `.'
-         script or eval string).  Bash-4.1 only printed a warning.  This is
-         from Austin Group interp 114
-
-doc/bashref.texi
-       - add note to the posix mode section of the texinfo manual noting
-         the changed behavior for `.' and `eval'
-
-parse.y
-       - change time_command_acceptable to allow TIME token to appear after
-         BANG token (to allow `! time foo', which is supposed to be valid)
-       - change pipeline_command production to allow multiple instances of
-         `!' (which toggle inverting the return status) and `time' (which
-         have no effect)
-
-execute_cmd.c
-       - In posix mode, `time' without a following pipeline prints the
-         elapsed user, system, and real time for the shell and its
-         children since the shell was invoked.
-         It's like `times' but obeys the setting of TIMEFORMAT.  A future
-         revision of Posix will require this
-
-doc/{bashref.texi,bash.1}
-       - document new posix mode use of `time' 
-
-parse.y
-       - add production to pipeline_command that permits `!' by itself to
-         be equivalent to `false' (and, with the changes above, permits
-         `! !' to be roughly equivalent to `true').  A future revision of
-         Posix will require this
-
-                                  5/28
-                                  ----
-parse.y
-       - fix \W prompt expansion to use memmove instead of strcpy, since the
-         source and target strings overlap (though you think it wouldn't
-         matter, since the overlapping regions are never touched at the same
-         time).  Fixes bug reported by Stéphane Jourdoi
-         <sjourdois@gmail.com>
-
-parse.y
-       - Posix interp 217 states that $(( must be parsed first as an
-         arithmetic expansion, so avoid attempting to parse it as a nested
-         command substitution.  Fixes bug reported by several, most recently
-         <jwm@horde.net>
-
-subst.c
-       - change extract_delimited_string to process nested $( as a possible
-         command substitution, but only if already parsing an arithmetic
-         expansion.  Rest of fix for Posix interp 217
-       - change parameter_brace_expand_rhs to make the := expansion operator
-         perform quote removal and both assign the result to the variable and
-         return it as the result of the expansion, rather than assign the
-         value after quote removal but return the value before quote removal.
-         Posix interp 221
-       - introduce new internal quoting flag: Q_DOLBRACE.  Denotes a double-
-         quoted ${...} expansion.  In this case, Posix interp 221 requires
-         that a backslash quoting an embedded `}' be removed, even though it's
-         not one of the characters marked as special inside double quotes.
-         Set in parameter_brace_expand, used by expand_word_internal.
-
-parse.y
-       - introduce new parsing state, P_DOLBRACE, set when parsing a ${...}
-         expansion
-       - set a "dolbrace operator state" in parse_matched_pair to decide
-         whether the lexer is reading the param, op, or word in
-         ${paramOPword}.  Will be used to decide whether or not to treat
-         single quotes specially in a double-quoted "${...}
-
-                                  5/29
-                                  ----
-parse.y
-       - change parse_matched_pair so that a single quote appearing in a
-         double-quoted ${...} expansion is not special unless the expansion
-         operator is `#[#]' or `%[%]'.  Posix interp 221
-
-subst.c
-       - change string_extract_double_quoted so that a single quote appearing
-         in a double-quoted ${...} expansion is not special unless the
-         expansion operator is `#[#]' or `%[%]'.  Posix interp 221
-
-doc/bashref.texi
-       - document posix-mode effects of Posix interp 221
-       - add section describing GNU parallel as requested by Stallman
-
-lib/readline/complete.c
-       - broke code that compares filenames read from the file system (and
-         possibly converted) to words being completed out into a separate
-         function: complete_fncmp
-       - augment complete_fncmp to treat hyphen and underscore as equivalent
-         when comparing filenames if _rl_completion_case_map is set
-
-lib/readline/rlprivate.h
-       - new extern declaration for _rl_completion_case_map
-
-lib/readline/util.c
-       - change _rl_strnicmp to return the difference between the characters,
-         like strcasecmp, and not modify the pointers it is passed
-       - change _rl_stricmp to not modify the pointers it is passed
-
-lib/readline/bind.c
-       - new bindable variable, "completion-case-map", toggles value of
-         _rl_completion_case_map
-
-lib/readline/doc/{rluser.texi,readline.3}
-       - document new bindable readline variable "completion-case-map"
-
-execute_cmd.c
-       - change execute_function to reset funcnest and jump back to top level
-         if funcnest exceeds funcnest_max
-       - use funcnest_max as a max function nesting level, if set to numeric
-         value greater than 0 (defaults to 0, so inactive)
-
-variables.c
-       - new variable FUNCNEST, controls funcnest_max value if set to numeric
-         value > 0
-sig.c
-       - reset funcnest to 0 when throw_to_top_level occurs
-
-doc/{bash.1,bashref.texi}
-       - document FUNCNEST variable and its effect on function execution
-
-lib/readline/funmap.c
-       - add new bindable command names to avoid case-insensitive matching
-         problems between, for instance, vi-fword and vi-fWord:
-
-               vi-forward-word
-               vi-forward-bigword
-               vi-backward-word
-               vi-backward-bigword
-               vi-end-word
-               vi-end-bigword
-
-         Suggested in a different form in 2006 (!) by Servatius Brandt
-         <servatius.brandt@arcor.de>
-
-builtins/mapfile.def
-       - run_callback now takes a new third argument: curline, the line
-         currently being read and about to be assigned
-       - the callback function/command now takes an additional argument:
-         the line to be assigned to the array index.  Feature suggested by
-         Dennis Williamson <dennistwilliamson@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - document new additional `line' argument to mapfile callback
-
-                                  5/30
-                                  ----
-builtins/printf.def
-       - add new %(fmt)T format specifier, where FMT is a strftime format.
-         Argument is number of seconds since the epoch, with -1 meaning
-         current time (roughly date +%s) and -2 meaning shell start time
-         (roughly $SECONDS, unless it's been assigned a value or unset).
-         Fieldwidth and precision are preserved, strftime result is printed
-         as with %[-][[fieldwidth][.[precision]]]s
-
-doc/{bash.1,bashref.texi}
-       - document new %(datefmt)T printf format specifier and special
-         arguments
-
-builtins/hash.def
-       - don't permit programs with slashes to be entered into the hash table
-         at all, even with the -p option.  Inconsistency pointed out by
-         Jan Schampera <jan.schampera@web.de>
-
-builtins/shopt.def
-       - add `compat41' option in preparation for bash-4.2
-
-                                   6/6
-                                   ---
-lib/readline/vi_mode.c
-       - finish restructuring rl_vi_domove and the functions that call it so
-         it works in callback mode, including numeric arguments.  Requested
-         a long time ago by Bob Rossi 
-
-lib/readline/callback.c
-       - arrange to call appropriate callback when readline state indicates
-         RL_STATE_VIMOTION, so vi motion commands like `cw' and `d2w' are
-         handled in callback mode
-
-lib/sh/wcswidth.c
-       - replacement wcswidth implementation
-
-aclocal.m4
-       - add REPLACE_FUNCS(wcswidth) to BASH_CHECK_MULTIBYTE
-
-execute_cmd.c
-       - fix select_query and print_index_and_element to compute correct
-         display width of select list elements in presence of multibyte
-         characters.  Bug reported by Bernd Eggink <monoped@sudrala.de>
-
-builtins/cd.def
-       - add posix-mandated -e option; currently ignored in most circumstances
-
-doc/{bash.1,bashref.texi}
-       - document new `cd -e' option
-
-                                  6/12
-                                  ----
-arrayfunc.c
-       - change array_value_internal to treat negative subscripts to indexed
-         arrays, offset from array_max_index(x) + 1, so foo[-1] is the last
-         element of $foo
-
-subst.c
-       - Change verify_substring_values to allow negative length specifications
-         when using string variables or array members.  Negative lengths
-         mean to return characters from OFFSET until (${#var} - N) for
-         {var:offset:-N}.  Feature requested by Richard Neill
-         <rn214@hermes.cam.ac.uk>
-
-doc/{bash.1,bashref.texi}
-       - document new behavior of negative subscripts to indexed arrays
-       - document new behavior of negative LENGTH in substring expansion
-
-configure.in
-       - change version to bash-4.2-devel
-
-variables.c
-       - make sure initialize_shell_variables calls sv_xtracefd if
-         BASH_XTRACEFD is inherited in the shell environment.  Fixes but
-         reported by <jsunx1@bellsouth.net>
-
-                                  6/13
-                                  ----
-lib/readline/complete.c
-       - change get_y_or_n to always return 1 when in callback mode, so we
-         don't do a blocking read.  Have to wait until readline-7.0 to add
-         a state so we can use callbacks, since that will change public
-         interface
-
-                                  6/17
-                                  ----
-subst.c
-       - fix memory leak in parameter_brace_expand: when performing pattern
-         removal with parameter_brace_remove_pattern, make sure `name' is
-         freed.  Fixes bug reported by oyvindh@dhampir.no
-
-                                  6/23
-                                  ----
-{parse.y,subst.c}
-       - make the ${param//pat/rep}, ${param^pat}, and ${param,pat} expansions
-         require single quotes and double quotes to match when within double
-         quotes.  This way every expansion except the Posix ones behaves as
-         bash has always behaved
-
-subst.c
-       - change remove_upattern and remove_wpattern to return their first
-         argument if nothing matches, change callers to allocate memory
-         appropriately
-       - change remove_pattern to short-circuit and return copy of PARAM
-         if remove_wpattern returns its first argument (indicating no match)
-         rather than convert back to multibyte string, allocating new memory
-         twice and calling wcsrtombs
-
-                                  6/24
-                                  ----
-execute_cmd.c
-       - add missing initializers for sh_coproc to eliminate a compiler
-         warning.  Patch from Werner Fink <werner@suse.de>
-
-                                  6/27
-                                  ----
-parse.y
-       - add `TIMEIGN' token to handle `time -p -- ...'.  Pointed out by
-         Laszlo Ersek <lacos@caesar.elte.hu> on austin-group list
-
-                                  6/28
-                                  ----
-jobs.c
-       - treat a shell with (subshell_environment&SUBSHELL_PIPE) != 0 like
-         a command substitution in wait_for and act like we received a
-         SIGINT if a job we're waiting for dies of SIGINT.  Fixes bug
-         reported by Ilya Basin <basinilya@gmail.com>
-
-                                   7/2
-                                   ---
-jobs.c
-       - if fork() fails in make_child, try to reap some dead children before
-         retrying
-
-execute_cmd.c
-       - change execute_pipeline to run the last command of a non-asynchronous
-         pipeline in the current shell environment if the `lastpipe' shell
-         option is enabled and job control is not active.  Code from
-         Werner Fink <werner@suse.de>
-
-parse.y
-       - Posix says (issue 267) that time is not recognized as a keyword
-         if the next token begins with a `-'
-
-doc/{bash.1,bashref.texi}
-       - changed the descriptions of BASH_SOURCE, BASH_LINENO, and FUNCNAME
-         as proposed in Ubuntu bug 591677.
-       - document new `lastpipe' shell option that runs last command of a
-         pipeline in the current shell environment
-       - document new posix-mode behavior with `time -p'
-
-                                   7/5
-                                   ---
-aclocal.m4
-       - new autoconf test WEXITSTATUS_OFFSET, bit offset in status word
-         returned by wait() of the process's exit status
-
-jobs.[ch]
-       - change stop_pipeline to return the actual index of the job just
-         created and added to the jobs table, instead of the current job
-       - job_exit_status and job_exit_signal are now global functions, with
-         extern declarations in jobs.h
-       - append_process: new utility function for use by the lastpipe code,
-         takes info, creates a PROCESS from them, and adds it to the end of
-         the passed job id's pipeline.  lastpipe code uses it to add a dummy
-         process for the last command in the pipeline
-       - freeze_jobs_list: new utility function so rest of shell can freeze
-         the jobs list.  Used by the lastpipe code
-
-execute_cmd.c
-       - changes to lastpipe code to make `pipefail' option, $PIPESTATUS, and
-         $? work correctly.  Uses append_process and job_exit_status
-
-                                  7/10
-                                  ----
-subst.c
-       - when performing pattern substitution word expansions, a `&' in the
-         replacement string is replaced by the text matched by the pattern.
-         The `&' can be quoted with a backslash to inhibit the expansion.
-         CURRENTLY DISABLED
-
-                                  7/13
-                                  ----
-pcomplib.[ch]
-       - new member for struct compspec: lcommand.  for future use
-
-                                  7/15
-                                  ----
-parse.y
-       - fix problem in parse_comsub where extra space was added to here-doc
-         delimiter if the first word in the comsub contained a `/'.  Fixes
-         bug reported by Alex Khesin <alexk@google.com>
-
-                                  7/20
-                                  ----
-parse.y
-       - change reserved_word_acceptable to return success if the last two
-         tokens read were `function WORD'.  Allows function definitions like
-         function good [[ -x foo ]];.  Fixes bug reported by Linda Walsh
-         <bash@tlinx.org>
-
-doc/{bash.1,bashref.texi}
-       - change function definition meta-syntax to make it clearer, rather
-         than let the text note the optional portions
-
-                                  7/24
-                                  ----
-bashhist.c
-       - change bash_history_inhibit_expansion() to suppress history expansion
-         for $! parameter expansion.  Fixes debian bug #589745 submitted by
-         Frank Heckenbach <f.heckenbach@fh-soft.de>
-
-lib/readline/terminal.c
-       - change rl_resize_terminal to always fetch the new terminal size and
-         only force the redisplay if _rl_echoing_p is non-zero.  Fixes bug
-         reported by Balazs Kezes <rlblaster@gmail.com>
-
-                                  7/25
-                                  ----
-lib/readline/xfree.c
-       - new file, contains definition of xfree moved from xmalloc.c
-
-                                  7/28
-                                  ----
-variables.c
-       - check suspect return values from bind_variable before trying to use
-         the returned SHELL_VAR *.  Changes to: initialize_shell_variables,
-         bind_int_variable, FIND_OR_MAKE_VARIABLE.  Fixes bug reported by
-         Roman Rakus <rrakus@redhat.com>
-
-                                  7/31
-                                  ----
-lib/readline/rltty.c
-       - fix rl_prep_terminal and rl_deprep_terminal to use fileno(stdout)
-         if rl_instream is NULL.  Fixes bug reported by Otto Allmendinger
-         otto.allmendinger@googlemail.com
-
-                                   8/2
-                                   ---
-lib/sh/casemod.c
-       - if the passed string is NULL or empty, return it immediately.  Fixes
-         bug reported by Dennis Williamson <dennistwilliamson@gmail.com>
-
-subst.c
-       - fix pat_subst to cope with the passed string being NULL
-
-arrayfunc.h
-       - added flag values for array_value_internal and its callers; converted
-         array_value_internal `allow_all' parameter into a general flags word
-       - get_array_value now takes a flags value
-       - changed array_value internal to use *indp as an index to use if the
-         AV_USEIND flag is set, rather than recomputing it
-
-subst.c
-       - get_var_and_type takes two new parameters: a flags word and an index
-         that represents an already-computed index for an array reference
-         (just indexed arrays so far).  Index is used and passed to array_value
-         if flags includes AV_USEIND
-       - parameter_brace_expand_word takes a new argument: the already-
-         computed index; returns W_ARRAYIND if word expanded is being used
-         as an array index
-       - changed parameter_brace_casemod, parameter_brace_patsub,
-         parameter_brace_substring, parameter_brace_remove_pattern to take new
-         flags and index arguments from parameter_brace_expand_word.  They
-         pass the new parameters along to get_var_and_type to use an
-         already-computed array index if necessary.  Fixes bug where array
-         indexes are computed twice reported by Andrew Benton
-         <b3nton@gmail.com>
-
-doc/bash.1,lib/readline/doc/{history.3,hsuser.texi}
-       - modified description of history event designators to clarify that
-         all non-absolute event designators are relative to the current
-         position in the history list.  Question raised by Frank
-         Heckenbach <f.heckenbach@fh-soft.de> as debian bash bug 590012
-
-                                   8/5
-                                   ---
-subst.c
-       - remove code that does not add a quoted null when the input string
-         is partially quoted; subsequent word splitting may require it.
-         Fixes bug reported by Eric Blake <eblake@redhat.com>
-
-                                  8/12
-                                  ----
-lib/glob/gmisc.c
-       - move match_pattern_wchar and match_pattern_char to new file in
-         glob library
-       - new functions: wmatchlen(pat, max) and umatchlen(pat, max), computes
-         number of characters PAT will match.  Returns the number of chars
-         that will be matched or -1 if the match length is indeterminate
-         (i.e., contains a `*')
-
-subst.c
-       - use umatchlen/wmatchlen in match_upattern/match_wpattern to bound
-         the number of match attempts in large strings to (usually) one,
-         depending on match length.  Fixes performance problems with
-         pattern substitution in large strings noted by Yi Yan
-         <yiyan97@hotmail.com>.  Can be applied to remove_[uw]pattern also
-
-                                  8/13
-                                  ----
-bashhist.c
-       - in maybe_append_history, change check for history_lines_this_session
-         so that we append the lines to the file if it's equal to the value
-         returned by where_history().  This means that without this change,
-         the history won't be appended if all the lines in the history list
-         were added in the current session since the last time the history
-         file was read or written.  Fixes bug reported by Bruce Korb
-         <bruce.korb@gmail.com>
-
-shell.h,parse.y
-       - add prompt_string_pointer to the parser_state struct saved and
-         restored by {save,restore}_parser_state.  Fixes both bugs exposed
-         by bash_completion and completion of open backquotes reported by
-         Egmont Koblinger <egmont@gmail.com>
-
-subst.h
-       - new flag for skip_to_delim: SD_EXTGLOB.  Skip extended globbing
-         patterns while looking for ending delimiter
-
-subst.c
-       - when passed the SD_EXTGLOB flag, skip_to_delim skips over extended
-         globbing patterns (when extended_glob is set) while looking for a
-         character in the delimiter set
-
-pathexp.c
-       - split_ignorespec: new function to replace calls to extract_colon_unit
-         in setup_ignore_patterns.  uses skip_to_delim with the SD_EXTGLOB
-         flag to skip over extended globbing patterns in variables like
-         HISTIGNORE and GLOBIGNORE.  Fixes bug reported by Dimitar DIMITROV
-         <mitkofr@yahoo.fr> and Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                  8/28
-                                  ----
-lib/readline/rlprivate.h
-       - add members to search_cxt to save _rl_keymap
-       - new flag for isearch context: SF_CHGKMAP, set if we changed the
-         keymap while reading a character for the search string that
-         translated to a command
-
-lib/readline/isearch.c
-       - save current readline keymap in cxt->keymap and cxt->okeymap
-         in _rl_scxt_alloc
-       - in _rl_isearch_dispatch, only check for cxt->lastc as a member of
-         cxt->search_terminators if it's > 0 (i.e., not an isearch opcode)
-
-                                   9/3
-                                   ---
-support/signames.c
-       - add Solaris SIGJVM1 and SIGJVM2.  Update from Stefan Teleman
-         <stefan.teleman@oracle.com>
-
-shell.c
-       - instead of closing all fds 3-20 at shell startup, just set them to
-         be close-on-exec.  Report from Rainer Mülle <raimue@macports.org>
-
-lib/readline/isearch.c
-       - in _rl_isearch_dispatch, if the current character maps to ISKMAP,
-         move to the indicated keymap (using cxt->keymap) and go on to
-         read another character.  Fixes problem reported by Davor
-         Cubranic <cubranic@stat.ubc.ca>
-       - in _rl_isearch_dispatch, after translating key to possible opcode,
-         restore _rl_keymap from cxt->okeymap if necessary
-       - in _rl_isearch_dispatch, use key sequences that map to default
-         functions that ^G, ^W, and ^Y map to as equivalent to those chars
-
-lib/readline/complete.c
-       - new variable, _rl_menu_complete_prefix_first, zero by default
-       - change menu_complete to display common prefix (matches[0]) first
-         before cycling through rest of match list if
-         _rl_menu_complete_prefix_first is non-zero.  Suggested by Sami
-         Pietila <sami.pietila@gmail.com>
-
-lib/readline/bind.c
-       - new bindable readline variable, "menu-complete-display-prefix",
-         controls setting of _rl_menu_complete_prefix_first
-
-doc/{bash.1,bashref.texi},lib/readline/doc/{readline.3,rluser.texi}
-       - added description of menu-complete-display-prefix bindable
-         readline variable
-
-                                  9/17
-                                  ----
-configure.in
-       - remove AM_PATH_LISPDIR call since we don't use that bash debugger
-         any more.  Suggested by Mike Frysinger <vapier@gentoo.org>
-
-                                  10/6
-                                  ----
-findcmd.c
-       - change executable_file to set errno to EISDIR if the passed name
-         is a directory
-
-builtins/exec.def
-       - change exec_builtin to report appropriate error message if the
-         file argument is a directory.  Noted by Eric Blake <eblake@redhat.com>
-         in a message to austin-group
-
-builtins/source.def
-       - change source_builtin to make sure the shell exits if the file is
-         not found when in a non-interactive shell running in  posix mode
-         and source_searches_cwd == 0 (as posix mode makes it by default).
-         Pointed out in http://thread.gmane.org/gmane.comp.shells.dash/291/focus=392
-         by Jilles Tjoelker <jilles@stack.nl>
-
-execute_cmd.c
-       - set executing_command_builtin in execute_builtin if the builtin is
-         command_builtin.  Unwind-protected in execute_function_or_builtin
-         (like executing_builtin variable).  Available for rest of shell
-
-builtins/{source.def,evalfile.c}
-       - make sure that non-interactive posix mode shells exit if the file
-         argument to `.' is not found only if they are not being executed
-         by the command builtin (executing_command_builtin == 0).  This is
-         how `command' can cancel effects of special builtin exit properties
-         in the case of `dot file not found'
-
-                                  10/13
-                                  -----
-lib/sh/strtrans.c
-       - pass \c through unchanged if not escaping for `echo -e' and they are
-         the final two characters in the string
-
-                                  10/15
-                                  -----
-subst.c
-       - extract_dollar_brace_string: fix problem with single quotes
-         in unquoted ${...} for Posix compliance
-
-                                  10/16
-                                  -----
-builtins/exec.def
-       - catch return value from shell_execve; don't print duplicate error
-         message if return value is EX_NOTFOUND.  Make sure exit status
-         from exec is 127 if command is not found
-
-execute_cmd.c
-       - fix typo (`saved_redirects' should be `saved redirects') in
-         execute_function_or_builtin `command exec' case.  Typo caused
-         too much of the unwind-protect stack to be discarded
-       - in same execute_function_or_builtin case, don't discard the
-         `saved redirects' frame unconditionally; only discard it if
-         saved_redirects is non-null in the `command exec' case.  Fixes
-         sh -c 'command exec; exit 1' hanging bug uncovered by FreeBSD
-         sh test cases
-
-                                  10/18
-                                  -----
-subst.c
-       - when in posix mode, shell should not exit if a variable assignment
-         error (e.g., assigning to readonly variable) occurs preceding a
-         command that is not a special builtin.  Fixes bug uncovered by
-         FreeBSD sh test cases
-       - when in posix mode, the ${!?} and ${!#} expansions are not indirect
-         expansions, but posix word expansions involving the `!' variable
-
-parse.y
-       - fix parse_comsub so that it does not skip backslash-newline when
-         parsing a comment
-
-                                  10/19
-                                  -----
-subst.c
-       - fix parameter_brace_expand so that an attempt to use the % or #
-         expansions on an unset variable with -u set will cause a non-
-         interactive shell to abort.  Posix change
-       - fix parameter_brace_expand so that an attempt to use pattern
-         substitution or case modification expansions on an unset variable
-         with -u set will cause and unbound variable error and make a
-         non-interactive shell abort
-       - change parameter_brace_expand_length to return INTMAX_MIN if a
-         positional parameter is unset and -u is set
-       - if parameter_brace_expand_length returns INTMAX_MIN when -u is set,
-         treat it as an unbound variable error and make a non-interactive
-         shell abort.  Posix change
-       - change parameter_brace_expand_length to return INTMAX_MIN if an
-         implicit reference to array[0] is made ${#array} and array[0] is
-         not set when -u is set
-
-                                  10/20
-                                  -----
-builtins/cd.def
-       - Posix 2008 says that if no matching directories are found in $CDPATH,
-         use the directory name passed as an operand and go on.  Posix change
-
-doc/bashref.texi
-       - change Posix mode section with latest additions and removals
-
-                                  11/4
-                                  ----
-lib/readline/complete.c
-       - fix rl_menu_complete and rl_old_menu_complete to keep incrementing
-         match_list_index by match_list_size as long as it's < 0.  Fixes
-         bug reported by jeenuv@gmail.com
-
-braces.c
-       - make mkseq() take intmax_t arguments for sequence start and end
-         and make sure it's passed intmax_t values.  Fixes bug reported by
-         Pete Gregory <pg@bushlitt.org>
-
-sig.c
-       - if termsig_handler is called when terminate_immediately == 1,
-         assume we're being called as a signal handler and set
-         history_lines_this_session to 0 to inhibit history file being
-         written on shell exit.  Fixes long-standing bug most recently
-         observed by Andreas Schwab <schwab@linux-m68k.org>
-
-                                  11/5
-                                  ----
-redir.c
-       - add_undo_close_redirect now returns int, 0 on success, non-zero on
-         failure.  Currently always succeeds
-       - new macro REDIRECTION_ERROR to make do_redirection_internal return
-         value of errno
-       - change do_redirection_internal to call REDIRECTION_ERROR after
-         saving file descriptor and make do_redirection_internal return error
-         if add_undo_redirect or add_undo_close redirect fails.  This makes
-         failure to save a file descriptor a redirection error and the shell
-         behaves appropriately.  Fixes bug reported by Eric Blake
-         <eblake@redhat.com>
-
-bashline.c
-       - modify bash_forward_shellword to correctly handle quoted strings,
-         especially if point is in a quoted string when function is invoked.
-         Fixes bug reported by Daniel Colascione <dan.colascione@gmail.com>
-
-configure.in
-       - change version to 4.2-alpha
-
-                                  11/7
-                                  ----
-lib/readline/text.c
-       - in rl_insert, if we're not in the multibyte code path, don't try to
-         optimize and insert all of the available typeahead input if we're
-         reading input from a macro.  Fixes bug reported by Andre Majorel
-         <aym-ung@teaser.fr>
-
-lib/readline/text.c
-       - break out multibyte guts of rl_forward_char into a separate function
-         _rl_forward_char_internal that does nothing but calculate the new
-         value of point
-       - change rl_forward_char to call _rl_forward_char_internal instead of
-         having equivalent code inline
-
-lib/readline/rlprivate.h
-       - new extern declaration for _rl_forward_char_internal
-
-lib/readline/vi_mode.c
-       - change _rl_vi_append_forward to call _rl_forward_char_internal to
-         set rl_point, instead of calling rl_forward_char.  When at the end
-         of the line, rl_forward_char will ring the bell.  Fixes debian
-         bash bug 601042, reported by Alan J. Greenberger <alanjg@ptd.net>
-
-                                  11/14
-                                  -----
-subst.c
-       - fix match_upattern to use correct test to immediately break out of
-         loop (when potential match length is greater than number of chars
-         remaining in the string) in MATCH_ANY case
-
-                                  11/15
-                                  -----
-subst.c
-       - include "typemax.h" to make sure we have a definition of INTMAX_MIN
-
-                                  11/16
-                                  -----
-lib/sh/unicode.c
-       - make sure `localconv' isn't declared on machines without iconv
-       - add stub_charset for systems that don't have locale_charset: looks
-         up LC_CTYPE, returns everything after last `.', "UTF-8" if the
-         value is exactly "UTF-8", and "ASCII" otherwise
-
-                                  11/20
-                                  -----
-lib/readline/vi_mode.c
-       - in rl_domove_motion_callback, make sure to use m->key instead of
-         key, which is not initialized and should not be used.  Bug report
-         from Andreas Schwab <schwab@linux-m68k.org>
-       - in rl_vi_domove, make assignment to `m' explicit instead of
-         relying on evaluation order semantics, since the C standard leaves
-         them unspecified.  Bug report from Andreas Schwab
-         <schwab@linux-m68k.org>
-
-                                  11/21
-                                  -----
-lib/sh/shquote.c
-       - sh_single_quote and sh_double_quote now take a const char *
-         argument.  Fixes problem pointed out by Joachim Schmitz
-         <jojo@schmitz-digital.de>
-
-externs.h
-       - change extern declarations for sh_single_quote and sh_double_quote
-
-lib/sh/strchrnul.c
-       - make sure that return value is cast to (char *) if we're using a
-         part of the passed (const char *) argument.  Fixes problem pointed
-         out by Joachim Schmitz <jojo@schmitz-digital.de>
-
-lib/glob/gmisc.c
-       - fix a typo that mixed up defines for LPAREN and RPAREN.  Bug and
-         fix from Andreas Schwab <schwab@linux-m68k.org>
-       - use WLPAREN and WRPAREN in multibyte character environments
-       - fixed typos using L'cc' in a non-wide-char environment
-
-lib/readline/complete.c
-       - fix rl_filename_completion_function to dequote users_dirname if
-         there is a filename dequoting function (as well as dirname), since
-         users_dirname gets tacked back onto the beginning of the possible
-         completions and then requoted.  Bug reported by Andreas Schwab
-         <schwab@linux-m68k.org>
-
-                                  11/22
-                                  -----
-lib/readline/parens.c
-       - the `blink-matching-paren' variable should default to off
-
-                                  11/23
-                                  -----
-subst.h
-       - add extern declaration for close_new_fifos()
-
-lib/sh/fnxform.c
-       - fix curencoding to return the character past the `.', not a string
-         beginning with `.'
-
-lib/sh/unicode.c
-       - fix stub_charset to do the same cut-off at `@' as curencoding().
-         These two functions should be combined
-
-builtins/printf.def
-       - document new %(datefmt)T modifier in help text
-
-                                  11/24
-                                  -----
-parse.y
-       - fix `W' case in decode_prompt_string: memmove was copying one too
-         few bytes and missed the closing NUL.  Bug report from Tim Mooney
-         <Tim.Mooney@ndsu.edu>
-
-                                  11/26
-                                  -----
-subst.c
-       - in expand_word_internal, don't add quoted nulls to partially-
-         quoted strings if the word will not be subjected to word splitting
-         later (which will remove the quoted null).  Fixes bug reported by
-         Rocky Bernstein <rocky.bernstein@gmail.com>
-
-                                  11/28
-                                  -----
-subst.c
-       - change multibyte case of match_pattern to revert to match_upattern
-         if neither the pattern nor the string has any multibyte characters
-
-alias.c
-       - fix tests of backslash-escaped characters in skipquotes, skipws,
-         rd_token to check for backslash at EOS and not go past the end.
-         Fixes debian bug 603696 reported by Tim Small <tim@buttersideup.com>
-
-include/shmbchar.h
-       - new file, mbchar.h from gnulib minus the <stdbool.h> include
-
-lib/sh/shmbchar.c
-       - new file, mbchar.c from gnulib with additions
-       - moved mbstrlen from subst.c to here, changed initialization of mbs
-       - change mbstrlen to use is_basic to avoid calls to mbrlen for ASCII
-         chars; code hints from gnulib
-       - don't copy mbs and mbsbak if we're not calling mbrlen
-
-                                  11/29
-                                  -----
-lib/glob/smatch.c
-       - change xstrmatch to use internal_strmatch() if the pattern and
-         string don't have any multibyte characters
-
-                                  11/30
-                                  -----
-include/shmbutil.h
-       - change ADVANCE_CHAR and ADVANCE_CHAR_P macros to use is_basic and
-         only call mbrlen and copy state and state_bak if is_basic returns
-         false (non-ASCII).  Called all over the place.
-       - change rest of macros except BACKUP_CHAR and BACKUP_CHAR_P in the
-         same way
-
-                                  12/2
-                                  ----
-subst.c
-       - audit all calls to string_list and make sure caller can handle a
-         NULL return value.  Fixes bug reported by David Rochberg
-         <rochberg@google.com>
-
-general.h
-       - change sh_wassign_func_t to take an additional argument: an int
-         flags word
-
-subst.c
-       - change do_word_assignment to take an additional argument to match
-         wassign_func_t; change callers
-       - change call to (*assign_func) in expand_word_list_internal to match
-         new wassign_func_t prototype
-       - (*assign_func) passes 1 as additional arg if the simple command is
-         a builtin or function, in which case the assignment to the
-         temporary env should take effect
-
-variables.c
-       - change assign_in_env to take an additional argument to match
-         wassign_func_t; change callers
-       - move call to sv_ifs from dispose_temporary_env to
-         dispose_used_env_vars; we don't need to do it if called from
-         merge_temporary_env
-
-                                  12/3
-                                  ----
-variables.c
-       - change dispose_temporary_env to maintain a list (tempvar_list) of
-         variables that need to be handled specially.  If a variable that
-         gets freed by push_temp_var or propagate_temp_var is one of the
-         variables that the shell handles specially (IFS, LANG, etc.), it's
-         stored on the list.  For each variable in this list,
-         dispose_temp_var calls stupidly_hack_special_variables.
-       - assign_in_env calls stupidly_hack_special_variables if flags arg
-         is non-zero, so variable assignments affect current shell
-         execution environment if a builtin or function is being executed.
-         Fixes bug reported by Bruno Haible <bruno@clisp.org>
-
-                                  12/5
-                                  ----
-subst.c
-       - use mbsmbchar on both string and pattern in match_pattern instead
-         of strlen and mbstrlen; only go through the strings once
-
-                                  12/6
-                                  ----
-lib/readline/kill.c
-       - in rl_yank_last_arg, only switch directions if the `count'
-         argument is < 0, not < 1.  This makes explicit count arguments of
-         0 work as expected.  Fixes bug reported by Dennis Williamson
-         <dennistwilliamson@gmail.com>
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - fix documentation for yank-last-arg to make it clear how the count
-         argument is set and how second and subsequent calls treat any
-         numeric argument
-
-doc/{bash.1,bashref.texi}
-       - slight changes to the description of test
-       - change \(bv to `|'; it seems that many `internationalized' versions
-         of groff don't render that as a vertical bar.  Fixes Debian bug
-         603805
-
-                                  12/10
-                                  -----
-configure.in
-       - changed release status to 4.2-beta
-
-                                  12/14
-                                  -----
-[bash-4.2-beta frozen]
-
-                                  12/18
-                                  -----
-redir.c
-       - change REDIRECTION_ERROR macro to accept a third argument: an
-         additional file descriptor to close before returning and error (pass
-         -1 to do nothing)
-       - change calls to REDIRECTION_ERROR to close appropriate file
-         descriptors.  Fixes bug reported by Andreas Schwab
-         <schwab@linux-m68k.org>
-       - make sure to close any file descriptors opened for REDIR_VARASSIGN
-         before returning an error
-
-                                  12/19
-                                  -----
-expr.c
-       - move processing of unary `-' and `+' to exp1 from exp0 to avoid
-         precedence problems.  Fixes bug reported by <12bric@gmail.com>
-
-                                  12/22
-                                  -----
-lib/sh/fpurge.c
-       - updated version from gnulib, inlined gnulib stdio-impl.h
-
-                                  12/24
-                                  -----
-doc/bash.1
-       - change the description of while and until to use `list-1' and
-         `list-2', similar to the Posix description.  Suggested by
-         Jeff Haemer <jeffrey.haemer@gmail.com>
-
-                                  12/27
-                                  -----
-execute_cmd.c
-       - slight changes to execute_command_internal and how it captures the
-         exit status of (command) and shell control structures with pipes to
-         avoid multiple variable assignments to last_command_exit_value
-       - change to execute_simple_command so that parent branches of shells
-         forked to execute commands in pipelines don't change $? to 0
-         (if (pipe_out != NO_PIPE) result = last_command_exit_value).  Fixes
-         bug reported by Damien Nadà<dnade.ext@orange-ftgroup.com>
-
-                                  12/28
-                                  -----
-configure.in
-       - changed version to bash-4.2-rc1
-
-                                1/2/2011
-                                --------
-lib/readline/complete.c
-       - fix rl_filename_completion_function to dequote and save users_dirname
-         before calling any function to transform the directory name passed
-         to opendir().  Fix from Andreas Schwab <schwab@linux-m68k.org>
-
-lib/readline/doc/
-       - make sure to note that rl_directory_completion_hook cannot modify
-         the directory name argument if it returns 0
-
-bashline.c
-       - make sure that bash_directory_completion_hook consistently returns
-         non-zero whenever it modifies its directory name argument 
-
-lib/readline/terminal.c
-       - don't bother with the declarations (extern or not) for PC, BS, and
-         UP if NCURSES_VERSION is defined, since ncurses defines local
-         versions of those symbols in the library.  Fixes bug most recently
-         reported by Kevin Scott <kscott@eznet.net> against Mac OS X
-
-include/filecntl.h
-       - make sure O_TEXT and O_BINARY are defined to avoid Windows-specific
-         (or cygwin-specific) code.  This and the following changes from
-         Eric Blake <eblake@redhat.com> for current cygwin systems
-
-input.h
-       - add a B_TEXT flag to note when the underlying file descriptor is
-         opened in O_TEXT mode
-
-lib/sh/tmpfile.c
-       - make sure temporary files are opened in binary mode (O_BINARY) on
-         systems where it matters
-
-input.c
-       - make sure to set the B_TEXT flag if the file descriptor has O_TEXT
-         in its flags (returned by fcntl)
-       - change b_fill_buffer to compensate for lseek() and read() returning
-         different offsets on files opened in O_TEXT mode
-       - cygwin now is able to lseek on files and set the unbuffered and text
-         flags appropriately, so can use the general test for a seekable fd
-       - now that cygwin uses O_TEXT or O_BINARY appropriately, we no longer
-         have to manually translate \r\n to \n
-
-redir.c
-       - remove the Cygwin-1.1 code from here_document_to_fd; cygwin is now
-         up to version 1.7 and can unlink an open file descriptor
-       - make sure temporary files used for here documents are opened in
-         binary mode (O_BINARY) on systems where it matters
-
-execute_cmd.c,parse.y
-       - make sure error messages use all printable characters in filenames
-         and strings
-
-{builtins/evalfile,shell,subst}.c
-       - remove cygwin-specific calls to setmode to force file descriptors
-         into text mode, since we're using text or binary mode according to
-         the mode of the mount point
-
-execute_cmd.c
-       - when creating pipes and making them stdin and stdout, make sure to
-         tell stdio that the mode of the underlying file descriptor may have
-         changed from text to binary
-
-subst.c
-       - when creating pipes for command substitution, make sure to
-         tell stdio that the mode of the underlying file descriptor may have
-         changed from text to binary
-
-                                   1/3
-                                   ---
-doc/{bash.1,bashref.texi}
-       - changes to the readonly documentation suggested by Jan Schampera
-         <jan.schampera@web.de>
-
-                                   1/4
-                                   ---
-builtins/read.def
-       - change bind_read_variable to consistently return NULL if there is some
-         kind of variable assignment error (e.g., assigning to a readonly or
-         noassign var)
-       - change read builtin to only call stupidly_hack_special_variables if
-         bind_read_variable returns non-NULL
-       - change read_builtin to return EXECUTION_FAILURE if there is an
-         assignment error (e.g., assigning to a readonly or noassign var).
-         Fixes bug reported by Jan Schampera <jan.schampera@web.de>
-
-                                   1/5
-                                   ---
-builtins/{help.def,common.c}
-       - change uses of a builtin's `short_doc' member to go through gettext
-         for possible translation before being displayed.  Suggestion from
-         <goeran@uddeborg.se>
-
-                                   1/6
-                                   ---
-shell.h
-       - new exit status define: EX_MISCERROR (2)
-
-builtins/getopts.def
-       - change getopts_bind_variable to return error if an attempt is made
-         to assign to a variable with the `noassign' attribute
-       - change getopts_bind_variable to return EX_MISCERROR if attempt is
-         made to assign to readonly or noassign variable
-
-builtins/cd.def
-       - change setpwd to return an int and return failure when PWD is
-         readonly; success otherwise
-       - change bindpwd to return failure if setpwd returns EXECUTION_FAILURE.
-         Inspired by message from Eric Blake <eblake@redhat.com>
-       - change pwd builtin to return failure if PWD is readonly (and setpwd
-         returns EXECUTION_FAILURE)
-
-                                   1/8
-                                   ---
-lib/sh/eaccess.c
-       - on FreeBSD and Solaris, check the result of access(2) with mode X_OK
-         for root by checking sh_stataccess().  Same code as was added to
-         check result of eaccess().  Fixes Solaris 11 problem reported by
-         <cloyce@headgear.org>
-
-                                  1/10
-                                  ----
-builtins/set.def
-       - add description of `--' to help text
-
-[bash-4.2-rc1 released]
-
-                                  1/14
-                                  ----
-lib/readline/readline.h
-       - fix/update description of rl_directory_rewrite_hook
-
-lib/readline/complete.c
-       - if there are no directory rewrite or completion hooks, set dirname
-         to a duplicate copy of users_dirname instead of calling the
-         dequoting function again
-
-bashline.c
-       - use rl_directory_rewrite_hook instead of rl_directory_completion_hook
-         to avoid changing the directory name the user typed, other than
-         dequoting it.  Fixes bug introduced by changes to directory
-         completion hook, pointed out first by William Bader
-         <william.bader@gmail.com>
-
-                                  1/16
-                                  ----
-lib/sh/strftime.c
-       - portability and other (int->long) updates from Aharon Robbins
-         <arnold@skeeve.com>
-
-configure.in
-       - change release level to rc2
-
-                                  1/17
-                                  ----
-execute_cmd.c
-       - short-circuit select builtin if read_builtin returns anything but
-         EXECUTION_SUCCESS, not just EXECUTION_FAILURE.  Fixes bug reported
-         by Pierre Gaston <pierre.gaston@gmail.com>
-
-                                  1/19
-                                  ----
-execute_cmd.c
-       - change execute_simple_command to save and restore the values of
-         executing_builtin and executing_command_builtin before discarding
-         the unwind-protect frame.  Bug and fix from Werner Fink
-         <werner@suse.de>
-
-                                  1/24
-                                  ----
-variables.c
-       - change brand to set rseed to a known, constant value if it's 0,
-         so the sequence is known.  Fixes issue reported by Olivier
-         Mehani <shtrom@ssji.net>
-
-                                   2/2
-                                   ---
-braces.c
-       - make sure to pass an `int' argument to asprintf in mkseq.  Fixes
-         bug reported by Mike Frysinger <vapier@gentoo.org>
-
-                                   2/5
-                                   ---
-lib/glob/gmisc.c
-       - fix wmatchlen and umatchlen to initialize all state variables.  Fix
-         from Andreas Schwab <schwab@linux-m68k.org>
-
-jobs.c
-       - change wait_for to call restore_sigint_handler right after exiting
-         the wait loop, instead of right before function returns.  Reduces
-         the window for a SIGINT to be lost because a child does not exit      
-         due to SIGINT
-
-                                   2/7
-                                   ---
-configure.in
-       - changed release status to `release'
-
-                                   2/9
-                                   ---
-execute_cmd.c
-       - make sure some variables are declared as volatile if necessary.  Bug
-         report and fix from Eric Blake <eblake@redhat.com>
-
-[bash-4.2 frozen]
-
-                                  2/11
-                                  ----
-print_cmd.c
-       - in indirection_level_string, change to simpler test of result of
-         MBLEN (< 0 instead of MB_INVALIDCH)
-
-                                  2/14
-                                  ----
-[bash-4.2 released]
-
-                                  2/15
-                                  ----
-lib/glob/gmisc.c
-       - fix wmatchlen and umatchlen to avoid going past the end of the
-         string on an incomplete bracket expression that ends with a
-         NUL.  Partial fix for bug reported by Clark Wang <dearvoid@gmail.com>
-
-                                  2/16
-                                  ----
-subst.h
-       - new string extract flag value: SX_WORD.  Used when calling
-         extract_dollar_brace_string to skip over the word in
-         ${param op word} from parameter_brace_expand
-
-subst.c
-       - change parameter_brace_expand to add SX_WORD to flags passed to
-         extract_dollar_brace_string
-       - change parameter_brace_expand to use SX_POSIXEXP for all non-posix
-         word expansion operators that treat single quotes as special, not
-         just % and #
-       - change extract_dollar_brace_string to initialize dolbrace_state to
-         DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use
-         DOLBRACE_QUOTE.  Fixes bug reported by Juergen Daubert <jue@jue.li>
-
-doc/{bash.1,bashref.texi}
-       - document the exact expansions here strings undergo
-
-                                  2/17
-                                  ----
-lib/readline/vi_mode.c
-       - make sure that `dd', `cc', and `yy' call vidomove_dispatch from
-         rl_domove_read_callback.  Fixes bug reported by Clark Wang
-         <dearvoid@gmail.com>
-
-lib/readline/callback.c
-       - make sure _rl_internal_char_cleanup is called after the
-         vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char.
-         Companion to above fix
-
-doc/{bash.1,bashref.texi}
-       - make sure that the text describing the rhs of the == and =~
-         operators to [[ states that only the quoted portion of the pattern
-         is matched as a string
-
-                                  2/18
-                                  ----
-lib/glob/gmisc.c
-       - better fix for umatchlen/wmatchlen: keep track of the number of
-         characters in a bracket expression as the value to increase
-         matchlen by if the bracket expression is not well-formed.  Fixes
-         bug reported by Clark Wang <dearvoid@gmail.com>
-
-subst.c
-       - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag
-         in the word flags.  We will not perform word splitting or quote
-         removal on the result, so we do not want to add quoted nulls if
-         we see "" or ''.  Fixes bug reported by Mike Frysinger
-         <vapier@gentoo.org>
-
-                                  2/19
-                                  ----
-variables.c
-       - new function, int chkexport(name), checks whether variable NAME is
-         exported and remakes the export environment if necessary.  Returns
-         1 if NAME is exported and 0 if not
-       - call chkexport(name) to get tzset to look at the right variable in
-         the environment when modifying TZ in sv_tz.  Don't call tzset if
-         chkexport doesn't indicate that the variable is exported
-
-variables.h
-       - new extern declaration for chkexport
-
-
-{parse.y,builtins/printf.def}
-       - call sv_tz before calling localtime() when formatting time strings
-         in prompt strings or using printf.  Fixes bug reported by
-         Dennis Williamson <dennistwilliamson@gmail.com>
-
-execute_cmd.c
-       - modify fix of 2/9 to add casts when those variables are passed to
-         functions; some compilers throw errors instead of warnings.  Report
-         and fix from Joachim Schmitz <jojo@schmitz-digital.de>
-
-support/shobj-conf
-       - add a stanza for nsk on the Tandem from Joachim Schmitz
-         <jojo@schmitz-digital.de>
-
-{shell,lib/readline/shell}.c
-       - Tandem systems should use getpwnam (getlogin()); for some reason
-         they don't do well with using getuid().  Fix from Joachim Schmitz
-         <jojo@schmitz-digital.de>
-
-                                   3/1
-                                   ---
-variables.c
-       - make sure that the return value from find_variable is non-null
-         before trying to use it in chkexport.  Fixes bug reported by
-         Evangelos Foutras <foutrelis@gmail.com>
-
-                                   3/3
-                                   ---
-parse.y
-       - when adding $$ to the current token buffer in read_token_word(),
-         don't xmalloc a buffer for two characters and then strcpy it, just
-         copy the characters directly into the token buffer.  Fix from
-         Michael Whitten <mfwitten@gmail.com>
-
-execute_cmd.c
-       - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to
-         be expanded, so "" doesn't add CTLNUL.  Similar to fix of 2/18 to
-         expand_string_for_rhs.  Fixes bug reported by Nathanael D. Noblet
-         <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
-
-parse.y
-       - fix extended_glob case of read_token_word to allocate an extra
-         space in the buffer for the next character read after the extended
-         glob specification if it's a CTLESC or CTLNUL.  Report and fix from
-         Michael Witten <mfwitten@gmail.com>
-       - fix shell expansions case of read_token_word to allocate an extra
-         space in the buffer for the next character read after the shell
-         expansion if it's a CTLESC or CTLNUL.  Report and fix from
-         Michael Witten <mfwitten@gmail.com>
-       - TENTATIVE: fix read_token_word to reduce the amount of buffer space
-         required to hold the translated and double-quoted value of $"..."
-         strings.  Report and fix from Michael Witten <mfwitten@gmail.com>
-       - change code around got_character and got_escaped_character labels to
-         make sure that we call RESIZE_MALLOCED_BUFFER before adding the
-         CTLESC before a CTLESC or CTLNUL, and before adding the character if
-         we're not adding a CTLESC.  Report and fix from
-         Michael Witten <mfwitten@gmail.com>
-
-subst.c
-       - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that
-         parameter expansion is on rhs of assignment statement.  That inhibits
-         word splitting
-       - change param_expand to call string_list_dollar_at with quoted == 1
-         if PF_ASSIGNRHS is set, so it will quote IFS characters in the
-         positional parameter before separating them with the first char of
-         $IFS.  This keeps the rhs from being split inappropriately.  Fixes
-         bug reported by Andres Perera <andres.p@zoho.com>
-
-                                   3/4
-                                   ---
-lib/readline/bind.c
-       - add a missing free of `names' in rl_function_dumper.  Bug report
-         and fix from Michael Snyder <msnyder@vmware.com>
-
-                                   3/5
-                                   ---
-lib/readline/rltty.c
-       - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd
-         if rl_instream is not set, like rl_prep_terminal
-
-                                   3/6
-                                   ---
-lib/readline/display.c
-       - fix rl_message to use a dynamically-allocated buffer instead of a
-         fixed-size buffer of 128 chars for the `local message prompt'.  Bug
-         report and fix from Micah Cowan <micah@cowan.name>
-
-                                   3/7
-                                   ---
-jobs.c
-       - add sentinel to wait_sigint_handler so it only sets wait_sigint_received
-         if waiting_for_child is non-zero; otherwise, it restores the old
-         SIGINT handler and sends itself the SIGINT
-       - set waiting_for_child around the calls to waitchld that use it to
-         synchronously wait for a process
-       - change logic that decides whether or not the child process blocked
-         or handled SIGINT based on whether or not waitpid returns -1/EINTR
-         and the shell receives a SIGINT and the child does not exit.  If
-         the child later exits due to SIGINT, cancel the assumoption that it
-         was handled
-       - instead of testing whether or not the child exited due to SIGINT
-         when deciding whether the shell should act on a SIGINT it received
-         while waiting, test whether or not we think the child caught
-         SIGINT.  If it did, we let it go (unless the shell has it trapped);
-         if it did not catch it, the shell acts on the SIGINT.  Fix from
-         Linus Torvalds <torvalds@linux-foundation.org>, bug report originally
-         from Oleg Nesterov <oleg@redhat.com>
-
-                                   3/8
-                                   ---
-shell.c
-       - initialize no_line_editing to 1 if READLINE is not defined -- we
-         can't have line editing without readline
-
-                                  3/12
-                                  ----
-lib/readline/signals.c
-       - add SIGHUP to the set of signals readline handles
-
-lib/readline/doc/rltech.texi
-       - document that SIGHUP is now part of the set of signals readline
-         handles
-
-lib/readline/input.c
-       - if _rl_caught_signal indicates that read() was interrupted by a
-         SIGHUP or SIGTERM, return READERR or EOF as appropriate
-       - call rl_event_hook, if it's set, if call to read in rl_getc
-         returns -1/EINTR.  If rl_event_hook doesn't do anything, this
-         continues the loop as before.  This handles the other fatal
-         signals
-
-execute_cmd.c
-       - add a couple of QUIT; calls to execute_disk_command and
-         execute_simple_command to improve responsiveness to interrupts
-         and fatal signals
-
-input.c
-       - rearrange getc_with_restart so that the return values from read()
-         are handled right
-
-parse.y
-       - don't need to set terminate_immediately in yy_stream_get, since
-         getc_with_restart checks for terminating signals itself
-       - since readline returns READERR on SIGHUP or SIGTERM, don't need
-         to set terminate_immediately.  Still doesn't handle other
-         signals well -- will have to check that some more
-
-bashline.c
-       - new function, bash_event_hook, for rl_event_hook.  Just checks for
-         terminating signals and acts on them using CHECK_TERMSIG.
-       - set rl_event_hook to bash_event_hook
-
-builtins/read.def
-       - take out setting terminate_immediately; add calls to CHECK_TERMSIG
-         after read calls
-
-doc/{bash.1,bashref.texi}
-       - move the text describing the effect of negative subscripts used to
-         reference indexed array elements to the paragraphs describing
-         ${parameter[subscript]}, since that's where they are implemented.
-         Pointed out by Christopher F. A. Johnson <cfajohnson@gmail.com>
-
-arrayfunc.[ch],subst.c
-       - array_expand_index now takes a new first argument: a SHELL_VAR *
-         of the array variable being subscripted.  Can be used later to fully
-         implement negative subscripts
-
-                                  3/14
-                                  ----
-lib/glob/glob.c
-       - fix mbskipname to not turn the directory entry name into a wide char
-         string if the conversion of the pattern to a wide char string fails
-       - fix mbskipname to call skipname if either the pattern or the filename
-         can't be converted into a wide-char string
-
-lib/glob/xmbsrtowcs.c
-       - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and
-         short-circuit with failure in that case.  Fixes bug reported by
-         Roman Rakus <rrakus@redhat.com>
-
-                                  3/15
-                                  ----
-bashline.c
-       - new variable, bash_filename_quote_characters to store the value
-         assigned to rl_filename_quote_characters so it can be restored
-         if changed.
-       - change bashline_reset and attempt_shell_completion to restore
-         rl_filename_quote_characters if not set to default
-
-                                  3/22
-                                  ----
-lib/glob/glob.c
-       - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs
-         fails to convert the pathname to a wide-character string
-
-lib/glob/xmbsrtowcs.c
-       - xdupmbstowcs2: change to fix problem with leading '\\' (results in
-         nms == 0, which causes it to short-circuit with failure right
-         away).  Fixes bug pointed out by Werner Fink <werner@suse.de>
-       - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the
-         next single-byte character and going on
-       - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC
-         bytes; try to avoid calls to realloc (even if they don't actually
-         result in more memory being allocated)
-
-                                  3/24
-                                  ----
-doc/{bash.1,bashref.texi}
-       - slightly modify BASH_SUBSHELL description based on complaint from
-         Sam Liddicott <sam@liddicott.com>
-
-                                  3/25
-                                  ----
-trap.c
-       - change free_trap_strings to not call free_trap_string for signals
-         that are being ignored, like reset_or_restore_signal_handlers.
-         Fixes bug reported by Satoshi Takahashi <blue3waters@gmail.com>
-
-                                  3/26
-                                  ----
-lib/readline/rltypedefs.h
-       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
-         suggested by Tom Tromey <tromey@redhat.com>
-
-lib/readline/rlstdc.h
-       - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from
-         config.h.in to here because declaration of rl_message in
-         readline.h uses the defines.  This makes it hard for another packages
-         to use after the header files are installed, since config.h is not
-         one of the installed files.  Suggested by Tom Tromey
-         <tromey@redhat.com>
-
-                                  3/27
-                                  ----
-print_cmd.c
-       - change indirection_string from a static buffer to a dynamic one
-         managed by indirection_level_string(), so we don't end up truncating
-         PS4.  Suggested by Dennis Williamson <dennistwilliamson@gmail.com>
-
-lib/readline/shell.c
-       - change sh_set_lines_and_columns to use static buffers instead of
-         allocating the buffers to pass to setenv/putenv
-
-lib/readline/terminal.c
-       - change _rl_get_screen_size to not call sh_set_lines_and_columns if
-         ignore_env == 0
-       - _rl_sigwinch_resize_terminal: new function to just retrieve terminal
-         size, ignoring environment
-
-lib/readline/rlprivate.h
-       - new external declaration for _rl_sigwinch_resize_terminal() (currently
-         unused)
-
-lib/readline/signals.c
-       - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH
-       - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just
-         leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle
-       - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH.
-         Should fix hang when sending multiple repeated SIGWINCH reported by
-         Henning Bekel <h.bekel@googlemail.com>
-
-                                  3/29
-                                  ----
-lib/sh/snprintf.c
-       - include math.h for any defines for isinf/isnan
-       - use code from gnulib documentation to implement isinf/isnan if they
-         are not defined
-
-configure.in
-       - don't check for isinf or isnan; c99 says they're macros anyway
-
-config.h.in
-       - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used
-         by snprintf.c
-
-                                   4/2
-                                   ---
-braces.c
-       - brace_gobbler: fix to understand double-quoted command substitution,
-         since the shell understands unquoted comsubs.  Fixes bug reported
-         by Michael Whitten <mfwitten@gmail.com>
-
-lib/readline/display.c
-       - include <pc.h> on MDOS
-       - get and set screen size using DJGPP-specific calls on MSDOS
-       - move cursor up clear screen using DJGPP-specific calls
-       - don't call tputs on DJGPP; there is no good terminfo support
-
-lib/readline/terminal.c
-       - include <pc.h> on MDOS
-       - get and set screen size using DJGPP-specific calls on MSDOS
-       - use DJGPP-specific initialization on MSDOS, zeroing all the
-         _rl_term_* variables
-       - don't call tputs on DJGPP; there is no good terminfo support
-         DJGPP support from Eli Zaretskii  <eliz@gnu.org>
-
-                                   4/6
-                                   ---
-
-config-top.h
-       - change DEFAULT_PATH_VALUE to something more useful and modern
-
-                                   4/8
-                                   ---
-tests/printf2.sub
-       - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect.
-         Reported by Cedric Arbogast <arbogast.cedric@gmail.com>
-
-                                  4/11
-                                  ----
-include/chartypes.h
-       - fix a couple of dicey defines (though ones that don't cause any
-         compiler warnings) in IN_CTYPE_DOMAIN
-
-doc/{bashref.texi,bash.1}
-       - add note referring to duplicating file descriptors in sections
-         describing redirecting stdout and stderr and appending to stdout
-         and stderr.  Suggested by Matthew Dinger <mdinger.bugzilla@gmail.com>
-
-pcomplete.c
-       - it_init_helptopics: new function to support completing on help topics,
-         not just builtins
-       - it_helptopics: new programmable completion list of help topics
-       - build list of helptopic completions in gen_action_completions on
-         demand
-
-pcomplete.h
-       - new extern declaration for it_helptopics
-
-builtins/complete.def
-       - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN,
-         since there are more help topics than just builtins.  Suggested by
-         Clark Wang <dearvoid@gmail.com>
-
-                                  4/12
-                                  ----
-print_cmd.c
-       - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS
-         before ending the body of the command, so heredocs get attached to
-         the right command instead of to the loop.  From gentoo bug 363371
-         http://bugs.gentoo.org/show_bug.cgi?id=363371
-
-execute_cmd.c
-       - change coproc_pidchk to unset the appropriate shell variables when
-         the (currently single) known coproc pid terminates
-       - cleanup and new functions to fully support multiple coprocesses when
-         and if I decide to go there
-
-                                  4/13
-                                  ----
-print_cmd.c
-       - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS
-         after call to make_command_string_internal before printing closing
-         `}'
-       - fix make_command_string_internal to add a call to
-         PRINT_DEFERRED_HEREDOCS after recursive call to
-         make_command_string_internal in case cm_subshell before printing
-         closing `)'
-
-                                  4/14
-                                  ----
-print_cmd.c
-       - change overlapping strcpy in named_function_string to memmove
-
-sig.h
-       - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just
-         restores an old signal mask
-
-trap.c
-       - set_signal: instead of setting the signal handler to SIG_IGN while
-         installing the new trap handler, block the signal and unblock it
-         after the new handler is installed.  Fixes bug reported by Roman
-         Rakus <rrakus@redhat.com>
-
-                                  4/15
-                                  ----
-doc/{bash.1,bashref.texi}
-       - make it clear that enabling monitor mode means that all jobs run in
-         separate process groups
-
-                                  4/18
-                                  ----
-builtins/fc.def
-       - update fix of 4/15/2010 to not take saved_command_line_count into
-         account when stepping down the history list to make sure that
-         last_hist indexes something that is valid.  Fixes bug reported by
-         <piuma@piumalab.org>
-
-                                  4/19
-                                  ----
-builtins/fc.def
-       - fc_gethnum: make sure the calculation to decide the last history
-         entry is exactly the same as fc_builtin.  Fixes bug uncovered by
-         fix of 4/18 to stop seg fault
-
-                                  4/22
-                                  ----
-lib/readline/terminal.c
-       - change _rl_enable_meta_key to set a flag indicating that it sent the
-         enable-meta sequence
-       - _rl_disable_meta_key: new function to turn off meta mode after we
-         turned it on with _rl_enable_meta_key
-
-lib/readline/rlprivate.h
-       - extern declaration for _rl_disable_meta_key
-
-configure.in
-       - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited
-         from the environment.  Fixes HP/UX build problem reported by
-         "Daniel Richard G." <skunk@iSKUNK.ORG>
-
-                                  4/26
-                                  ----
-config-top.h
-       - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy
-         to enable via configure option or editing this file
-
-                                  4/29
-                                  ----
-lib/sh/eaccess.c
-       - freebsd provides faccessat, with the same misfeature as their eaccess
-         and access implementations (X_OK returns true for uid==0 regardless
-         of the actual file permissions), so reorganize code to check the
-         file permissions as with eaccess.  Report and fix from Johan Hattne
-         <johan.hattne@utsouthwestern.edu>
-
-                                   5/2
-                                   ---
-doc/{bash.1,bashref.texi}
-       - add forward reference to `Pattern Matching' from `Pathname
-         Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                   5/5
-                                   ---
-pcomplib.c
-       - the bash_completion project now distributes over 200 completions
-         for various programs, with no end in sight, so increase the value
-         of COMPLETE_HASH_BUCKETS from 32 to 128
-
-pathexp.c
-       - quote_string_for_globbing: make sure CTLESC quoting CTLESC is
-         translated into \<CTLESC> even if the flags include QGLOB_REGEXP.
-         We don't want to process the second CTLESC as a quote character.
-         Fixes bug reported by Shawn Bohrer <sbohrer@rgmadvisors.com>
-
-                                   5/6
-                                   ---
-builtins/printf.def
-       - change PRETURN to not call fflush if ferror(stdout) is true
-       - if a call to one of the stdio functions or printstr leaves
-         ferror(stdout) true, and PRETURN is going to be called, let PRETURN
-         print the error message rather than doubling up the messages.  Fixes
-         problem reported by Roman Rakus <rrakus@redhat.com>
-
-                                   5/9
-                                   ---
-doc/{bash.1,bashref.texi}
-       - add note to the effect that lists inside compound command can be
-         terminated by newlines as well as semicolons.  Suggested by
-         Roman Byshko <rbyshko@gmail.com>
-
-                                  5/10
-                                  ----
-subst.c
-       - remove_quoted_nulls: fix problem that caused it to skip over the
-         character after a CTLNUL, which had the effect of skipping every
-         other of a series of CTLNULs.  Fixes bug reported by
-         Marten Wikstrom <marten.wikstrom@keystream.se>
-
-                                  5/11
-                                  ----
-subst.c
-       - extract_process_subst: add SX_COMMAND flag to call to
-         extract_delimited_string, since we're expanding the same sort of
-         command as command substitution.  Fixes bug reported in Ubuntu
-         bug 779848
-
-                                  5/12
-                                  ----
-configure.in
-       - set the prefer_shared and prefer_static variables appropriately
-         depending on the value of $opt_static_link
-
-aclocal.m4
-       - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the
-         libraries it's searching for if the prefer_shared variable is "no".
-         Fixes problem reported by Cedric Arbogast <arbogast.cedric@gmail.com>
-
-                                  5/13
-                                  ----
-lib/readline/readline.c
-       - _rl_internal_teardown: add call to _rl_disable_meta_key to make the
-         meta key active only for the duration of the call to readline()
-       - _rl_internal_setup: move call to _rl_enable_meta_key here from
-         readline_initialize_everything so the meta key is active only for
-         the duration of the call to readline().  Suggestion from Miroslav
-         Lichvar <mlichvar@redhat.com>
-
-builtins/help.def
-       - help_builtin: change strncmp to strcmp so that `help read' no longer
-         matches `readonly'.  Suggested by Clark Wang <dearvoid@gmail.com>
-
-config.h.in
-       - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests
-         for libintl
-
-lib/malloc/malloc.c
-       - internal_free: don't use the cached value of memtop when deciding
-         whether or not to adjust the break and give memory back to the kernel
-         when using the GNU C library, since glibc uses sbrk for its own
-         internal purposes.  From Debian bug 614815, reported by Samuel
-         Thibault <samuel.thibault@gnu.org>
-
-aclocal.m4
-       - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN
-         to avoid warning about not using AC_LANG_SOURCE
-
-                                  5/14
-                                  ----
-bashline.[ch]
-       - two new functions, bashline_set_event_hook and bashline_reset_event_hook,
-         to set rl_event_hook to bash_event_hook and back to NULL, respectively
-       - don't set rl_event_hook unconditionally
-
-sig.c
-       - termsig_sighandler: if the shell is currently interactive and
-         readline is active, call bashline_set_event_hook to cause
-         termsig_handler to be called via bash_event_hook when the shell
-         returns from the signal handler
-
-                                  5/15
-                                  ----
-lib/readline/display.c
-       - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0
-         for UTF-8 combining characters.  Added workaround dependent on
-         MACOSX.  Fixes problem pointed out by Thomas De Contes
-         <d.l.tDecontes@free.fr>
-
-                                  5/16
-                                  ----
-lib/readline/rlmbutil.h
-       - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining
-         characters on systems where wcwidth is broken (e.g., Mac OS X).
-
-lib/readline/{complete,display,mbutil}.c
-       - use WCWIDTH instead of wcwidth
-
-                                  5/17
-                                  ----
-lib/readline/display.c
-       - update_line: after computing ofd and nfd, see whether the next
-         character in ofd is a zero-width combining character.  If it is,
-         back ofd and nfd up one, so the base characters no longer compare
-         as equivalent.  Fixes problem reported by Keith Winstein
-         <keithw@mit.edu>
-
-lib/readline/nls.c
-       - _rl_utf8locale: new flag variable, set to non-zero if the current
-         locale is UTF-8
-       - utf8locale(): new function, returns 1 if the passed lspec (or the
-         current locale) indicates that the locale is UTF-8.  Called from
-         _rl_init_eightbit
-
-lib/readline/rlprivate.h
-       - extern declaration for _rl_utf8locale
-
-locale.c
-       - locale_utf8locale: new flag variable, set to non-zero if the current
-         locale is UTF-8 (currently unused)
-       - locale_isutf8(): new function, returns 1 if the passed lspec (or the
-         current locale) indicates that the locale is UTF-8.  Should be called
-         whenever the locale or LC_CTYPE value is modified
-
-aclocal.m4
-       - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns
-         zero-width characters like unicode combining characters as having
-         display length 1; define WCWIDTH_BROKEN in this case
-
-config.h.in
-       - WCWIDTH_BROKEN: new define
-
-lib/readline/rlmbutil.h
-       - change WCWIDTH macro to use _rl_utf8locale and the full range of
-         Unicode combining characters (U+0300-U+036F)
-
-                                  5/19
-                                  ----
-lib/readline/rlprivate.h
-       - _rl_search_context: new member, prevc, will hold character read
-         prior to lastc
-
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: if the character causes us to index into
-         another keymap, save that character in cxt->prevc
-       - _rl_isearch_dispatch: if we index into another keymap, but don't
-         find a function that's special to i-search, and the character that
-         caused us to index into that keymap would have terminated the
-         search, push back cxt->prevc and cxt->lastc to make it appear as
-         if `prevc' terminated the search, and execute lastc as a command.
-         We have to push prevc back so we index into the same keymap before
-         we read lastc.  Fixes bug report from Davor Cubranic
-         <cubranic@stat.ubc.ca>
-
-                                  5/20
-                                  ----
-expr.c
-       - expr_bind_variable: pay attention to the return value from
-         bind_variable and check whether or not we should error out due to
-         a readonly or noassign variable.  Fixes bug reported by Eric
-         Blake <eblake@redhat.com>
-
-                                  5/26
-                                  ----
-
-lib/readline/search.c
-       - include histlib.h for ANCHORED_SEARCH defines
-       - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for
-         the duration of a history search
-       - rl_history_search_reinit: takes a new flags variable, defines whether
-         or not the search is anchored; assigned to rl_history_search_flags
-       - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to
-         beginning of search string; otherwise search string is unmodified
-       - rl_history_search_internal: set rl_point appropriately based on
-         whether or not rl_history_search_flags includes ANCHORED_SEARCH
-       - rl_history_substr_search_forward: new function, for non-anchored
-         substring search forward through history for string of characters
-         preceding rl_point
-       - rl_history_substr_search_backward: new function, for non-anchored
-         substring search backward through history for string of characters
-         preceding rl_point.  Original code from Niraj Kulkarni
-         <kulkarniniraj14@gmail.com>
-
-lib/readline/readline.h
-       - extern declarations for rl_history_substr_search_{for,back}ward
-
-lib/readline/funmap.c
-       - history-substring-search-forward: new bindable command, invokes
-         rl_history_substr_search_forward
-       - history-substring-search-backward: new bindable command, invokes
-         rl_history_substr_search_backward
-
-lib/readline/doc/{rluser.texi,readline.3}
-       - document history-substring-search-forward and
-         history-substring-search-backward
-
-                                  5/27
-                                  ----
-{nojobs,jobs}.c
-       - add support for DONT_REPORT_SIGTERM so that the shell doesn't print
-         a message when a job exits due to SIGTERM since that's the default
-         signal sent by the kill builtin.  Suggested by Marc Herbert
-         <mark.herbert@gmail.com>
-
-config-top.h
-       - DONT_REPORT_SIGTERM: new user-modifiable setting.  Commented out
-         by default
-
-                                  5/28
-                                  ----
-lib/readline/bind.c
-       - _rl_skip_to_delim: skip to a closing double quote or other delimiter,
-         allowing backslash to quote any character, including the delimiter
-       - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline
-         code
-       - rl_parse_and_bind: allow quoted strings as the values of string
-         variables.  Variable values without double quotes have trailing
-         whitespace removed (which still allows embedded whitespace, for
-         better or worse).  Fixes problem with string variables not matching
-         in `set' command if values happen to have trailing spaces or tabs
-         (debian bash bug #602762), but introduces slight incompatibility.
-
-                                  5/29
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify unset description to specify that without options, a
-         variable, then a shell function if there is no variable by that
-         name, is unset.  Fixes discrepancy reported by Mu Qiao
-         <qiaomuf@gentoo.org>
-
-                                  6/4
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify description of LINES and COLUMNS (and checkwinsize shopt
-         option) to make it clear that only interactive shells set a
-         handler for SIGWINCH and update LINES and COLUMNS.  Original
-         report submitted by Jonathan Nieder <jrnieder@gmail.com>
-
-arrayfunc.c
-       - expand_compound_array_assignment: defer expansion of words between
-         parens when performing compound assignmnt to an associative array
-         variable
-       - assign_compound_array_list: perform the same expansions when doing
-         a compound array assignment to an associative array variable as
-         when doing a straight array index assignment.  The idea is that
-               foo=( [ind1]=bar [ind2]=quux)
-         is the same as
-               foo[ind1]=bar ; foo[ind2]=quux
-
-         This fixes problems with double-expansion and quote removal being
-         performed on the array indices
-
-                                  6/13
-                                  ----
-doc/{bash.1,bashref.texi}
-       - Add a little text to make it clear that the locale determines how
-         range expressions in glob patterns are handled.
-
-
-                                  6/21
-                                  ----
-builtins/read.def
-       - display a message and return error status if -a is used with an
-         existing associative array.  Fixes bug reported by Curtis Doty
-         <curtis@greenkey.net>
-
-                                  6/24
-                                  ----
-{jobs,nojobs}.c
-       - non-interactive shells now react to the setting of checkwinsize
-         and set LINES and COLUMNS after a foreground job exits.  From a
-         suggestion by Leslie Rhorer <lrhorer@satx.rr.com>
-
-doc/{bash.1,bashref.texi}
-       - checkwinsize: remove language saying that only interactive shells
-         check the window size after each command
-
-lib/readline/histfile.c
-       - history_backupfile: new file, creates a backup history file name
-         given a filename (appending `-')
-       - history_do_write: when overwriting the history file, back it up
-         before writing.  Restore backup file on a write error.  Suggested
-         by chkno@chkno.net
-
-bashline.c
-       - find_cmd_name: two new arguments, return the start and end of the
-         actual text string used to find the command name, without taking
-         whitespace into account
-       - attempt_shell_completion: small changes to make sure that completion
-         attempted at the beginning of a non-empty line does not find a
-         programmable completion, even if the command name starts at point
-       - attempt_shell_completion: small change to make sure that completion
-         does not find a progcomp when in whitespace before the command
-         name
-       - attempt_shell_completion: small change to make sure that completion
-         does not find a progcomp when point is at the first character of a
-         command name, even when there is leading whitespace (similar to
-         above).  Fixes problems noted by Ville Skytta <ville.skytta@iki.fi>
-
-subst.c
-       - brace_expand_word_list: since the individual strings in the strvec
-         returned by brace_expand are already allocated, don't copy them to
-         newly-allocated memory when building the WORD_LIST, just use them
-         intact
-
-locale.c
-       - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change
-         the locale to avoid a function call every time we need to read it
-
-shell.h
-       - new struct to save shell_input_line and associated variables:
-         shell_input_line_state_t
-       - add members of sh_parser_state_t to save and restore token and the
-         size of the token buffer
-
-parse.y
-       - {save,restore}_input_line_state: new functions to save and restore
-         shell_input_line and associated variables
-       - {save,restore}_parser_state: add code to save and restore the token
-         and token buffer size
-       - xparse_dolparen: call save_ and restore_input_line_state to avoid
-         problems with overwriting shell_input_line when we recursively
-         call the parser to parse a command substitution.  Fixes bug
-         reported by Rui Santos <rsantos@grupopie.com>
-
-include/shmbutil.h
-       - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and
-         similar macros
-
-lib/glob/smatch.c
-       - rangecmp,rangecmp_wc: change to take an additional argument, which
-         forces the use of strcoll/wscoll when non-zero.  If it's 0, a new
-         variable `glob_asciirange' controls whether or not we use strcoll/
-         wscoll.  If it's non-zero, we use straight C-locale-like ordering.
-         Suggested by  Aharon Robbins <arnold@skeeve.com>
-
-                                  6/30
-                                  ----
-execute_cmd.c
-       - execute_pipeline: make sure the lastpipe code is protected by
-         #ifdef JOB_CONTROL.  Fixes problem reported by Thomas Cort
-         <tcort@minix3.org>
-
-                                   7/2
-                                   ---
-lib/readline/complete.c
-       - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around
-         completion functions that touch the file system.  Idea from Jan
-         Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
-         team
-
-lib/readline/signals.c
-       - rl_signal_handler: if we're in callback mode, don't interrupt
-         immediately on a SIGWINCH
-
-                                   7/3
-                                   ---
-bashline.c
-       - set_directory_hook: and its siblings are a new set of functions to
-         set, save, and restore the appropriate directory completion hook
-       - change callers to use {set,save,restore}_directory_hook instead of
-         manipulating rl_directory_rewrite_hook directly
-       - dircomplete_expand: new variable, defaults to 0, if non-zero causes
-         directory names to be word-expanded during word and filename
-         completion
-       - change {set,save,restore}_directory_hook to look at dircomplete_expand
-         and change rl_directory_completion_hook or rl_directory_rewrite_hook
-         appropriately
-
-bashline.h
-       - extern declaration for set_directory_hook so shopt code can use it
-
-                                   7/6
-                                   ---
-builtins/shopt.def
-       - globasciiranges: new settable shopt option, makes glob ranges act
-         as if in the C locale (so b no longer comes between A and B).
-         Suggested by Aharon Robbins <arnold@skeeve.com>
-
-                                   7/7
-                                   ---
-doc/{bash.1,bashref.texi}
-       - document new `globasciiranges' shopt option
-
-                                   7/8
-                                   ---
-builtins/shopt.def
-       - direxpand: new settable option, makes filename completion expand
-         variables in directory names like bash-4.1 did.
-       - shopt_set_complete_direxpand: new function, does the work for the
-         above by calling set_directory_hook
-
-doc/{bash.1,bashref.texi}
-       - document new `direxpand' shopt option
-
-                                  7/15
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: when adding character to search string, use
-         cxt->lastc (which we use in the switch statement) instead of c,
-         since lastc can be modified earlier in the function
-
-                                  7/18
-                                  ----
-lib/readline/rlprivate.h
-       - _rl_search_context: add another member to save previous value of
-         (multibyte) lastc: pmb is to mb as prevc is to lastc
-
-lib/readline/isearch.c:
-       - _rl_isearch_dispatch: if a key sequence indexes into a new keymap,
-         but doesn't find any bound function (k[ind].function == 0) or is
-         bound to self-insert (k[ind].function == rl_insert), back up and
-         insert the previous character (the one that caused the index into a
-         new keymap) and arrange things so the current character is the next
-         one read, so both of them end up in the search string.  Fixes bug
-         reported by Clark Wang <dearvoid@gmail.com>
-       - _rl_isearch_dispatch: a couple of efficiency improvements when adding
-         characters to the isearch string
-
-                                  7/24
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb
-         appropriately when in a multibyte locale
-
-doc/{bash.1,bashref.texi}
-       - correct description of {x}>file (and other redirection operators
-         that allocate a file descriptor) to note the the fd range is
-         greater than or equal to 10.  Fixes problem reported by
-         Christian Ullrich 
-
-lib/readline/signals.c
-       - rl_signal_handler: don't interrupt immediately if in callback mode
-
-lib/readline/callback.c
-       - rl_callback_read_char: install signal handlers only when readline
-         has control in callback mode, so readline's signal handlers aren't
-         called when the application is active (e.g., between the calls to
-         rl_callback_handler_install and rl_callback_read_char).  If the
-         readline signal handlers only set a flag, which the application
-         doesn't know about, the signals will effectively be ignored until
-         the next time the application calls into the readline callback
-         interface.  Fixes problem of calling unsafe functions from signal
-         handlers when in callback mode reported by Jan Kratochvil
-         <jan.kratochvil@redhat.com>
-
-execute_cmd.c
-       - fix_assignment_words: when in Posix mode, the `command' builtin
-         doesn't change whether or not the command name it protects is an
-         assignment builtin.  One or more instances of `command'
-         preceding `export', for instance, doesn't make `export' treat its
-         assignment statement arguments differently.  Posix interpretation
-         #351
-
-doc/{bash.1,bashref.texi}
-       - document new Posix-mode behavior of `command' when preceding builtins
-         that take assignment statements as arguments
-
-builtins/printf.def
-       - printstr: if fieldwidth or precision are < 0 or > INT_MAX when
-         supplied explicitly (since we take care of the `-' separately),
-         clamp at INT_MAX like when using getint().  Fixes issue reported
-         by Ralph Coredroy <ralph@inputplus.co.uk>
-
-                                  7/25
-                                  ----
-lib/readline/chardefs.h
-       - isxdigit: don't define if compiling with c++; declared as a c++
-         template function.  Fixes bug reported by Miroslav Lichvar
-         <mlichvar@redhat.com>
-
-builtins/printf.def
-       - getint: if garglist == 0, return whatever getintmax returns (0).
-         Fixes bug reported  by Ralph Coredroy <ralph@inputplus.co.uk>
-
-                                  7/28
-                                  ----
-doc/{bash.1,bashref.texi}
-       - minor changes to the descriptions of the cd and pushd builtins
-
-lib/sh/zread.c
-       - zsyncfd: change variable holding return value from lseek to
-         off_t.  Bug report and fix from Gregory Margo <gmargo@pacbell.net>
-
-                                   8/1
-                                   ---
-expr.c
-       - don't check for division by 0 when in a context where no evaluation
-         is taking place.  Fixes bug reported by dnade.ext@orange-ftgroup.com
-
-                                   8/6
-                                   ---
-execute_cmd.c
-       - execute_command_internal: the parent branch of the subshell code
-         (where the child calls execute_in_subshell) should not close all
-         open FIFOs with unlink_fifo_list if it's part of a shell function
-         that's still executing.  Fixes bug reported by Maarten Billemont
-         <lhunath@lyndir.com>
-
-                                   8/9
-                                   ---
-builtins/common.c
-       - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument
-
-builtins/return.def
-       - return_builtin: just call get_exitstat to get the return status,
-         let it handle proper parsing and handling of arguments.  Fixes
-         issue most recently raised by Linda Walsh <bash@tlinx.org>.
-         Reverses change from 9/11/2008 (see above)
-
-                                  8/16
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clean up `set -e' language to make it clearer that any failure of
-         a compound command will cause the shell to exit, not just subshells
-         and brace commands
-
-                                  8/17
-                                  ----
-configure.in
-       - make the various XXX_FOR_BUILD variables `precious' to autoconf to
-         avoid stale data
-       - change how CC_FOR_BUILD is initialized when cross-compiling and not,
-         but do not change behavior
-       - initialize CFLAGS_FOR_BUILD to -g when cross-compiling
-       - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty
-         when cross-compiling
-       - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when
-         CFLAGS not inherited from environment (like effect of old
-         auto_cflags variable)
-       - substitute LIBS_FOR_BUILD into output Makefiles
-         [changes inspired by bug report from Nathan Phillip Brink
-         <ohnobinki@ohnopublishing.net> -- gentoo bug 378941]
-
-builtins/Makefile.in   
-       - substitute LIBS_FOR_BUILD from configure, not strictly initialized
-         to $(LIBS)
-
-                                  8/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - minor changes to the here string description to clarify the
-         expansions performed on the word
-
-support/shobj-conf
-       - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes
-         to darwin stanzas.  Fixes readline bug reported by Vincent
-         Sheffer <vince.sheffer@apisphere.com>
-
-lib/sh/strtrans.c
-       - ansic_wshouldquote: check a string with multi-byte characters for
-         characters that needs to be backslash-octal escaped for $'...'
-       - ansic_shouldquote: if is_basic fails for one character, let
-         ansic_wshouldquote examine the rest of the string and return what
-         it returns.  From a patch sent by Roman Rakus <rrakus@redhat.com>
-
-                                  8/30
-                                  ----
-lib/sh/strtrans.c
-       - ansic_quote: changes to quote (or not) multibyte characters.  New
-         code converts them to wide characters and uses iswprint to check
-         valid wide chars.  From a patch sent by Roman Rakus
-         <rrakus@redhat.com>
-
-                                   9/7
-                                   ---
-lib/sh/shquote.c
-       - sh_backslash_quote: change to be table-driven so we can use a
-         different table if we want to
-       - sh_backslash_quote: takes a second char table[256] argument;
-
-externs.h
-       - sh_backslash_quote: add second argument to function prototype
-
-bashline.c,braces.c,parse.y,builtins/printf.def
-       - change callers of sh_backslash_quote to add second argument
-
-bashline.c
-       - filename_bstab: table of characters to pass to sh_backslash_quote;
-         characters with value 1 will be backslash-quoted
-       - set_filename_bstab: turn on characters in filename backslash-quote
-         table according to passed string argument
-       - call set_filename_bstab every time rl_filename_quote_characters is
-         assigned a value
-       - bash_quote_filename: call sh_backslash_quote with filename_bstab
-         as second argument.  This allows other characters in filenames to
-         be quoted without quoting, for instance, a dollar sign in a shell
-         variable reference
-
-                                   9/8
-                                   ---
-bashline.c
-       - complete_fullquote: new variable, controls table passed to
-         sh_backslash_quote.  If non-zero (the default), the standard set
-         of shell metacharacters -- as in bash versions up to and including
-         bash-4.2 -- gets backslash-quoted by the completion code.  If zero,
-         sh_backslash_quote gets the table with the characters in the
-         variable reference removed, which means they are removed from the
-         set of characters to be quoted in filenames
-
-                                  9/10
-                                  ----
-bashline.c
-       - bash_filename_stat_hook: new function, designed to expand variable
-         references in filenames before readline passes them to stat(2)
-         to determine whether or not they are a directory
-
-                                  9/15
-                                  ----
-builtins/declare.def
-       - if assign_array_element fails due to a bad (or empty) subscript, mark
-         it as an assignment error and don't attempt any further processing
-         of that declaration.  Fixes segfault bug reported by Diego Augusto
-         Molina <diegoaugustomolina@gmail.com>
-
-                                  9/19
-                                  ----
-expr.c
-       - exppower: replace the simple exponentiation algorithm with an
-         implementation of exponentiation by squaring.  Inspired by report
-         from Nicolas ARGYROU <nargy@yahoo.com>
-
-bashline.c
-       - bash_quote_filename: check for rtext being non-null before
-         dereferencing it
-       - set_saved_history: operate_and_get_next assumes that the previous
-         line was added to the history, even when the history is stifled and
-         at the max number of entries.  If it wasn't, make sure the history
-         number is incremented properly.  Partial fix for bug reported by
-         gregrwm <backuppc-users@whitleymott.net>
-
-doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
-       - minor editorial changes inspired by suggestions from
-         <rogerx.oss@gmail.com>
-
-                                  9/20
-                                  ----
-lib/intl/localealias.c
-       - read_alias_file: close resource leak (fp) when returning on error
-
-                                  9/22
-                                  ----
-execute_command.c
-       - execute_intern_function: implement Posix interpretation 383 by making
-         it an error to define a function with the same name as a special
-         builtin when in Posix mode.
-         http://austingroupbugs.net/view.php?id=383#c692
-
-                                  9/25
-                                  ----
-doc/{bash.1,bashref.texi}
-       - formatting and some content changes from Benno Schulenberg
-         <bensberg@justemail.net>
-       - document new posix-mode behavior from interp 383 change of 9/22
-
-                                  9/30
-                                  ----
-execute_cmd.c
-       - shell_execve: add strerror to error message about executable file
-         that shell can't execute as a shell script.  From suggestion by
-         daysleeper <daysleeper@centrum.cz>
-
-                                  10/1
-                                  ----
-bashhist.c
-       - maybe_add_history: act as if literal_history is set when parser_state
-         includes PST_HEREDOC, so we save the bodies of here-documents just
-         as they were entered.  Fixes bug reported by Jonathan Wakely
-         <bugs@kayari.org>
-       - bash_add_history: make sure that the second and subsequent lines of
-         a here document don't have extra newlines or other delimiting
-         chars added, since they have the trailing newline preserved, when
-         `lithist' is set and history_delimiting_chars isn't called
-
-execute_cmd.c
-       - execute_command_internal: avoid fd exhaustion caused by using
-         process substitution in loops inside shell functions by using
-         copy_fifo_list and close_new_fifos ().  Fixes debian bash bug
-         642504
-
-lib/readline/complete.c
-       - new variable, rl_filename_stat_hook, used by append_to_match.  If
-         filename completion is desired, and rl_filename_stat_hook points
-         to a function, call that function to expand the filename in an
-         application-specific way before calling stat.
-
-bashline.c
-       - bash_default_completion: if variable completion returns a single
-         match, use bash_filename_stat_hook and file_isdir to determine
-         whether or not the variable name expands to a directory.  If it
-         does, set the filename_append_character to `/'.  This is not
-         perfect, so we will see how it works out.  Adds functionality
-         requested by Peter Toft <pto@linuxbog.dk> and Patrick Pfeifer
-         <patrick@pfeifer.de>
-       - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things
-         like $HOME/Downloads (after completion) have a slash appended.
-         In general, this causes the stat hook to be called whenever
-         filename completion is appended.  Adds functionality requested by
-         Patrick Pfeifer <patrick@pfeifer.de>
-
-lib/readline/readline.h
-       - new extern declaration for rl_filename_stat_hook
-
-lib/readline/doc/rltech.texi
-       - rl_directory_rewrite_hook: now documented
-       - rl_filename_stat_hook: document
-
-pcomplete.c
-       - gen_action_completions: in the CA_DIRECTORY case, turn off
-         rl_filename_completion_desired if it was off before we called
-         rl_filename_completion_function and we didn't get any matches.
-         Having it on causes readline to quote the matches as if they
-         were filenames.  Adds functionality requested by many,
-         including Clark Wang <dearvoid@gmail.com>
-
-assoc.[ch]
-       - assoc_replace: new function, takes the same arguments as
-         assoc_insert, but returns the old data instead of freeing it
-       - assoc_insert: if the object returned by hash_insert doesn't have
-         the same value for its key as the key passed as an argument, we
-         are overwriting an existing value.  In this case, we can free the
-         key.  Fixes bug reported by David Parks <davidparks21@yahoo.com>
-
-                                  10/5
-                                  ----
-print_cmd.c
-       - indirection_level_string: small change to only re-enable `x'
-         option after calling decode_prompt_string if it was on before.  In
-         normal mode, it will be, but John Reiser <jreiser@bitwagon.com>
-         has a novel use for that code in conjunction with a pre-loaded
-         shared library that traces system call usage in shell scripts
-
-                                  10/10
-                                  -----
-Makefile.in
-       - Fix from Mike Frysinger <vapier@gentoo.org> to avoid trying to
-         build y.tab.c and y.tab.h with two separate runs of yacc if
-         parse.y changes.  Problem with parallel makes
-       - Fix from Mike Frysinger <vapier@gentoo.org> to avoid subdirectory
-         builds each trying to make version.h (and all its dependencies)
-
-lib/sh/Makefile.in
-       - remove some dependencies on version.h where it doesn't make sense
-
-variables.c
-       - initialize_shell_variables: while reading the environment, a shell
-         running in posix mode now checks for SHELLOPTS being readonly (it
-         gets set early on in main()) before trying to assign to it.  It
-         saves an error message and the variable gets parsed as it should.
-         Fixes bug reported by Len Giambrone <Len.Giambrone@intersystems.com>
-
-                                  10/14
-                                  -----
-doc/{bash.1,bashref.texi}
-       - add to the "duplicating file descriptors" description that >&word
-         doesn't redirect stdout and stderr if word expands to `-'
-       - add to the "appending standard output and standard error"
-         description a note that >&word, where word is a number or `-',
-         causes other redirection operators to apply for sh and Posix
-         compatibility reasons.  Suggested by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-                                  10/15
-                                  -----
-pcomplete.c
-       - change pcomp_filename_completion_function to only run the filename
-         dequoting function in the cases (as best as it can figure) where
-         readline won't do it via rl_filename_completion_function.  Based
-         on reports from <lolilolicon@gmail.com>
-
-                                  10/19
-                                  -----
-bashline.c
-       - attempt_shell_completion: add call to set_directory_hook() to make
-         sure the rewrite functions are correct.  It's cheap and doesn't
-         hurt
-       - command_word_completion_function: if completing a command name that
-         starts with `.' or `..', temporarily suppress the effects of the
-         `direxpand' option and restore the correct value after calling
-         rl_filename_completion_function.  If it's enabled, the directory
-         name will be rewritten and no longer match `./' or `../'.  Fixes
-         problem reported by Michael Kalisz <michael@kalisz.homelinux.net>
-
-                                  10/22
-                                  -----
-builtins/history.def
-       - push_history: make sure remember_on_history is enabled before we
-         try to delete the last history entry -- the `history -s' command
-         might not have been saved.  Fixes bug reported by
-         lester@vmw-les.eng.vmware.com
-
-lib/readline/complete.c
-       - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
-         instead of straight return; add same call at end of function.
-         Placeholder for future work in deinstalling signal handlers when
-         readline is not active
-
-                                  10/25
-                                  -----
-expr.c
-       - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
-         for DIV and MOD and avoid SIGFPE.  Bug report and pointer to fix
-         from Jaak Ristioja <jaak.ristioja@cyber.ee>
-       - expassign: same changes for arithmetic overflow for DIV and MOD
-
-                                  10/28
-                                  -----
-subst.c
-       - parameter_brace_expand: allow pattern substitution when there is an
-         expansion of the form ${var/} as a no-op: replacing nothing with
-         nothing
-       - parameter_brace_patsub: don't need to check for PATSUB being NULL;
-         it never is
-
-flags.c
-       - if STRICT_POSIX is defined, initialize history_expansion to 0, since
-         history expansion (and its treatment of ! within double quotes) is
-         not a conforming posix environment.  From austin-group issue 500
-
-lib/readline/histexpand.c
-       - history_expand: when processing a string within double quotes
-         (DQUOTE == 1), make the closing double quote inhibit history
-         expansion, as if the word were outside double quotes.  In effect,
-         we assume that the double quote is followed by a character in
-         history_no_expand_chars.  tcsh and csh seem to do this.  This
-         answers a persistent complaint about history expansion
-
-                                  10/29
-                                  -----
-make_cmd.c
-       - make_arith_for_command: use skip_to_delim to find the next `;'
-         when breaking the string between the double parens into three
-         separate components instead of a simple character loop.  Fixes
-         bug reported by Dan Douglas <ormaaj@gmail.com>
-
-                                  11/2
-                                  ----
-Makefile.in
-       - make libbuiltins.a depend on builtext.h to serialize its creation
-         and avoid conflict between multiple invocations of mkbuiltins.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-                                  11/5
-                                  ----
-findcmd.c
-       - user_command_matches: if stat(".", ...) returns -1, set st_dev
-         and st_ino fields in dotinfo to 0 to avoid same_file matches
-       - find_user_command_in_path: check stat(2) return the same way
-
-lib/glob/glob.c
-       - glob_vector: don't call strlen(pat) without checking pat == 0
-       - glob_dir_to_array: make sure to free `result' and all allocated
-         members before returning error due to malloc failure
-       - glob_vector: make sure to free `nextname' and `npat' on errors
-         (mostly when setting lose = 1)
-       - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make
-         sure we free `subdir'
-       - glob_filename: when expanding ** (GX_ALLDIRS), make sure we
-         free temp_results (return value from glob_vector)
-
-lib/glob/xmbsrtowcs.c
-       - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead
-         of sizeof (char **) when assigning idxtmp
-
-execute_cmd.c
-       - print_index_and_element: return 0 right away if L == 0
-       - is_dirname: fix memory leak by freeing `temp'
-       - time_command: don't try to deref NULL `command' when assigning
-         to `posix_time'
-       - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's
-         terminated for functions that expect that
-
-builtins/read.def
-       - read_builtin: don't call bind_read_variable with a potentially-null
-         string
-
-pcomplete.c
-       - gen_command_matches: don't call dispose_word_desc with a NULL arg
-       - gen_compspec_completions: fix memory leak by freeing `ret' before
-         calling gen_action_completions (tcs, ...).  happens when
-         performing directory completion as default and no completions
-         have been generated
-       - gen_progcomp_completions: make sure to set foundp to 0 whenever
-         returning NULL
-       - it_init_aliases: fix memory leak by freeing alias_list before
-         returning
-
-bashline.c
-       - command_word_completion_function: don't call restore_tilde with a
-         NULL directory_part argument
-       - bash_directory_expansion: bugfix: don't throw away results of
-         rl_directory_rewrite_hook if it's set and returns non-zero
-       - bind_keyseq_to_unix_command: free `kseq' before returning error
-
-arrayfunc.c
-       - assign_array_element_internal: make sure `akey' is freed if non-null
-         before returning error
-       - assign_compound_array_list: free `akey' before returning error
-       - array_value_internal: free `akey' before returning error
-       - unbind_array_element: free `akey' before returning error
-
-subst.c
-       - array_length_reference: free `akey' before returning error in case
-         of expand_assignment_string_to_string error
-       - array_length_reference: free `akey' after call to assoc_reference
-       - skip_to_delim: if skipping process and command substitution, free
-         return value from extract_process_subst
-       - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before
-         returning if verify_substring_values fails
-       - parameter_brace_expand: remove two duplicate lines that allocate
-         ret in parameter_brace_substring case
-       - parameter_brace_expand: convert `free (name); name = xmalloc (...)'
-         to use `xrealloc (name, ...)'
-       - parameter_brace_expand: free `name' before returning when handling
-         ${!PREFIX*} expansion
-       - split_at_delims: fix memory leak by freeing `d2' before returning
-
-redir.c
-       - redirection_error: free `filename' if the redirection operator is
-         REDIR_VARASSIGN by assigning allocname
-
-eval.c
-       - send_pwd_to_eterm: fix memory leak by freeing value returned by
-         get_working_directory()
-
-builtins/cd.def
-       - change_to_directory: fix memory leak by freeing return value from
-         resetpwd()
-       - cd_builtin: fix memory leak by freeing value returned by dirspell()
-       - cd_builtin: fix memory leak by freeing `directory' if appropriate
-         before overwriting with return value from resetpwd()
-
-builtins/type.def
-       - describe_command: free `full_path' before overwriting it with return
-         value from sh_makepath
-
-builtins/complete.def
-       - compgen_builtin: fix memory leak by calling strlist_dispose (sl)
-         before overwriting sl with return value from completions_to_stringlist
-
-builtins/hash.def
-       - list_hashed_filename_targets: fix memory leak by freeing `target'
-
-make_cmd.c
-       - make_arith_for_command: free `init', `test', and `step' before
-         returning error on parse error
-
-jobs.c
-       - initialize_job_control: don't call move_to_high_fd if shell_tty == -1
-
-general.c
-       - check_dev_tty: don't call close with an fd < 0
-       - legal_number: deal with NULL `string' argument, return invalid
-
-lib/sh/fmtulong.c
-       - fmtulong: if the `base' argument is invalid, make sure we index
-         buf by `len-1' at maximum
-
-print_cmd.c
-       - print_deferred_heredocs: don't try to dereference a NULL `cstring'
-       - cprintf: make sure to call va_end (args)
-
-variables.c
-       - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *)
-         instead of sizeof (WORD_LIST **)
-
-lib/sh/zmapfd.c
-       - zmapfd: if read returns error, free result and return -1 immediately
-         instead of trying to reallocate it
-
-                                  11/6
-                                  ----
-execute_cmd.c
-       - cpl_reap: rewrote to avoid using pointer after freeing it; now builds
-         new coproc list on the fly while traversing the old one and sets the
-         right values for coproc_list when done
-
-                                  11/12
-                                  -----
-builtins/set.def
-       - if neither -f nor -v supplied, don't allow a readonly function to
-         be implicitly unset.  Fixes bug reported by Jens Schmidt
-         <jens.schmidt35@arcor.de>
-
-lib/readline/callback.c
-       - change CALLBACK_READ_RETURN to clear signal handlers before returning
-         from rl_callback_read_char so readline's signal handlers aren't
-         installed when readline doesn't have control.  Idea from Jan
-         Kratochvil <jan.ktratochvil@redhat.com> and the GDB development
-         team
-
-pcomplete.h
-       - COPT_NOQUOTE: new complete/compgen option value
-
-builtins/complete.def
-       - noquote: new complete/compgen option; will be used to disable
-         filename completion quoting
-
-pcomplete.c
-       - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns
-         of rl_filename_quoting_desired if set; turns it on if unset (value
-         is inverted, since default is on)
-
-doc/bash.1,lib/readline/doc/rluser.texi
-       - document new -o noquote option to complete/compgen/compopt
-
-pathexp.c
-       - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters
-         between brackets in an ERE bracket expression are not inappropriately
-         quoted with backslashes.  This is a pretty substantial change,
-         should be stressed when opening bash up for alpha and beta tests.
-         Fixes bug pointed out by Stephane Chazleas
-         <stephane_chazelas@yahoo.fr>
-
-doc/{bash.1,bashref.texi}
-       - document that regexp matches can be inconsistent when quoting
-         characters in bracket expressions, since usual quoting characters
-         lose their meaning within brackets
-       - note that regular expression matching when the pattern is stored
-         in a shell variable which is quoted for expansion causes string
-         matching
-
-redir.h
-       - RX_SAVEFD: new flag value; notes that a redirection denotes an
-         fd used to save another even if it's not >= SHELL_FD_BASE
-
-redir.c
-       - do_redirection_internal: when deciding whether or not to reset the
-         close-on-exec flag on a restored file descriptor, trust the value
-         of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE
-         if the RX_SAVEFD flag is set
-       - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor
-         limit is such that the shell can't duplicate to a file descriptor
-         >= 10.  Fixes a limitation that tripped a coreutils test reported
-         by Paul Eggert <eggert@cs.ucla.edu>
-
-                                  11/19
-                                  -----
-doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi
-       - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading
-         the startup files
-       - make it clear that bash runs HISTSIZE=500 after reading the
-         startup files
-       - make it clear that setting HISTSIZE=0 causes commands to not be
-         saved in the history list
-       - make it clear that setting HISTFILESIZE=0 causes the history file
-         to be truncated to zero size
-
-variables.c
-       - sv_histsize: change so setting HISTSIZE to a value less than 0
-         causes the history to be `unstifled'
-       - sv_histsize: change so setting HISTFILESIZE to a value less than 0
-         results in no file truncation
-       - make it clear that numeric values less than 0 for HISTFILESIZE or
-         HISTSIZE inhibit the usual functions
-
-                                  11/23
-                                  -----
-parse.y
-       - save_input_line_state: add missing `return ls' at the end, since the
-         function is supposed to return its argument.  Pointed out by
-         Andreas Schwab <schwab@linux-m68k.org>
-
-builtins/read.def
-       - skip over NUL bytes in input, as most modern shells seem to.  Bug
-         report by Matthew Story <matt@tablethotels.com>
-
-lib/readline/vi_mode.c
-       - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key
-
-                                  11/25
-                                  -----
-builtins/read.def
-       - read_builtin: if xrealloc returns same pointer as first argument,
-         don't bother with the remove_unwind_protect/add_unwind_protect pair
-       - read_builtin: set a flag (`reading') around calls to zread/zreadc
-         and readline()
-       - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if
-         currently in read(2) (reading != 0)
-       - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero,
-         behavior of old SIGALRM catching function
-       - read_builtin: call CHECK_ALRM in appropriate places while reading
-         line of input.  Fixes bug reported by Pierre Gaston
-         <pierre.gaston@gmail.com>
-
-lib/readline/vi_mode.c
-       - rl_vi_replace: initialize characters before printing characters in
-         vi_replace_keymap to their default values in vi_insertion_keymap,
-         since we're supposed to be in insert mode replacing characters
-       - rl_vi_replace: call rl_vi_start_inserting to set last command to
-         `R' for undo
-       - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future
-         use by _rl_vi_done_inserting
-       - vi_save_insert_buffer: new function, broke out code that copies text
-         into vi_insert_buffer from _rl_vi_save_insert
-       - _rl_vi_save_replace: new function, saves text modified by
-         rl_vi_replace (using current point and vi_replace_count to figure
-         it out) to vi_replace_buffer
-       - _rl_vi_save_insert: call vi_save_insert_buffer
-       - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call
-         _rl_vi_save_replace to save text modified in replace mode (uses
-         vi_save_insert_buffer)
-       - _rl_vi_replace_insert: new function, replaces the number of chars
-         in vi_insert_buffer after rl_point with contents ov vi_insert_buffer
-       - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and
-         there's something in vi_insert_buffer.  Fixes bug with `.' not
-         redoing the most recent `R' command, reported by Geoff Clare
-         <g.clare@opengroup.org> in readline area on savannah
-
-                                  11/26
-                                  -----
-lib/readline/rlprivate.h
-       - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal
-         to be handled
-       - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending
-         SIGINT to be handled
-
-lib/readline/complete.c
-       - remove all mention of _rl_interrupt_immediately
-       - rl_completion_matches: check RL_SIG_RECEIVED after each call to
-         the entry function, call RL_CHECK_SIGNALS if true to handle the
-         signal
-       - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free
-         and zero out the match_list this function allocated
-       - rl_completion_matches: if the completion entry function is
-         rl_filename_completion_function, free the contents of match_list,
-         because that function does not keep state and will not free the
-         entries; avoids possible memory leak pointed out by
-         Garrett Cooper <yanegomi@gmail.com>
-       - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after
-         calling rl_attempted_completion_function, free the returned match
-         list and handle the signal with RL_CHECK_SIGNALS; avoids
-         possible memory leak pointed out by Garrett Cooper
-         <yanegomi@gmail.com>
-       - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after
-         calling rl_completion_matches, free the returned match list and
-         handle the signal with RL_CHECK_SIGNALS
-
-lib/readline/util.c
-       - rl_settracefp: new utility function to set the tracing FILE *
-
-lib/readline/signals.c
-       - _rl_sigcleanup: pointer to a function that will be called with the
-         signal and a void * argument from _rl_handle_signal
-       - _rl_sigcleanarg: void * that the rest of the code can set to have
-         passed to the signal cleanup function
-       - _rl_handle_signal: if _rl_sigcleanup set, call as
-               (*_rl_sigcleanup) (sig, _rl_sigcleanarg)
-
-lib/readline/rlprivate.h
-       - extern declarations for _rl_sigcleanup and _rl_sigcleanarg
-
-lib/readline/complete.c
-       - _rl_complete_sigcleanup: signal cleanup function for completion code;
-         calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT
-       - rl_complete_internal: before calling display_matches if what_to_do
-         == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match
-         list gets freed on SIGINT; avoids possible memory leak pointed out
-         by Garrett Cooper <yanegomi@gmail.com>
-       - rl_complete_internal: in default switch case, call _rl_free_match_list
-         before returning to avoid memory leak
-
-doc/bashref.texi
-       - start at a set of examples for the =~ regular expression matching
-         operator, touching on keeping the pattern in a shell variable and
-         quoting portions of the pattern to remove their special meaning
-
-                                  12/1
-                                  ----
-lib/glob/gmisc.c
-       - extglob_pattern: new function, returns 1 if pattern passed as an
-         argument looks like an extended globbing pattern
-
-lib/glob/glob.c
-       - skipname: return 0 immediately if extglob_pattern returns non-zero,
-         let the extended globbing code do the right thing with skipping
-         names beginning with a `.'
-       - mbskipname: return 0 immediately if extglob_pattern returns non-zero,
-         let the extended globbing code do the right thing with skipping
-         names beginning with a `.'.  Fixes bug reported by Yongzhi Pan
-         <panyongzhi@gmail.com>
-
-                                  12/2
-                                  ----
-lib/glob/smatch.c
-       - patscan, patscan_wc: no longer static so other parts of the glob
-         library can use them, renamed to glob_patscan, glob_patscan_wc
-
-lib/glob/glob.c
-       - extern declarations for glob_patscan, glob_patscan_wc
-       - wchkname: new function, does skipname on wchar_t pattern and dname,
-         old body of mbskipname after converting to wide chars
-       - extglob_skipname: new function, checks all subpatterns in an extglob
-         pattern to determine whether or not a filename should be skipped.
-         Calls skipname for each subpattern.  Dname is only skipped if all
-         subpatterns indicate it should be.  Better fix for bug reported by
-         Yongzhi Pan <panyongzhi@gmail.com>
-       - wextglob_skipname: wide-char version of extglob_skipname, calls
-         wchkname instead of calling back into mbskipname for each
-         subpattern to avoid problems with char/wchar_t mismatch
-       - skipname: call extglob_skipname if extglob_pattern returns non-zero
-       - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero
-       - mbskipname: short-circuit immediately if no multibyte chars in
-         pattern or filename
-
-execute_cmd.c
-       - execute_cond_node: added parens to patmatch assignment statement to
-         make intent clearer
-
-                                  12/3
-                                  ----
-configure.in,config.h.in
-       - check for imaxdiv, define HAVE_IMAXDIV if present
-
-expr.c
-       - expassign, exp2: use imaxdiv if available.  Doesn't help with checks
-         for overflow from 10/25
-
-                                  12/6
-                                  ----
-lib/readline/complete.c
-       - compute_lcd_of_matches: if we're ignoring case in the matches, only
-         use what the user typed as the lcd if it matches the first match
-         (after sorting) up to the length of what was typed (if what the
-         user typed is longer than the shortest of the possible matches, use
-         the shortest common length of the matches instead).  If it doesn't
-         match, use the first of the list of matches, as if case were not
-         being ignored.  Fixes bug reported by Clark Wang
-         <dearvoid@gmail.com>
-
-                                  12/7
-                                  ----
-builtins/cd.def
-       - cd_builtin: add code to return error in case cd has more than one
-         non-option argument, conditional on CD_COMPLAINS define (which is
-         not defined anywhere)
-
-doc/{bash.1,bashref.texi}
-       - note that additional arguments to cd following the directory name
-         are ignored.  Suggested by Vaclav Hanzl <hanzl@noel.feld.cvut.cz>
-
-                                  12/10
-                                  -----
-lib/readline/input.c
-       - rl_read_key: don't need to increment key sequence length here; doing
-         it leads to an off-by-one error
-
-lib/readline/macro.c
-       - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length
-         fixed, can decrement current_macro_index by rl_key_sequence_length
-         (length of key sequence that closes keyboard macro)
-
-lib/readline/readline.c
-       - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length
-         when ESC maps to a new keymap and we're converting meta characters
-         to ESC+key
-       - _rl_dispatch_subseq: better increment of rl_key_sequence_length
-         before we dispatch to a function in the ISFUNC case (where the
-         second increment above should have happened)
-       - rl_executing_keyseq: the full key sequence that ended up executing
-         a readline command.  Available to the calling application, maintained
-         by _rl_dispatch_subseq, indexed by rl_key_sequence_length
-       - rl_executing_key: the key that was bound to the currently-executing
-         readline command.  Same as the `key' argument to the function
-
-lib/readline/readline.h
-       - rl_executing_keyseq: extern declaration
-       - rl_executing_key: extern declaration
-       - rl_key_sequence_length: declaration moved here from rlprivate.h,
-         now part of public interface
-
-lib/readline/rlprivate.h
-       - new extern declaration for _rl_executing_keyseq_size, buffer size
-         for rl_executing_keyseq
-
-lib/readline/doc/rltech.texi
-       - documented new variables: rl_executing_key, rl_executing_keyseq,
-         rl_key_sequence_length
-
-                                  12/13
-                                  -----
-bashline.c
-       - bash_execute_unix_command: replace ad-hoc code that searches
-         cmd_xmap for correct command with call to rl_function_of_keyseq
-         using rl_executing_keyseq; now supports key sequences longer
-         than two characters.  Fixes bug reported by Michael Kazior
-         <kazikcz@gmail.com>
-
-                                  12/15
-                                  -----
-make_cmd.c
-       - make_function_def: don't null out source_file before calling
-         make_command so it can be used later on when the function definition
-         is executed
-
-execute_cmd.c
-       - execute_intern_function: second argument is now FUNCTION_DEF *
-         instead of COMMAND *
-       - execute_command_internal: call execute_intern_function with the
-         new second argument (the entire FUNCTION_DEF instead of just the
-         command member)
-       - execute_intern_function: if DEBUGGER is defined, call
-         bind_function_def before calling bind_function, just like
-         make_function_def does (might be able to take out the call in
-         make_function_def depending on what the debugger does with it).
-         Fixes bug reported by <dethrophes@motd005>
-
-expr.c
-       - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1;
-         fix typos and logic errors
-
-                                  12/16
-                                  -----
-bashline.c
-       - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over
-         command substitutions and doesn't treat them as command separators
-       - attempt_shell_completion: instead of taking first return from
-         find_cmd_name as command name to use for programmable completion,
-         use loop to skip over assignment statements.  Fixes problem reported
-         by Raphael Droz <raphael.droz+floss@gmail.com>
-       - attempt_shell_completion: if we don't find a command name but the
-         command line is non-empty, assume the other words are all assignment
-         statements and flag that point is in a command position so we can
-         do command name completion
-       - attempt_shell_completion: if the word being completed is the first
-         word following a series of assignment statements, and the
-         command line is non-empty, flag that point is in a command position
-         so we can do command name completion
-
-lib/readline/history.c
-       - history_get_time: atol -> strtol
-
-                                  12/18
-                                  -----
-parse.y
-       - parser_in_command_position: external interface to the
-         command_token_position macro for use by other parts of the shell,
-         like the completion mechanism
-
-externs.h
-       - extern declaration for parser_in_command_position
-
-                                  12/19
-                                  -----
-
-builtins/read.def
-       - read_builtin: make sure all calls to bind_read_variable are passed
-         a non-null string.  Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-bashline.c
-       - attempt_shell_completion: mark that we're in a command position if
-         we're at the start of the line and the parser is ready to accept
-         a reserved word or command name.  Feature most recently suggested
-         by Peng Yu <pengyu.ut@gmail.com>
-
-                                  12/21
-                                  -----
-lib/readline/bind.c
-       - _rl_escchar: return the character that would be backslash-escaped
-         to denote the control character passed as an argument ('\n' -> 'n')
-       - _rl_isescape: return 1 if character passed is one that has a
-         backslash escape
-       - _rl_untranslate_macro_value: new second argument: use_escapes, if
-         non-zero translate to backslash escapes where possible instead of
-         using straight \C-x for control character `x'.  Change callers
-       - _rl_untranslate_macro_value: now global
-
-lib/readline/rlprivate.h
-       - _rl_untranslate_macro_value: extern declaration
-
-lib/readline/{macro.c,readline.h}
-       - rl_print_last_kbd_macro: new bindable function, inspired by patch
-         from Mitchel Humpherys
-
-lib/readline/funmap.c
-       - print-last-kbd-macro: new bindable command, bound to
-         rl_print_last_kbd_macro
-
-lib/readline/doc/{rluser.texi,readline.3},doc/bash.1
-       - print-last-kbd-macro: document.
-
-lib/readline/text.c
-       - _rl_insert_next: if we're defining a macro, make sure the key gets
-         added to the macro text (should really audit calls to rl_read_key()
-         and make sure the right thing is happening for all of them)
-
-bashline.[ch]
-       - print_unix_command_map: new function, prints all bound commands in
-         cmd_xmap using rl_macro_dumper in a reusable format
-
-builtins/bind.def
-       - new -X option: print all keysequences bound to Unix commands using
-         print_unix_command_map.  Feature suggested by Dennis Williamson
-         (2/2011)
-
-doc/{bash.1,bashref.texi}
-       - document new `bind -X' option
-
-                                  12/24
-                                  -----
-
-doc/{bash.1,bashref.texi}
-       - add a couple of sentences to the description of the case modification
-         operators making it clearer that each character of parameter is
-         tested against the pattern, and that the pattern should only attempt
-         to match a single character.  Suggested by Bill Gradwohl
-         <bill@ycc.com>
-
-                                  12/28
-                                  -----
-shell.c
-       - init_noninteractive: instead of calling set_job_control(0) to
-         unconditionally turn off job control, turn on job control if
-         forced_interactive or jobs_m_flag is set
-       - shell_initialize: call initialize_job_control with jobs_m_flag as
-         argument so `bash -m script' enables job control while running the
-         script
-
-jobs.c
-       - initialize_job_control: if the `force' argument is non-zero, turn on
-         job control even if the shell is not currently interactive
-         (interactive == 0)
-
-                                  12/29
-                                  -----
-
-flags.h
-       - new extern declaration for jobs_m_flag
-
-builtins/{cd,set}.def,doc/{bash.1,bashref.texi}
-       - added text clarifying the descriptions of cd -L and -P, suggested by
-         Padraig Brady <p@draigbrady.com>
-       - slight change to the description of `set -P' about resolving symbolic
-         links
-
-lib/readline/doc/rluser.texi
-       - Added an example to the programmable completion section: _comp_cd,
-         a completion function for cd, with additional verbiage.  Text
-         includes a reference to the bash_completion project
-
-                                1/1/2012
-                                --------
-jobs.c
-       - set_job_status_and_cleanup: note that a job is stopped due to
-         SIGTSTP (any_tstped) if job_control is set; there's no need to
-         test interactive
-
-                                   1/5
-                                   ---
-quit.h
-       - LASTSIG(): new macro, expands to signal number of last terminating
-         signal received (terminating_signal or SIGINT)
-
-trap.c
-       - first_pending_trap: returns lowest signal number with a trap pending
-       - trapped_signal_received: set to the last trapped signal the shell
-         received in trap_handler(); reset to 0 in run_pending_traps
-
-builtins/read.def
-       - read_builtin: changes to posix-mode (posixly_correct != 0) to make
-         `read' interruptible by a trapped signal.  After the trap runs,
-         read returns 128+sig and does not assign the partially-read line
-         to the named variable(s).  From an austin-group discussion started
-         by David Korn
-
-                                  1/11
-                                  ----
-doc/{bash.1,bashref.texi}
-       - slight changes to the descriptions of the compat32 and compat40 shell
-         options to clarify their meaning
-
-                                  1/12
-                                  ----
-lib/readline/{colors.[ch],parse-colors.[ch]}
-       - new files, part of color infrastructure support
-
-Makefile.in,lib/readline/Makefile.in
-       - arrange to have colors.o and parse-colors.o added to readline
-         library
-
-{configure,config.h}.in
-       - check for stdbool.h, define HAVE_STDBOOL_H if found
-
-                                  1/14
-                                  ----
-lib/readline/bind.c
-       - colored_stats: new bindable variable, enables using colors to
-         indicate file type when listing completions
-
-lib/readline/complete.c
-       - _rl_colored_stats: new variable, controlled by colored-stats bindable
-         variable
-       - colored_stat_start, colored_stat_end: new functions to set and reset
-         the terminal color appropriately depending on the type of the
-         filename to be printed
-       - print_filename: changes to print colors if `colored-stats' variable
-         set.  Changes contributed by Raphael Droz
-         <raphael.droz+floss@gmail.com>
-
-lib/readline/readline.c
-       - rl_initialize_everything: add call to _rl_parse_colors to parse
-         color values out of $LS_COLORS.  May have to add to rl_initialize
-         to make more dynamic if LS_COLORS changes (which doesn't happen
-         very often, if at all)
-
-lib/readline/rlprivate.h
-       - _rl_colored_stats: new extern declaration
-
-lib/readline/doc/{readline.3,rluser.texi},doc/bash.1
-       - colored-stats: document new bindable readline variable
-
-lib/readline/colors.c
-       - _rl_print_color_indicator: call rl_filename_stat_hook before calling
-         lstat/stat so we can get color indicators for stuff like
-         $HOME/Applications
-
-lib/readline/complete.c
-       - stat_char: call rl_filename_stat_hook before calling lstat/stat
-
-findcmd.[ch],execute_cmd.c
-       - search_for_command: now takes a second `flags' argument; changed
-         header function prototype and callers
-       - search_for_command: if (flags & 1), put the command found in $PATH
-         into the command hash table (previous default behavior)
-
-execute_cmd.c
-       - is_dirname: call search_for_command with flags argument of 0 so it
-         doesn't try to put something in the command hash table
-
-bashline.c
-       - bash_command_name_stat_hook: a hook function for readline's
-         filename_stat_hook that does $PATH searching the same way that
-         execute_cmd.c:execute_disk_command() does it, and rewrites the
-         passed filename if found.  Does not put names into command hash
-         table.  This allows command name completion to take advantage
-         of `visible-stats' and `colored-stats' settings.
-       - executable_completion: new function, calls the directory completion
-         hook to expand the filename before calling executable_file or
-         executable_or_directory; change command_word_completion_function to
-         call executable_completion.  This allows $HOME/bin/[TAB] to do
-         command completion and display alternatives
-
-                                  1/17
-                                  ----
-pcomplete.c
-       - gen_command_matches: now takes a new second argument: the command
-         name as deciphered by the programmable completion code and used
-         to look up the compspec; changed callers (gen_compspec_completions)
-       - gen_shell_function_matches: now takes a new second argument: the
-         command that originally caused the completion function to be
-         invoked; changed callers (gen_compspec_completions))
-       - build_arg_list: now takes a new second argument: the command name
-         corresponding to the current compspec; changed callers
-         (gen_command_matches, gen_shell_function_matches)
-       - build_arg_list: now uses `cmd' argument to create $1 passed to
-         invoked command or shell function
-       - gen_compspec_completions: if we skipped a null command at the
-         beginning of the line (e.g., for completing `>'), add a new word for
-         it at the beginning of the word list and increment nw and cw
-         appropriately.  This is all a partial fix for the shortcoming
-         pointed out by Sung Pae <sungpae@gmail.com>
-
-                                  1/18
-                                  ----
-
-{configure,config.h}.in
-       - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
-         define HAVE_DECL_AUDIT_USER_TTY if both are found
-
-lib/readline/rlconf.h
-       - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel
-         tty auditing system if it's available and enabled
-
-lib/readline/util.c
-       - _rl_audit_tty: new function, send a string to the kernel tty audit
-         system
-
-lib/readline/rlprivate.h
-       - _rl_audit_tty: new extern declaration
-
-lib/readline/readline.c
-       - readline: call _rl_audit_tty with line to be returned before returning
-         it if the Linux tty audit system is available and it's been enabled
-         in rlconf.h  Original patch from Miroslav Trmac; recent request
-         from Miroslav Lichvar <mlichvar@redhat.com>
-
-                                  1/21
-                                  ----
-
-lib/readline/readline.c:
-       - _rl_dispatch_subseq: add an inter-character timeout for multi-char
-         key sequences.  Suggested by <rogerx.oss@gmail.com>.  Still needs
-         work to make a user-settable variable
-
-parse.y
-       - shell_getc: make code that uses the pop_alias dependent on ALIAS
-         define
-
-variables.h
-       - sv_tz: extern define should only depend on HAVE_TZSET
-
-expr.c
-       - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1;
-         move assignment to `ind' inside define
-       - expr_bind_array_element: declaration and uses need to be #ifdef
-         ARRAY_VARS
-
-arrayfunc.h
-       - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not
-         defined; used in subst.c unconditionally
-
-sig.h
-       - make the signal blocking functions not dependent on JOB_CONTROL
-
-sig.c
-       - sigprocmask: make the replacement definition not dependent on
-         JOB_CONTROL
-
-trap.c
-       - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
-         HAVE_POSIX_SIGNALS and BSD signals
-
-                                  1/24
-                                  ----
-print_cmd.c
-       - print_redirection_list: change the conditions under which
-         r_duplicating_output_word is mapped to r_err_and_out to more or
-         less match those used in redir.c.  Fixes bug pointed out by
-         Dan Douglas <ormaaj@gmail.com>
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..d2d81b30264de22e87ad5e1fd72c45243b6b109a
--- /dev/null
@@ -0,0 +1 @@
+CWRU.chlog
\ No newline at end of file
diff --git a/CWRU/old/set.def.save b/CWRU/old/set.def.save
new file mode 100644 (file)
index 0000000..87b78d7
--- /dev/null
@@ -0,0 +1,544 @@
+This file is set.def, from which is created set.c.
+It implements the "set" and "unset" builtins in Bash.
+
+Copyright (C) 1987, 1989, 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 1, 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; see the file COPYING.  If not, write to the Free Software
+Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+$PRODUCES set.c
+
+#include <stdio.h>
+#include "../shell.h"
+#include "../flags.h"
+
+#include "bashgetopt.h"
+
+extern int interactive;
+extern int noclobber, posixly_correct;
+#if defined (READLINE)
+extern int rl_editing_mode, no_line_editing;
+#endif /* READLINE */
+
+$BUILTIN set
+$FUNCTION set_builtin
+$SHORT_DOC set [--abefhkmnptuvxldBCHP] [-o option] [arg ...]
+    -a  Mark variables which are modified or created for export.
+    -b  Notify of job termination immediately.
+    -e  Exit immediately if a command exits with a non-zero status.
+    -f  Disable file name generation (globbing).
+    -h  Locate and remember function commands as functions are
+        defined.  Function commands are normally looked up when
+        the function is executed.
+    -i  Force the shell to be an "interactive" one.  Interactive shells
+        always read `~/.bashrc' on startup.
+    -k  All keyword arguments are placed in the environment for a
+        command, not just those that precede the command name.
+    -m  Job control is enabled.
+    -n  Read commands but do not execute them.
+    -o option-name
+        Set the variable corresponding to option-name:
+            allexport    same as -a
+            braceexpand  same as -B
+#if defined (READLINE)
+            emacs        use an emacs-style line editing interface
+#endif /* READLINE */
+            errexit      same as -e
+            histexpand   same as -H
+            ignoreeof    the shell will not exit upon reading EOF
+            interactive-comments
+                         allow comments to appear in interactive commands
+            monitor      same as -m
+            noclobber    disallow redirection to existing files
+            noexec       same as -n
+            noglob       same as -f
+            nohash       same as -d
+            notify       save as -b
+            nounset      same as -u
+           physical     same as -P
+           posix        change the behavior of bash where the default
+                        operation differs from the 1003.2 standard to
+                        match the standard
+           privileged   same as -p
+            verbose      same as -v
+#if defined (READLINE)
+            vi           use a vi-style line editing interface
+#endif /* READLINE */
+            xtrace       same as -x
+    -p  Turned on whenever the real and effective user ids do not match.
+        Disables processing of the $ENV file and importing of shell
+        functions.  Turning this option off causes the effective uid and
+       gid to be set to the real uid and gid.
+    -t  Exit after reading and executing one command.
+    -u  Treat unset variables as an error when substituting.
+    -v  Print shell input lines as they are read.
+    -x  Print commands and their arguments as they are executed.
+    -l  Save and restore the binding of the NAME in a FOR command.
+    -d  Disable the hashing of commands that are looked up for execution.
+        Normally, commands are remembered in a hash table, and once
+        found, do not have to be looked up again.
+#if defined (BRACE_EXPANSION)
+    -B  the shell will perform brace expansion
+#endif /* BRACE_EXPANSION */
+#if defined (BANG_HISTORY)
+    -H  Enable ! style history substitution.  This flag is on
+        by default.
+#endif /* BANG_HISTORY */
+    -C  If set, disallow existing regular files to be overwritten
+        by redirection of output.
+    -P  If set, do not follow symbolic links when executing commands
+        such as cd which change the current directory.
+
+Using + rather than - causes these flags to be turned off.  The
+flags can also be used upon invocation of the shell.  The current
+set of flags may be found in $-.  The remaining n ARGs are positional
+parameters and are assigned, in order, to $1, $2, .. $n.  If no
+ARGs are given, all shell variables are printed.
+$END
+
+/* An a-list used to match long options for set -o to the corresponding
+   option letter. */
+struct {
+  char *name;
+  int letter;
+} o_options[] = {
+  { "allexport",  'a' },
+#if defined (BRACE_EXPANSION)
+  { "braceexpand",'B' },
+#endif
+  { "errexit",   'e' },
+  { "histexpand", 'H' },
+  { "monitor",   'm' },
+  { "noexec",    'n' },
+  { "noglob",    'f' },
+  { "nohash",    'd' },
+#if defined (JOB_CONTROL)
+  { "notify",    'b' },
+#endif /* JOB_CONTROL */
+  {"nounset",    'u' },
+  {"physical",    'P' },
+  {"privileged",  'p' },
+  {"verbose",    'v' },
+  {"xtrace",     'x' },
+  {(char *)NULL, 0},
+};
+
+#define MINUS_O_FORMAT "%-15s\t%s\n"
+
+void
+list_minus_o_opts ()
+{
+  register int i;
+  char *on = "on", *off = "off";
+
+  printf (MINUS_O_FORMAT, "noclobber", (noclobber == 1) ? on : off);
+
+  if (find_variable ("ignoreeof") || find_variable ("IGNOREEOF"))
+    printf (MINUS_O_FORMAT, "ignoreeof", on);
+  else
+    printf (MINUS_O_FORMAT, "ignoreeof", off);
+
+  printf (MINUS_O_FORMAT, "interactive-comments",
+         interactive_comments ? on : off);
+
+  printf (MINUS_O_FORMAT, "posix", posixly_correct ? on : off);
+
+#if defined (READLINE)
+  if (no_line_editing)
+    {
+      printf (MINUS_O_FORMAT, "emacs", off);
+      printf (MINUS_O_FORMAT, "vi", off);
+    }
+  else
+    {
+      /* Magic.  This code `knows' how readline handles rl_editing_mode. */
+      printf (MINUS_O_FORMAT, "emacs", (rl_editing_mode == 1) ? on : off);
+      printf (MINUS_O_FORMAT, "vi", (rl_editing_mode == 0) ? on : off);
+    }
+#endif /* READLINE */
+
+  for (i = 0; o_options[i].name; i++)
+    {
+      int *on_or_off, zero = 0;
+
+      on_or_off = find_flag (o_options[i].letter);
+      if (on_or_off == FLAG_UNKNOWN)
+       on_or_off = &zero;
+      printf (MINUS_O_FORMAT, o_options[i].name, (*on_or_off == 1) ? on : off);
+    }
+}
+
+set_minus_o_option (on_or_off, option_name)
+     int on_or_off;
+     char *option_name;
+{
+  int option_char = -1;
+
+  if (STREQ (option_name, "noclobber"))
+    {
+      if (on_or_off == FLAG_ON)
+       bind_variable ("noclobber", "");
+      else
+       unbind_variable ("noclobber");
+      stupidly_hack_special_variables ("noclobber");
+    }
+  else if (STREQ (option_name, "ignoreeof"))
+    {
+      unbind_variable ("ignoreeof");
+      unbind_variable ("IGNOREEOF");
+      if (on_or_off == FLAG_ON)
+       bind_variable ("IGNOREEOF", "10");
+      stupidly_hack_special_variables ("IGNOREEOF");
+    }
+  
+#if defined (READLINE)
+  else if ((STREQ (option_name, "emacs")) || (STREQ (option_name, "vi")))
+    {
+      if (on_or_off == FLAG_ON)
+       {
+         rl_variable_bind ("editing-mode", option_name);
+
+         if (interactive)
+           with_input_from_stdin ();
+         no_line_editing = 0;
+       }
+      else
+       {
+         int isemacs = (rl_editing_mode == 1);
+         if ((isemacs && STREQ (option_name, "emacs")) ||
+             (!isemacs && STREQ (option_name, "vi")))
+           {
+             if (interactive)
+               with_input_from_stream (stdin, "stdin");
+             no_line_editing = 1;
+           }
+         else
+           builtin_error ("not in %s editing mode", option_name);
+       }
+    }
+#endif /* READLINE */
+  else if (STREQ (option_name, "interactive-comments"))
+    interactive_comments = (on_or_off == FLAG_ON);
+  else if (STREQ (option_name, "posix"))
+    {
+      posixly_correct = (on_or_off == FLAG_ON);
+      unbind_variable ("POSIXLY_CORRECT");
+      unbind_variable ("POSIX_PEDANTIC");
+      if (on_or_off == FLAG_ON)
+       {
+         bind_variable ("POSIXLY_CORRECT", "");
+         stupidly_hack_special_variables ("POSIXLY_CORRECT");
+       }
+    }
+  else
+    {
+      register int i;
+      for (i = 0; o_options[i].name; i++)
+       {
+         if (STREQ (option_name, o_options[i].name))
+           {
+             option_char = o_options[i].letter;
+             break;
+           }
+       }
+      if (option_char == -1)
+       {
+         builtin_error ("%s: unknown option name", option_name);
+         return (EXECUTION_FAILURE);
+       }
+      if (change_flag (option_char, on_or_off) == FLAG_ERROR)
+       {
+         bad_option (option_name);
+         return (EXECUTION_FAILURE);
+       }
+    }
+  return (EXECUTION_SUCCESS);
+}
+
+/* Set some flags from the word values in the input list.  If LIST is empty,
+   then print out the values of the variables instead.  If LIST contains
+   non-flags, then set $1 - $9 to the successive words of LIST. */
+set_builtin (list)
+     WORD_LIST *list;
+{
+  int on_or_off, flag_name, force_assignment = 0;
+
+  if (!list)
+    {
+      SHELL_VAR **vars;
+
+      vars = all_shell_variables ();
+      if (vars)
+       {
+         print_var_list (vars);
+         free (vars);
+       }
+
+      vars = all_shell_functions ();
+      if (vars)
+       {
+         print_var_list (vars);
+         free (vars);
+       }
+
+      return (EXECUTION_SUCCESS);
+    }
+
+  /* Check validity of flag arguments. */
+  if (*list->word->word == '-' || *list->word->word == '+')
+    {
+      register char *arg;
+      WORD_LIST *save_list = list;
+
+      while (list && (arg = list->word->word))
+       {
+         char c;
+
+         if (arg[0] != '-' && arg[0] != '+')
+           break;
+
+         /* `-' or `--' signifies end of flag arguments. */
+         if (arg[0] == '-' &&
+             (!arg[1] || (arg[1] == '-' && !arg[2])))
+           break;
+
+         while (c = *++arg)
+           {
+             if (find_flag (c) == FLAG_UNKNOWN && c != 'o')
+               {
+                 char s[2];
+                 s[0] = c; s[1] = '\0';
+                 bad_option (s);
+                 if (c == '?')
+                   builtin_usage ();
+                 return (c == '?' ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
+               }
+           }
+         list = list->next;
+       }
+      list = save_list;
+    }
+
+  /* Do the set command.  While the list consists of words starting with
+     '-' or '+' treat them as flags, otherwise, start assigning them to
+     $1 ... $n. */
+  while (list)
+    {
+      char *string = list->word->word;
+
+      /* If the argument is `--' or `-' then signal the end of the list
+        and remember the remaining arguments. */
+      if (string[0] == '-' && (!string[1] || (string[1] == '-' && !string[2])))
+       {
+         list = list->next;
+
+         /* `set --' unsets the positional parameters. */
+         if (string[1] == '-')
+           force_assignment = 1;
+
+         /* Until told differently, the old shell behaviour of
+            `set - [arg ...]' being equivalent to `set +xv [arg ...]'
+            stands.  Posix.2 says the behaviour is marked as obsolescent. */
+         else
+           {
+             change_flag ('x', '+');
+             change_flag ('v', '+');
+           }
+
+         break;
+       }
+
+      if ((on_or_off = *string) &&
+         (on_or_off == '-' || on_or_off == '+'))
+       {
+         int i = 1;
+         while (flag_name = string[i++])
+           {
+             if (flag_name == '?')
+               {
+                 builtin_usage ();
+                 return (EXECUTION_SUCCESS);
+               }
+             else if (flag_name == 'o') /* -+o option-name */
+               {
+                 char *option_name;
+                 WORD_LIST *opt;
+
+                 opt = list->next;
+
+                 if (!opt)
+                   {
+                     list_minus_o_opts ();
+                     continue;
+                   }
+
+                 option_name = opt->word->word;
+
+                 if (!option_name || !*option_name || (*option_name == '-'))
+                   {
+                     list_minus_o_opts ();
+                     continue;
+                   }
+                 list = list->next; /* Skip over option name. */
+
+                 if (set_minus_o_option (on_or_off, option_name) != EXECUTION_SUCCESS)
+                   return (EXECUTION_FAILURE);
+               }
+             else
+               {
+                 if (change_flag (flag_name, on_or_off) == FLAG_ERROR)
+                   {
+                     char opt[3];
+                     opt[0] = on_or_off;
+                     opt[1] = flag_name;
+                     opt[2] = '\0';
+                     bad_option (opt);
+                     builtin_usage ();
+                     return (EXECUTION_FAILURE);
+                   }
+               }
+           }
+       }
+      else
+       {
+         break;
+       }
+      list = list->next;
+    }
+
+  /* Assigning $1 ... $n */
+  if (list || force_assignment)
+    remember_args (list, 1);
+  return (EXECUTION_SUCCESS);
+}
+
+$BUILTIN unset
+$FUNCTION unset_builtin
+$SHORT_DOC unset [-f] [-v] [name ...]
+For each NAME, remove the corresponding variable or function.  Given
+the `-v', unset will only act on variables.  Given the `-f' flag,
+unset will only act on functions.  With neither flag, unset first
+tries to unset a variable, and if that fails, then tries to unset a
+function.  Some variables (such as PATH and IFS) cannot be unset; also
+see readonly.
+$END
+
+#define NEXT_VARIABLE()        any_failed++; list = list->next; continue;
+
+unset_builtin (list)
+  WORD_LIST *list;
+{
+  int unset_function, unset_variable, unset_array, opt, any_failed;
+  char *name;
+
+  unset_function = unset_variable = unset_array = any_failed = 0;
+
+  reset_internal_getopt ();
+  while ((opt = internal_getopt (list, "fv")) != -1)
+    {
+      switch (opt)
+       {
+       case 'f':
+         unset_function = 1;
+         break;
+       case 'v':
+         unset_variable = 1;
+         break;
+       default:
+         builtin_usage ();
+         return (EXECUTION_FAILURE);
+       }
+    }
+
+  list = loptend;
+
+  if (unset_function && unset_variable)
+    {
+      builtin_error ("cannot simultaneously unset a function and a variable");
+      return (EXECUTION_FAILURE);
+    }
+
+  while (list)
+    {
+      SHELL_VAR *var;
+      int tem;
+#if defined (ARRAY_VARS)
+      char *t;
+#endif
+
+      name = list->word->word;
+
+#if defined (ARRAY_VARS)
+      if (!unset_function && valid_array_reference (name))
+       {
+         t = strchr (name, '[');
+         *t++ = '\0';
+         unset_array++;
+       }
+#endif
+
+      var = unset_function ? find_function (name) : find_variable (name);
+
+      if (var && !unset_function && non_unsettable_p (var))
+       {
+         builtin_error ("%s: cannot unset", name);
+         NEXT_VARIABLE ();
+       }
+
+      /* Posix.2 says that unsetting readonly variables is an error. */
+      if (var && readonly_p (var))
+       {
+         builtin_error ("%s: cannot unset: readonly %s",
+                        name, unset_function ? "function" : "variable");
+         NEXT_VARIABLE ();
+       }
+
+      /* Unless the -f option is supplied, the name refers to a variable. */
+#if defined (ARRAY_VARS)
+      if (var && unset_array)
+       {
+         if (array_p (var) == 0)
+           {
+             builtin_error ("%s: not an array variable", name);
+             NEXT_VARIABLE ();
+           }
+         else
+           tem = unbind_array_element (var, t);
+       }
+      else
+#endif /* ARRAY_VARS */
+      tem = makunbound (name, unset_function ? shell_functions : shell_variables);
+
+      /* This is what Posix.2 draft 11+ says.  ``If neither -f nor -v
+        is specified, the name refers to a variable; if a variable by
+        that name does not exist, a function by that name, if any,
+        shall be unset.'' */
+      if ((tem == -1) && !unset_function && !unset_variable)
+       tem = makunbound (name, shell_functions);
+
+      if (tem == -1)
+       any_failed++;
+      else if (!unset_function)
+       stupidly_hack_special_variables (name);
+
+      list = list->next;
+    }
+
+  if (any_failed)
+    return (EXECUTION_FAILURE);
+  else
+    return (EXECUTION_SUCCESS);
+}
diff --git a/CWRU/save/unwind_prot.h.save b/CWRU/save/unwind_prot.h.save
new file mode 100644 (file)
index 0000000..998fd72
--- /dev/null
@@ -0,0 +1,50 @@
+/* unwind_prot.h - Macros and functions for hacking unwind protection. */
+
+/* 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 2, 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; see the file COPYING.  If not, write to the Free Software
+   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#if !defined (_UNWIND_PROT_H)
+#define _UNWIND_PROT_H
+
+/* Run a function without interrupts. */
+extern void begin_unwind_frame ();
+extern void discard_unwind_frame ();
+extern void run_unwind_frame ();
+extern void add_unwind_protect ();
+extern void remove_unwind_protect ();
+extern void run_unwind_protects ();
+extern void unwind_protect_var ();
+
+/* Define for people who like their code to look a certain way. */
+#define end_unwind_frame()
+
+/* How to protect an integer. */
+#define unwind_protect_int(X) unwind_protect_var (&(X), (char *)(X), sizeof (int))
+
+/* How to protect a pointer to a string. */
+#define unwind_protect_string(X) \
+  unwind_protect_var ((int *)&(X), (X), sizeof (char *))
+
+/* How to protect any old pointer. */
+#define unwind_protect_pointer(X) unwind_protect_string (X)
+
+/* How to protect the contents of a jmp_buf. */
+#define unwind_protect_jmp_buf(X) \
+  unwind_protect_var ((int *)(X), (char *)(X), sizeof (procenv_t))
+
+#endif /* _UNWIND_PROT_H */
index c4226943381c8d3cb9e7f1d69766a25e0c4229d3..fe67f7ecd812d71ac7eb6773c65b7a0643571421 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1132,6 +1132,8 @@ tests/type1.sub           f
 tests/type2.sub                f
 tests/type3.sub                f
 tests/type4.sub                f
+tests/unicode1.sub     f
+tests/unicode2.sub     f
 tests/varenv.right     f
 tests/varenv.sh                f
 tests/varenv1.sub      f
index 94d8d5c0956cf39b44f50a0cd1cafca4eb845d70..798fa5a9f5fd60d5dfa31e12942283a3db3ec6e3 100644 (file)
@@ -256,6 +256,7 @@ int dircomplete_spelling = 0;
 
 /* Expand directory names during word/filename completion. */
 int dircomplete_expand = 0;
+int dircomplete_expand_relpath = 0;
 
 /* When non-zero, perform `normal' shell quoting on completed filenames
    even when the completed name contains a directory name with a shell
@@ -2858,7 +2859,7 @@ bash_directory_expansion (dirname)
 
   d = savestring (*dirname);
 
-  if ((rl_directory_rewrite_hook) &&  (*rl_directory_rewrite_hook) (&d))
+  if ((rl_directory_rewrite_hook) && (*rl_directory_rewrite_hook) (&d))
     {
       free (*dirname);
       *dirname = d;
@@ -3084,11 +3085,31 @@ bash_directory_completion_hook (dirname)
       local_dirname = *dirname = new_dirname;
     }
 
+  /* no_symbolic_links == 0 -> use (default) logical view of the file system.
+     local_dirname[0] == '.' && local_dirname[1] == '/' means files in the
+     current directory (./).
+     local_dirname[0] == '.' && local_dirname[1] == 0 means relative pathnames
+     in the current directory (e.g., lib/sh).
+     XXX - should we do spelling correction on these? */
+
+  /* This is test as it was in bash-4.2: skip relative pathnames in current
+     directory.  Change test to
+      (local_dirname[0] != '.' || (local_dirname[1] && local_dirname[1] != '/'))
+     if we want to skip paths beginning with ./ also. */
   if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1]))
     {
       char *temp1, *temp2;
       int len1, len2;
 
+      /* If we have a relative path
+               (local_dirname[0] != '/' && local_dirname[0] != '.')
+        that is canonical after appending it to the current directory, then
+               temp1 = temp2+'/'
+        That is,
+               strcmp (temp1, temp2) == 0
+        after adding a slash to temp2 below.  It should be safe to not
+        change those.
+      */
       t = get_working_directory ("symlink-hook");
       temp1 = make_absolute (local_dirname, t);
       free (t);
@@ -3123,7 +3144,15 @@ bash_directory_completion_hook (dirname)
              temp2[len2 + 1] = '\0';
            }
        }
-      return_value |= STREQ (local_dirname, temp2) == 0;
+
+      /* dircomplete_expand_relpath == 0 means we want to leave relative
+        pathnames that are unchanged by canonicalization alone.
+        *local_dirname != '/' && *local_dirname != '.' == relative pathname
+        (consistent with general.c:absolute_pathname())
+        temp1 == temp2 (after appending a slash to temp2) means the pathname
+        is not changed by canonicalization as described above. */
+      if (dircomplete_expand_relpath || ((local_dirname[0] != '/' && local_dirname[0] != '.') && STREQ (temp1, temp2) == 0))
+       return_value |= STREQ (local_dirname, temp2) == 0;
       free (local_dirname);
       *dirname = temp2;
       free (temp1);
diff --git a/bashline.c~ b/bashline.c~
new file mode 100644 (file)
index 0000000..9773632
--- /dev/null
@@ -0,0 +1,4090 @@
+/* bashline.c -- Bash's interface to the readline library. */
+
+/* Copyright (C) 1987-2012 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 (READLINE)
+
+#include "bashtypes.h"
+#include "posixstat.h"
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#if defined (HAVE_GRP_H)
+#  include <grp.h>
+#endif
+
+#if defined (HAVE_NETDB_H)
+#  include <netdb.h>
+#endif
+
+#include <stdio.h>
+#include "chartypes.h"
+#include "bashansi.h"
+#include "bashintl.h"
+
+#include "shell.h"
+#include "input.h"
+#include "builtins.h"
+#include "bashhist.h"
+#include "bashline.h"
+#include "execute_cmd.h"
+#include "findcmd.h"
+#include "pathexp.h"
+#include "shmbutil.h"
+
+#include "builtins/common.h"
+
+#include <readline/rlconf.h>
+#include <readline/readline.h>
+#include <readline/history.h>
+
+#include <glob/glob.h>
+
+#if defined (ALIAS)
+#  include "alias.h"
+#endif
+
+#if defined (PROGRAMMABLE_COMPLETION)
+#  include "pcomplete.h"
+#endif
+
+/* These should agree with the defines for emacs_mode and vi_mode in
+   rldefs.h, even though that's not a public readline header file. */
+#ifndef EMACS_EDITING_MODE
+#  define NO_EDITING_MODE      -1
+#  define EMACS_EDITING_MODE    1
+#  define VI_EDITING_MODE       0
+#endif
+
+#define RL_BOOLEAN_VARIABLE_VALUE(s)   ((s)[0] == 'o' && (s)[1] == 'n' && (s)[2] == '\0')
+
+#if defined (BRACE_COMPLETION)
+extern int bash_brace_completion __P((int, int));
+#endif /* BRACE_COMPLETION */
+
+/* To avoid including curses.h/term.h/termcap.h and that whole mess. */
+extern int tputs __P((const char *string, int nlines, int (*outx)(int)));
+
+/* Forward declarations */
+
+/* Functions bound to keys in Readline for Bash users. */
+static int shell_expand_line __P((int, int));
+static int display_shell_version __P((int, int));
+static int operate_and_get_next __P((int, int));
+
+static int bash_ignore_filenames __P((char **));
+static int bash_ignore_everything __P((char **));
+
+#if defined (BANG_HISTORY)
+static char *history_expand_line_internal __P((char *));
+static int history_expand_line __P((int, int));
+static int tcsh_magic_space __P((int, int));
+#endif /* BANG_HISTORY */
+#ifdef ALIAS
+static int alias_expand_line __P((int, int));
+#endif
+#if defined (BANG_HISTORY) && defined (ALIAS)
+static int history_and_alias_expand_line __P((int, int));
+#endif
+
+static int bash_forward_shellword __P((int, int));
+static int bash_backward_shellword __P((int, int));
+static int bash_kill_shellword __P((int, int));
+static int bash_backward_kill_shellword __P((int, int));
+
+/* Helper functions for Readline. */
+static char *restore_tilde __P((char *, char *));
+
+static char *bash_filename_rewrite_hook __P((char *, int));
+
+static void bash_directory_expansion __P((char **));
+static int bash_filename_stat_hook __P((char **));
+static int bash_command_name_stat_hook __P((char **));
+static int bash_directory_completion_hook __P((char **));
+static int filename_completion_ignore __P((char **));
+static int bash_push_line __P((void));
+
+static int executable_completion __P((const char *, int));
+
+static rl_icppfunc_t *save_directory_hook __P((void));
+static void restore_directory_hook __P((rl_icppfunc_t));
+
+static void cleanup_expansion_error __P((void));
+static void maybe_make_readline_line __P((char *));
+static void set_up_new_line __P((char *));
+
+static int check_redir __P((int));
+static char **attempt_shell_completion __P((const char *, int, int));
+static char *variable_completion_function __P((const char *, int));
+static char *hostname_completion_function __P((const char *, int));
+static char *command_subst_completion_function __P((const char *, int));
+
+static void build_history_completion_array __P((void));
+static char *history_completion_generator __P((const char *, int));
+static int dynamic_complete_history __P((int, int));
+static int bash_dabbrev_expand __P((int, int));
+
+static void initialize_hostname_list __P((void));
+static void add_host_name __P((char *));
+static void snarf_hosts_from_file __P((char *));
+static char **hostnames_matching __P((char *));
+
+static void _ignore_completion_names __P((char **, sh_ignore_func_t *));
+static int name_is_acceptable __P((const char *));
+static int test_for_directory __P((const char *));
+static int return_zero __P((const char *));
+
+static char *bash_dequote_filename __P((char *, int));
+static char *quote_word_break_chars __P((char *));
+static void set_filename_bstab __P((const char *));
+static char *bash_quote_filename __P((char *, int, char *));
+
+static int putx __P((int));
+static int bash_execute_unix_command __P((int, int));
+static void init_unix_command_map __P((void));
+static int isolate_sequence __P((char *, int, int, int *));
+
+static int set_saved_history __P((void));
+
+#if defined (ALIAS)
+static int posix_edit_macros __P((int, int));
+#endif
+
+static int bash_event_hook __P((void));
+
+#if defined (PROGRAMMABLE_COMPLETION)
+static int find_cmd_start __P((int));
+static int find_cmd_end __P((int));
+static char *find_cmd_name __P((int, int *, int *));
+static char *prog_complete_return __P((const char *, int));
+
+static char **prog_complete_matches;
+#endif
+
+/* Variables used here but defined in other files. */
+#if defined (BANG_HISTORY)
+extern int hist_verify;
+#endif
+
+extern int current_command_line_count, saved_command_line_count;
+extern int last_command_exit_value;
+extern int array_needs_making;
+extern int posixly_correct, no_symbolic_links;
+extern char *current_prompt_string, *ps1_prompt;
+extern STRING_INT_ALIST word_token_alist[];
+extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
+
+/* SPECIFIC_COMPLETION_FUNCTIONS specifies that we have individual
+   completion functions which indicate what type of completion should be
+   done (at or before point) that can be bound to key sequences with
+   the readline library. */
+#define SPECIFIC_COMPLETION_FUNCTIONS
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+static int bash_specific_completion __P((int, rl_compentry_func_t *));
+
+static int bash_complete_filename_internal __P((int));
+static int bash_complete_username_internal __P((int));
+static int bash_complete_hostname_internal __P((int));
+static int bash_complete_variable_internal __P((int));
+static int bash_complete_command_internal __P((int));
+
+static int bash_complete_filename __P((int, int));
+static int bash_possible_filename_completions __P((int, int));
+static int bash_complete_username __P((int, int));
+static int bash_possible_username_completions __P((int, int));
+static int bash_complete_hostname __P((int, int));
+static int bash_possible_hostname_completions __P((int, int));
+static int bash_complete_variable __P((int, int));
+static int bash_possible_variable_completions __P((int, int));
+static int bash_complete_command __P((int, int));
+static int bash_possible_command_completions __P((int, int));
+
+static char *glob_complete_word __P((const char *, int));
+static int bash_glob_completion_internal __P((int));
+static int bash_glob_complete_word __P((int, int));
+static int bash_glob_expand_word __P((int, int));
+static int bash_glob_list_expansions __P((int, int));
+
+#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
+
+static int edit_and_execute_command __P((int, int, int, char *));
+#if defined (VI_MODE)
+static int vi_edit_and_execute_command __P((int, int));
+static int bash_vi_complete __P((int, int));
+#endif
+static int emacs_edit_and_execute_command __P((int, int));
+
+/* Non-zero once initalize_readline () has been called. */
+int bash_readline_initialized = 0;
+
+/* If non-zero, we do hostname completion, breaking words at `@' and
+   trying to complete the stuff after the `@' from our own internal
+   host list. */
+int perform_hostname_completion = 1;
+
+/* If non-zero, we don't do command completion on an empty line. */
+int no_empty_command_completion;
+
+/* Set FORCE_FIGNORE if you want to honor FIGNORE even if it ignores the
+   only possible matches.  Set to 0 if you want to match filenames if they
+   are the only possible matches, even if FIGNORE says to. */
+int force_fignore = 1;
+
+/* Perform spelling correction on directory names during word completion */
+int dircomplete_spelling = 0;
+
+/* Expand directory names during word/filename completion. */
+int dircomplete_expand = 0;
+int dircomplete_expand_relpath = 0;
+
+/* When non-zero, perform `normal' shell quoting on completed filenames
+   even when the completed name contains a directory name with a shell
+   variable referene, so dollar signs in a filename get quoted appropriately.
+   Set to zero to remove dollar sign (and braces or parens as needed) from
+   the set of characters that will be quoted. */
+int complete_fullquote = 1;
+
+static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
+static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
+/* )) */
+
+static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~";        /*}*/
+static char *custom_filename_quote_characters = 0;
+static char filename_bstab[256];
+
+static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL;
+
+static int dot_in_path = 0;
+
+/* Set to non-zero when dabbrev-expand is running */
+static int dabbrev_expand_active = 0;
+
+/* What kind of quoting is performed by bash_quote_filename:
+       COMPLETE_DQUOTE = double-quoting the filename
+       COMPLETE_SQUOTE = single_quoting the filename
+       COMPLETE_BSQUOTE = backslash-quoting special chars in the filename
+*/
+#define COMPLETE_DQUOTE  1
+#define COMPLETE_SQUOTE  2
+#define COMPLETE_BSQUOTE 3
+static int completion_quoting_style = COMPLETE_BSQUOTE;
+
+/* Flag values for the final argument to bash_default_completion */
+#define DEFCOMP_CMDPOS         1
+
+/* Change the readline VI-mode keymaps into or out of Posix.2 compliance.
+   Called when the shell is put into or out of `posix' mode. */
+void
+posix_readline_initialize (on_or_off)
+     int on_or_off;
+{
+  if (on_or_off)
+    rl_variable_bind ("comment-begin", "#");
+#if defined (VI_MODE)
+  rl_bind_key_in_map (CTRL ('I'), on_or_off ? rl_insert : rl_complete, vi_insertion_keymap);
+#endif
+}
+
+void
+reset_completer_word_break_chars ()
+{
+  rl_completer_word_break_characters = perform_hostname_completion ? savestring (bash_completer_word_break_characters) : savestring (bash_nohostname_word_break_characters);
+}
+
+/* When this function returns, rl_completer_word_break_characters points to
+   dynamically allocated memory. */
+int
+enable_hostname_completion (on_or_off)
+     int on_or_off;
+{
+  int old_value;
+  char *at, *nv, *nval;
+
+  old_value = perform_hostname_completion;
+
+  if (on_or_off)
+    {
+      perform_hostname_completion = 1;
+      rl_special_prefixes = "$@";
+    }
+  else
+    {
+      perform_hostname_completion = 0;
+      rl_special_prefixes = "$";
+    }
+
+  /* Now we need to figure out how to appropriately modify and assign
+     rl_completer_word_break_characters depending on whether we want
+     hostname completion on or off. */
+
+  /* If this is the first time this has been called
+     (bash_readline_initialized == 0), use the sames values as before, but
+     allocate new memory for rl_completer_word_break_characters. */
+
+  if (bash_readline_initialized == 0 &&
+      (rl_completer_word_break_characters == 0 || 
+       rl_completer_word_break_characters == rl_basic_word_break_characters))
+    {
+      if (on_or_off)
+       rl_completer_word_break_characters = savestring (bash_completer_word_break_characters);
+      else
+       rl_completer_word_break_characters = savestring (bash_nohostname_word_break_characters);
+    }
+  else
+    {
+      /* See if we have anything to do. */
+      at = strchr (rl_completer_word_break_characters, '@');
+      if ((at == 0 && on_or_off == 0) || (at != 0 && on_or_off != 0))
+        return old_value;
+
+      /* We have something to do.  Do it. */
+      nval = (char *)xmalloc (strlen (rl_completer_word_break_characters) + 1 + on_or_off);
+
+      if (on_or_off == 0)
+       {
+         /* Turn it off -- just remove `@' from word break chars.  We want
+            to remove all occurrences of `@' from the char list, so we loop
+            rather than just copy the rest of the list over AT. */
+         for (nv = nval, at = rl_completer_word_break_characters; *at; )
+           if (*at != '@')
+             *nv++ = *at++;
+           else
+             at++;
+         *nv = '\0';
+       }
+      else
+       {
+         nval[0] = '@';
+         strcpy (nval + 1, rl_completer_word_break_characters);
+        }
+
+      free (rl_completer_word_break_characters);
+      rl_completer_word_break_characters = nval;
+    }
+
+  return (old_value);
+}
+
+/* Called once from parse.y if we are going to use readline. */
+void
+initialize_readline ()
+{
+  rl_command_func_t *func;
+  char kseq[2];
+
+  if (bash_readline_initialized)
+    return;
+
+  rl_terminal_name = get_string_value ("TERM");
+  rl_instream = stdin;
+  rl_outstream = stderr;
+
+  /* Allow conditional parsing of the ~/.inputrc file. */
+  rl_readline_name = "Bash";
+
+  /* Add bindable names before calling rl_initialize so they may be
+     referenced in the various inputrc files. */
+  rl_add_defun ("shell-expand-line", shell_expand_line, -1);
+#ifdef BANG_HISTORY
+  rl_add_defun ("history-expand-line", history_expand_line, -1);
+  rl_add_defun ("magic-space", tcsh_magic_space, -1);
+#endif
+
+  rl_add_defun ("shell-forward-word", bash_forward_shellword, -1);
+  rl_add_defun ("shell-backward-word", bash_backward_shellword, -1);
+  rl_add_defun ("shell-kill-word", bash_kill_shellword, -1);
+  rl_add_defun ("shell-backward-kill-word", bash_backward_kill_shellword, -1);
+
+#ifdef ALIAS
+  rl_add_defun ("alias-expand-line", alias_expand_line, -1);
+#  ifdef BANG_HISTORY
+  rl_add_defun ("history-and-alias-expand-line", history_and_alias_expand_line, -1);
+#  endif
+#endif
+
+  /* Backwards compatibility. */
+  rl_add_defun ("insert-last-argument", rl_yank_last_arg, -1);
+
+  rl_add_defun ("operate-and-get-next", operate_and_get_next, -1);
+  rl_add_defun ("display-shell-version", display_shell_version, -1);
+  rl_add_defun ("edit-and-execute-command", emacs_edit_and_execute_command, -1);
+
+#if defined (BRACE_COMPLETION)
+  rl_add_defun ("complete-into-braces", bash_brace_completion, -1);
+#endif
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+  rl_add_defun ("complete-filename", bash_complete_filename, -1);
+  rl_add_defun ("possible-filename-completions", bash_possible_filename_completions, -1);
+  rl_add_defun ("complete-username", bash_complete_username, -1);
+  rl_add_defun ("possible-username-completions", bash_possible_username_completions, -1);
+  rl_add_defun ("complete-hostname", bash_complete_hostname, -1);
+  rl_add_defun ("possible-hostname-completions", bash_possible_hostname_completions, -1);
+  rl_add_defun ("complete-variable", bash_complete_variable, -1);
+  rl_add_defun ("possible-variable-completions", bash_possible_variable_completions, -1);
+  rl_add_defun ("complete-command", bash_complete_command, -1);
+  rl_add_defun ("possible-command-completions", bash_possible_command_completions, -1);
+  rl_add_defun ("glob-complete-word", bash_glob_complete_word, -1);
+  rl_add_defun ("glob-expand-word", bash_glob_expand_word, -1);
+  rl_add_defun ("glob-list-expansions", bash_glob_list_expansions, -1);
+#endif
+
+  rl_add_defun ("dynamic-complete-history", dynamic_complete_history, -1);
+  rl_add_defun ("dabbrev-expand", bash_dabbrev_expand, -1);
+
+  /* Bind defaults before binding our custom shell keybindings. */
+  if (RL_ISSTATE(RL_STATE_INITIALIZED) == 0)
+    rl_initialize ();
+
+  /* Bind up our special shell functions. */
+  rl_bind_key_if_unbound_in_map (CTRL('E'), shell_expand_line, emacs_meta_keymap);
+
+#ifdef BANG_HISTORY
+  rl_bind_key_if_unbound_in_map ('^', history_expand_line, emacs_meta_keymap);
+#endif
+
+  rl_bind_key_if_unbound_in_map (CTRL ('O'), operate_and_get_next, emacs_standard_keymap);
+  rl_bind_key_if_unbound_in_map (CTRL ('V'), display_shell_version, emacs_ctlx_keymap);
+
+  /* In Bash, the user can switch editing modes with "set -o [vi emacs]",
+     so it is not necessary to allow C-M-j for context switching.  Turn
+     off this occasionally confusing behaviour. */
+  kseq[0] = CTRL('J');
+  kseq[1] = '\0';
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == rl_vi_editing_mode)
+    rl_unbind_key_in_map (CTRL('J'), emacs_meta_keymap);
+  kseq[0] = CTRL('M');
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == rl_vi_editing_mode)
+    rl_unbind_key_in_map (CTRL('M'), emacs_meta_keymap);
+#if defined (VI_MODE)
+  rl_unbind_key_in_map (CTRL('E'), vi_movement_keymap);
+#endif
+
+#if defined (BRACE_COMPLETION)
+  rl_bind_key_if_unbound_in_map ('{', bash_brace_completion, emacs_meta_keymap); /*}*/
+#endif /* BRACE_COMPLETION */
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+  rl_bind_key_if_unbound_in_map ('/', bash_complete_filename, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('/', bash_possible_filename_completions, emacs_ctlx_keymap);
+
+  /* Have to jump through hoops here because there is a default binding for
+     M-~ (rl_tilde_expand) */
+  kseq[0] = '~';
+  kseq[1] = '\0';
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == 0 || func == rl_tilde_expand)
+    rl_bind_keyseq_in_map (kseq, bash_complete_username, emacs_meta_keymap);
+
+  rl_bind_key_if_unbound_in_map ('~', bash_possible_username_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('@', bash_complete_hostname, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('@', bash_possible_hostname_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('$', bash_complete_variable, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('$', bash_possible_variable_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('!', bash_complete_command, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('!', bash_possible_command_completions, emacs_ctlx_keymap);
+
+  rl_bind_key_if_unbound_in_map ('g', bash_glob_complete_word, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map ('*', bash_glob_expand_word, emacs_ctlx_keymap);
+  rl_bind_key_if_unbound_in_map ('g', bash_glob_list_expansions, emacs_ctlx_keymap);
+
+#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
+
+  kseq[0] = TAB;
+  kseq[1] = '\0';
+  func = rl_function_of_keyseq (kseq, emacs_meta_keymap, (int *)NULL);
+  if (func == 0 || func == rl_tab_insert)
+    rl_bind_key_in_map (TAB, dynamic_complete_history, emacs_meta_keymap);
+
+  /* Tell the completer that we want a crack first. */
+  rl_attempted_completion_function = attempt_shell_completion;
+
+  /* Tell the completer that we might want to follow symbolic links or
+     do other expansion on directory names. */
+  set_directory_hook ();
+
+  rl_filename_rewrite_hook = bash_filename_rewrite_hook;
+
+  rl_filename_stat_hook = bash_filename_stat_hook;
+
+  /* Tell the filename completer we want a chance to ignore some names. */
+  rl_ignore_some_completions_function = filename_completion_ignore;
+
+  /* Bind C-xC-e to invoke emacs and run result as commands. */
+  rl_bind_key_if_unbound_in_map (CTRL ('E'), emacs_edit_and_execute_command, emacs_ctlx_keymap);
+#if defined (VI_MODE)
+  rl_bind_key_if_unbound_in_map ('v', vi_edit_and_execute_command, vi_movement_keymap);
+#  if defined (ALIAS)
+  rl_bind_key_if_unbound_in_map ('@', posix_edit_macros, vi_movement_keymap);
+#  endif
+
+  rl_bind_key_in_map ('\\', bash_vi_complete, vi_movement_keymap);
+  rl_bind_key_in_map ('*', bash_vi_complete, vi_movement_keymap);
+  rl_bind_key_in_map ('=', bash_vi_complete, vi_movement_keymap);
+#endif
+
+  rl_completer_quote_characters = "'\"";
+
+  /* This sets rl_completer_word_break_characters and rl_special_prefixes
+     to the appropriate values, depending on whether or not hostname
+     completion is enabled. */
+  enable_hostname_completion (perform_hostname_completion);
+
+  /* characters that need to be quoted when appearing in filenames. */
+  rl_filename_quote_characters = default_filename_quote_characters;
+  set_filename_bstab (rl_filename_quote_characters);
+
+  rl_filename_quoting_function = bash_quote_filename;
+  rl_filename_dequoting_function = bash_dequote_filename;
+  rl_char_is_quoted_p = char_is_quoted;
+
+#if 0
+  /* This is superfluous and makes it impossible to use tab completion in
+     vi mode even when explicitly binding it in ~/.inputrc.  sv_strict_posix()
+     should already have called posix_readline_initialize() when
+     posixly_correct was set. */
+  if (posixly_correct)
+    posix_readline_initialize (1);
+#endif
+
+  bash_readline_initialized = 1;
+}
+
+void
+bashline_reinitialize ()
+{
+  bash_readline_initialized = 0;
+}
+
+void
+bashline_set_event_hook ()
+{
+  rl_event_hook = bash_event_hook;
+}
+
+void
+bashline_reset_event_hook ()
+{
+  rl_event_hook = 0;
+}
+
+/* On Sun systems at least, rl_attempted_completion_function can end up
+   getting set to NULL, and rl_completion_entry_function set to do command
+   word completion if Bash is interrupted while trying to complete a command
+   word.  This just resets all the completion functions to the right thing.
+   It's called from throw_to_top_level(). */
+void
+bashline_reset ()
+{
+  tilde_initialize ();
+  rl_attempted_completion_function = attempt_shell_completion;
+  rl_completion_entry_function = NULL;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+  rl_filename_quote_characters = default_filename_quote_characters;
+  set_filename_bstab (rl_filename_quote_characters);
+
+  set_directory_hook ();
+  rl_filename_stat_hook = bash_filename_stat_hook;
+}
+
+/* Contains the line to push into readline. */
+static char *push_to_readline = (char *)NULL;
+
+/* Push the contents of push_to_readline into the
+   readline buffer. */
+static int
+bash_push_line ()
+{
+  if (push_to_readline)
+    {
+      rl_insert_text (push_to_readline);
+      free (push_to_readline);
+      push_to_readline = (char *)NULL;
+      rl_startup_hook = old_rl_startup_hook;
+    }
+  return 0;
+}
+
+/* Call this to set the initial text for the next line to read
+   from readline. */
+int
+bash_re_edit (line)
+     char *line;
+{
+  FREE (push_to_readline);
+
+  push_to_readline = savestring (line);
+  old_rl_startup_hook = rl_startup_hook;
+  rl_startup_hook = bash_push_line;
+
+  return (0);
+}
+
+static int
+display_shell_version (count, c)
+     int count, c;
+{
+  rl_crlf ();
+  show_shell_version (0);
+  putc ('\r', rl_outstream);
+  fflush (rl_outstream);
+  rl_on_new_line ();
+  rl_redisplay ();
+  return 0;
+}
+
+/* **************************************************************** */
+/*                                                                 */
+/*                          Readline Stuff                         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* If the user requests hostname completion, then simply build a list
+   of hosts, and complete from that forever more, or at least until
+   HOSTFILE is unset. */
+
+/* THIS SHOULD BE A STRINGLIST. */
+/* The kept list of hostnames. */
+static char **hostname_list = (char **)NULL;
+
+/* The physical size of the above list. */
+static int hostname_list_size;
+
+/* The number of hostnames in the above list. */
+static int hostname_list_length;
+
+/* Whether or not HOSTNAME_LIST has been initialized. */
+int hostname_list_initialized = 0;
+
+/* Initialize the hostname completion table. */
+static void
+initialize_hostname_list ()
+{
+  char *temp;
+
+  temp = get_string_value ("HOSTFILE");
+  if (temp == 0)
+    temp = get_string_value ("hostname_completion_file");
+  if (temp == 0)
+    temp = DEFAULT_HOSTS_FILE;
+
+  snarf_hosts_from_file (temp);
+
+  if (hostname_list)
+    hostname_list_initialized++;
+}
+
+/* Add NAME to the list of hosts. */
+static void
+add_host_name (name)
+     char *name;
+{
+  if (hostname_list_length + 2 > hostname_list_size)
+    {
+      hostname_list_size = (hostname_list_size + 32) - (hostname_list_size % 32);
+      hostname_list = strvec_resize (hostname_list, hostname_list_size);
+    }
+
+  hostname_list[hostname_list_length++] = savestring (name);
+  hostname_list[hostname_list_length] = (char *)NULL;
+}
+
+#define cr_whitespace(c) ((c) == '\r' || (c) == '\n' || whitespace(c))
+
+static void
+snarf_hosts_from_file (filename)
+     char *filename;
+{
+  FILE *file;
+  char *temp, buffer[256], name[256];
+  register int i, start;
+
+  file = fopen (filename, "r");
+  if (file == 0)
+    return;
+
+  while (temp = fgets (buffer, 255, file))
+    {
+      /* Skip to first character. */
+      for (i = 0; buffer[i] && cr_whitespace (buffer[i]); i++)
+       ;
+
+      /* If comment or blank line, ignore. */
+      if (buffer[i] == '\0' || buffer[i] == '#')
+       continue;
+
+      /* If `preprocessor' directive, do the include. */
+      if (strncmp (buffer + i, "$include ", 9) == 0)
+       {
+         char *incfile, *t;
+
+         /* Find start of filename. */
+         for (incfile = buffer + i + 9; *incfile && whitespace (*incfile); incfile++)
+           ;
+
+         /* Find end of filename. */
+         for (t = incfile; *t && cr_whitespace (*t) == 0; t++)
+           ;
+
+         *t = '\0';
+
+         snarf_hosts_from_file (incfile);
+         continue;
+       }
+
+      /* Skip internet address if present. */
+      if (DIGIT (buffer[i]))
+       for (; buffer[i] && cr_whitespace (buffer[i]) == 0; i++);
+
+      /* Gobble up names.  Each name is separated with whitespace. */
+      while (buffer[i])
+       {
+         for (; cr_whitespace (buffer[i]); i++)
+           ;
+         if (buffer[i] == '\0' || buffer[i] ==  '#')
+           break;
+
+         /* Isolate the current word. */
+         for (start = i; buffer[i] && cr_whitespace (buffer[i]) == 0; i++)
+           ;
+         if (i == start)
+           continue;
+         strncpy (name, buffer + start, i - start);
+         name[i - start] = '\0';
+         add_host_name (name);
+       }
+    }
+  fclose (file);
+}
+
+/* Return the hostname list. */
+char **
+get_hostname_list ()
+{
+  if (hostname_list_initialized == 0)
+    initialize_hostname_list ();
+  return (hostname_list);
+}
+
+void
+clear_hostname_list ()
+{
+  register int i;
+
+  if (hostname_list_initialized == 0)
+    return;
+  for (i = 0; i < hostname_list_length; i++)
+    free (hostname_list[i]);
+  hostname_list_length = hostname_list_initialized = 0;
+}
+
+/* Return a NULL terminated list of hostnames which begin with TEXT.
+   Initialize the hostname list the first time if neccessary.
+   The array is malloc ()'ed, but not the individual strings. */
+static char **
+hostnames_matching (text)
+     char *text;
+{
+  register int i, len, nmatch, rsize;
+  char **result;
+
+  if (hostname_list_initialized == 0)
+    initialize_hostname_list ();
+
+  if (hostname_list_initialized == 0)
+    return ((char **)NULL);
+
+  /* Special case.  If TEXT consists of nothing, then the whole list is
+     what is desired. */
+  if (*text == '\0')
+    {
+      result = strvec_create (1 + hostname_list_length);
+      for (i = 0; i < hostname_list_length; i++)
+       result[i] = hostname_list[i];
+      result[i] = (char *)NULL;
+      return (result);
+    }
+
+  /* Scan until found, or failure. */
+  len = strlen (text);
+  result = (char **)NULL;
+  for (i = nmatch = rsize = 0; i < hostname_list_length; i++)
+    {
+      if (STREQN (text, hostname_list[i], len) == 0)
+       continue;
+
+      /* OK, it matches.  Add it to the list. */
+      if (nmatch >= (rsize - 1))
+       {
+         rsize = (rsize + 16) - (rsize % 16);
+         result = strvec_resize (result, rsize);
+       }
+
+      result[nmatch++] = hostname_list[i];
+    }
+  if (nmatch)
+    result[nmatch] = (char *)NULL;
+  return (result);
+}
+
+/* The equivalent of the Korn shell C-o operate-and-get-next-history-line
+   editing command. */
+static int saved_history_line_to_use = -1;
+static int last_saved_history_line = -1;
+
+#define HISTORY_FULL() (history_is_stifled () && history_length >= history_max_entries)
+
+static int
+set_saved_history ()
+{
+  /* XXX - compensate for assumption that history was `shuffled' if it was
+     actually not. */
+  if (HISTORY_FULL () &&
+      hist_last_line_added == 0 &&
+      saved_history_line_to_use < history_length - 1)
+    saved_history_line_to_use++;
+
+  if (saved_history_line_to_use >= 0)
+    {
+     rl_get_previous_history (history_length - saved_history_line_to_use, 0);
+     last_saved_history_line = saved_history_line_to_use;
+    }
+  saved_history_line_to_use = -1;
+  rl_startup_hook = old_rl_startup_hook;
+  return (0);
+}
+
+static int
+operate_and_get_next (count, c)
+     int count, c;
+{
+  int where;
+
+  /* Accept the current line. */
+  rl_newline (1, c);
+
+  /* Find the current line, and find the next line to use. */
+  where = where_history ();
+
+  if (HISTORY_FULL () || (where >= history_length - 1))
+    saved_history_line_to_use = where;
+  else
+    saved_history_line_to_use = where + 1;
+
+  old_rl_startup_hook = rl_startup_hook;
+  rl_startup_hook = set_saved_history;
+
+  return 0;
+}
+
+/* This vi mode command causes VI_EDIT_COMMAND to be run on the current
+   command being entered (if no explicit argument is given), otherwise on
+   a command from the history file. */
+
+#define VI_EDIT_COMMAND                "fc -e \"${VISUAL:-${EDITOR:-vi}}\""
+#define EMACS_EDIT_COMMAND     "fc -e \"${VISUAL:-${EDITOR:-emacs}}\""
+#define POSIX_VI_EDIT_COMMAND  "fc -e vi"
+
+static int
+edit_and_execute_command (count, c, editing_mode, edit_command)
+     int count, c, editing_mode;
+     char *edit_command;
+{
+  char *command, *metaval;
+  int r, rrs, metaflag;
+  sh_parser_state_t ps;
+
+  rrs = rl_readline_state;
+  saved_command_line_count = current_command_line_count;
+
+  /* Accept the current line. */
+  rl_newline (1, c);
+
+  if (rl_explicit_arg)
+    {
+      command = (char *)xmalloc (strlen (edit_command) + 8);
+      sprintf (command, "%s %d", edit_command, count);
+    }
+  else
+    {
+      /* Take the command we were just editing, add it to the history file,
+        then call fc to operate on it.  We have to add a dummy command to
+        the end of the history because fc ignores the last command (assumes
+        it's supposed to deal with the command before the `fc'). */
+      /* This breaks down when using command-oriented history and are not
+        finished with the command, so we should not ignore the last command */
+      using_history ();
+      bash_add_history (rl_line_buffer);
+      bash_add_history ("");
+      history_lines_this_session++;
+      using_history ();
+      command = savestring (edit_command);
+    }
+
+  metaval = rl_variable_value ("input-meta");
+  metaflag = RL_BOOLEAN_VARIABLE_VALUE (metaval);
+  
+  /* Now, POSIX.1-2001 and SUSv3 say that the commands executed from the
+     temporary file should be placed into the history.  We don't do that
+     yet. */
+  if (rl_deprep_term_function)
+    (*rl_deprep_term_function) ();
+  save_parser_state (&ps);
+  r = parse_and_execute (command, (editing_mode == VI_EDITING_MODE) ? "v" : "C-xC-e", SEVAL_NOHIST);
+  restore_parser_state (&ps);
+  if (rl_prep_term_function)
+    (*rl_prep_term_function) (metaflag);
+
+  current_command_line_count = saved_command_line_count;
+
+  /* Now erase the contents of the current line and undo the effects of the
+     rl_accept_line() above.  We don't even want to make the text we just
+     executed available for undoing. */
+  rl_line_buffer[0] = '\0';    /* XXX */
+  rl_point = rl_end = 0;
+  rl_done = 0;
+  rl_readline_state = rrs;
+
+  rl_forced_update_display ();
+
+  return r;
+}
+
+#if defined (VI_MODE)
+static int
+vi_edit_and_execute_command (count, c)
+     int count, c;
+{
+  if (posixly_correct)
+    return (edit_and_execute_command (count, c, VI_EDITING_MODE, POSIX_VI_EDIT_COMMAND));
+  else
+    return (edit_and_execute_command (count, c, VI_EDITING_MODE, VI_EDIT_COMMAND));
+}
+#endif /* VI_MODE */
+
+static int
+emacs_edit_and_execute_command (count, c)
+     int count, c;
+{
+  return (edit_and_execute_command (count, c, EMACS_EDITING_MODE, EMACS_EDIT_COMMAND));
+}
+
+#if defined (ALIAS)
+static int
+posix_edit_macros (count, key)
+     int count, key;
+{
+  int c;
+  char alias_name[3], *alias_value, *macro;
+
+  c = rl_read_key ();
+  alias_name[0] = '_';
+  alias_name[1] = c;
+  alias_name[2] = '\0';
+
+  alias_value = get_alias_value (alias_name);
+  if (alias_value && *alias_value)
+    {
+      macro = savestring (alias_value);
+      rl_push_macro_input (macro);
+    }
+  return 0;
+}
+#endif
+
+/* Bindable commands that move `shell-words': that is, sequences of
+   non-unquoted-metacharacters. */
+
+#define WORDDELIM(c)   (shellmeta(c) || shellblank(c))
+
+static int
+bash_forward_shellword (count, key)
+     int count, key;
+{
+  size_t slen;
+  int sindex, c, p;
+  DECLARE_MBSTATE;
+
+  if (count < 0)
+    return (bash_backward_shellword (-count, key));
+
+  /* The tricky part of this is deciding whether or not the first character
+     we're on is an unquoted metacharacter.  Not completely handled yet. */
+  /* XXX - need to test this stuff with backslash-escaped shell
+     metacharacters and unclosed single- and double-quoted strings. */
+
+  p = rl_point;
+  slen = rl_end;
+
+  while (count)
+    {
+      if (p == rl_end)
+       {
+         rl_point = rl_end;
+         return 0;
+       }
+
+      /* Are we in a quoted string?  If we are, move to the end of the quoted
+         string and continue the outer loop. We only want quoted strings, not
+         backslash-escaped characters, but char_is_quoted doesn't
+         differentiate. */
+      if (char_is_quoted (rl_line_buffer, p) && p > 0 && rl_line_buffer[p-1] != '\\')
+       {
+         do
+           ADVANCE_CHAR (rl_line_buffer, slen, p);
+         while (p < rl_end && char_is_quoted (rl_line_buffer, p));
+         count--;
+         continue;
+       }
+
+      /* Rest of code assumes we are not in a quoted string. */
+      /* Move forward until we hit a non-metacharacter. */
+      while (p < rl_end && (c = rl_line_buffer[p]) && WORDDELIM (c))
+       {
+         switch (c)
+           {
+           default:
+             ADVANCE_CHAR (rl_line_buffer, slen, p);
+             continue;         /* straight back to loop, don't increment p */
+           case '\\':
+             if (p < rl_end && rl_line_buffer[p])
+               ADVANCE_CHAR (rl_line_buffer, slen, p);
+             break;
+           case '\'':
+             p = skip_to_delim (rl_line_buffer, ++p, "'", SD_NOJMP);
+             break;
+           case '"':
+             p = skip_to_delim (rl_line_buffer, ++p, "\"", SD_NOJMP);
+             break;
+           }
+
+         if (p < rl_end)
+           p++;
+       }
+
+      if (rl_line_buffer[p] == 0 || p == rl_end)
+        {
+         rl_point = rl_end;
+         rl_ding ();
+         return 0;
+        }
+       
+      /* Now move forward until we hit a non-quoted metacharacter or EOL */
+      while (p < rl_end && (c = rl_line_buffer[p]) && WORDDELIM (c) == 0)
+       {
+         switch (c)
+           {
+           default:
+             ADVANCE_CHAR (rl_line_buffer, slen, p);
+             continue;         /* straight back to loop, don't increment p */
+           case '\\':
+             if (p < rl_end && rl_line_buffer[p])
+               ADVANCE_CHAR (rl_line_buffer, slen, p);
+             break;
+           case '\'':
+             p = skip_to_delim (rl_line_buffer, ++p, "'", SD_NOJMP);
+             break;
+           case '"':
+             p = skip_to_delim (rl_line_buffer, ++p, "\"", SD_NOJMP);
+             break;
+           }
+
+         if (p < rl_end)
+           p++;
+       }
+
+      if (p == rl_end || rl_line_buffer[p] == 0)
+       {
+         rl_point = rl_end;
+         return (0);
+       }
+
+      count--;      
+    }
+
+  rl_point = p;
+  return (0);
+}
+
+static int
+bash_backward_shellword (count, key)
+     int count, key;
+{
+  size_t slen;
+  int sindex, c, p;
+  DECLARE_MBSTATE;
+  
+  if (count < 0)
+    return (bash_forward_shellword (-count, key));
+
+  p = rl_point;
+  slen = rl_end;
+  
+  while (count)
+    {
+      if (p == 0)
+       {
+         rl_point = 0;
+         return 0;
+       }
+
+      /* Move backward until we hit a non-metacharacter. */
+      while (p > 0)
+       {
+         c = rl_line_buffer[p];
+         if (WORDDELIM (c) && char_is_quoted (rl_line_buffer, p) == 0)
+           BACKUP_CHAR (rl_line_buffer, slen, p);
+         break;
+       }
+
+      if (p == 0)
+       {
+         rl_point = 0;
+         return 0;
+       }
+
+      /* Now move backward until we hit a metacharacter or BOL. */
+      while (p > 0)
+       {
+         c = rl_line_buffer[p];
+         if (WORDDELIM (c) && char_is_quoted (rl_line_buffer, p) == 0)
+           break;
+         BACKUP_CHAR (rl_line_buffer, slen, p);
+       }
+
+      count--;
+    }
+
+  rl_point = p;
+  return 0;
+}
+
+static int
+bash_kill_shellword (count, key)
+     int count, key;
+{
+  int p;
+
+  if (count < 0)
+    return (bash_backward_kill_shellword (-count, key));
+
+  p = rl_point;
+  bash_forward_shellword (count, key);
+
+  if (rl_point != p)
+    rl_kill_text (p, rl_point);
+
+  rl_point = p;
+  if (rl_editing_mode == 1)    /* 1 == emacs_mode */
+    rl_mark = rl_point;
+
+  return 0;
+}
+
+static int
+bash_backward_kill_shellword (count, key)
+     int count, key;
+{
+  int p;
+
+  if (count < 0)
+    return (bash_kill_shellword (-count, key));
+
+  p = rl_point;
+  bash_backward_shellword (count, key);
+
+  if (rl_point != p)
+    rl_kill_text (p, rl_point);
+
+  if (rl_editing_mode == 1)    /* 1 == emacs_mode */
+    rl_mark = rl_point;
+
+  return 0;
+}
+
+
+/* **************************************************************** */
+/*                                                                 */
+/*                     How To Do Shell Completion                  */
+/*                                                                 */
+/* **************************************************************** */
+
+#define COMMAND_SEPARATORS ";|&{(`"
+/* )} */ 
+#define COMMAND_SEPARATORS_PLUS_WS ";|&{(` \t"
+/* )} */ 
+
+/* check for redirections and other character combinations that are not
+   command separators */
+static int
+check_redir (ti)
+     int ti;
+{
+  register int this_char, prev_char;
+
+  /* Handle the two character tokens `>&', `<&', and `>|'.
+     We are not in a command position after one of these. */
+  this_char = rl_line_buffer[ti];
+  prev_char = rl_line_buffer[ti - 1];
+
+  if ((this_char == '&' && (prev_char == '<' || prev_char == '>')) ||
+      (this_char == '|' && prev_char == '>'))
+    return (1);
+  else if (this_char == '{' && prev_char == '$') /*}*/
+    return (1);
+#if 0  /* Not yet */
+  else if (this_char == '(' && prev_char == '$') /*)*/
+    return (1);
+  else if (this_char == '(' && prev_char == '<') /*)*/
+    return (1);
+#if defined (EXTENDED_GLOB)
+  else if (extended_glob && this_char == '(' && prev_char == '!') /*)*/
+    return (1);
+#endif
+#endif
+  else if (char_is_quoted (rl_line_buffer, ti))
+    return (1);
+  return (0);
+}
+
+#if defined (PROGRAMMABLE_COMPLETION)
+/*
+ * XXX - because of the <= start test, and setting os = s+1, this can
+ * potentially return os > start.  This is probably not what we want to
+ * happen, but fix later after 2.05a-release.
+ */
+static int
+find_cmd_start (start)
+     int start;
+{
+  register int s, os;
+
+  os = 0;
+  /* Flags == SD_NOJMP only because we want to skip over command substitutions
+     in assignment statements.  Have to test whether this affects `standalone'
+     command substitutions as individual words. */
+  while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS, SD_NOJMP/*|SD_NOSKIPCMD*/)) <= start) &&
+        rl_line_buffer[s])
+    os = s+1;
+  return os;
+}
+
+static int
+find_cmd_end (end)
+     int end;
+{
+  register int e;
+
+  e = skip_to_delim (rl_line_buffer, end, COMMAND_SEPARATORS, SD_NOJMP);
+  return e;
+}
+
+static char *
+find_cmd_name (start, sp, ep)
+     int start;
+     int *sp, *ep;
+{
+  char *name;
+  register int s, e;
+
+  for (s = start; whitespace (rl_line_buffer[s]); s++)
+    ;
+
+  /* skip until a shell break character */
+  e = skip_to_delim (rl_line_buffer, s, "()<>;&| \t\n", SD_NOJMP);
+
+  name = substring (rl_line_buffer, s, e);
+
+  if (sp)
+    *sp = s;
+  if (ep)
+    *ep = e;
+
+  return (name);
+}
+
+static char *
+prog_complete_return (text, matchnum)
+     const char *text;
+     int matchnum;
+{
+  static int ind;
+
+  if (matchnum == 0)
+    ind = 0;
+
+  if (prog_complete_matches == 0 || prog_complete_matches[ind] == 0)
+    return (char *)NULL;
+  return (prog_complete_matches[ind++]);
+}
+
+#endif /* PROGRAMMABLE_COMPLETION */
+
+/* Do some completion on TEXT.  The indices of TEXT in RL_LINE_BUFFER are
+   at START and END.  Return an array of matches, or NULL if none. */
+static char **
+attempt_shell_completion (text, start, end)
+     const char *text;
+     int start, end;
+{
+  int in_command_position, ti, saveti, qc, dflags;
+  char **matches, *command_separator_chars;
+
+  command_separator_chars = COMMAND_SEPARATORS;
+  matches = (char **)NULL;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+
+  rl_filename_quote_characters = default_filename_quote_characters;
+  set_filename_bstab (rl_filename_quote_characters);
+  set_directory_hook ();
+  rl_filename_stat_hook = bash_filename_stat_hook;
+
+  /* Determine if this could be a command word.  It is if it appears at
+     the start of the line (ignoring preceding whitespace), or if it
+     appears after a character that separates commands.  It cannot be a
+     command word if we aren't at the top-level prompt. */
+  ti = start - 1;
+  saveti = qc = -1;
+
+  while ((ti > -1) && (whitespace (rl_line_buffer[ti])))
+    ti--;
+
+#if 1
+  /* If this is an open quote, maybe we're trying to complete a quoted
+     command name. */
+  if (ti >= 0 && (rl_line_buffer[ti] == '"' || rl_line_buffer[ti] == '\''))
+    {
+      qc = rl_line_buffer[ti];
+      saveti = ti--;
+      while (ti > -1 && (whitespace (rl_line_buffer[ti])))
+       ti--;
+    }
+#endif
+      
+  in_command_position = 0;
+  if (ti < 0)
+    {
+      /* Only do command completion at the start of a line when we
+        are prompting at the top level. */
+      if (current_prompt_string == ps1_prompt)
+       in_command_position++;
+      else if (parser_in_command_position ())
+       in_command_position++;
+    }
+  else if (member (rl_line_buffer[ti], command_separator_chars))
+    {
+      in_command_position++;
+
+      if (check_redir (ti) == 1)
+       in_command_position = 0;
+    }
+  else
+    {
+      /* This still could be in command position.  It is possible
+        that all of the previous words on the line are variable
+        assignments. */
+    }
+
+  /* Check that we haven't incorrectly flagged a closed command substitution
+     as indicating we're in a command position. */
+  if (in_command_position && ti >= 0 && rl_line_buffer[ti] == '`' &&
+       *text != '`' && unclosed_pair (rl_line_buffer, end, "`") == 0)
+    in_command_position = 0;
+
+  /* Special handling for command substitution.  If *TEXT is a backquote,
+     it can be the start or end of an old-style command substitution, or
+     unmatched.  If it's unmatched, both calls to unclosed_pair will
+     succeed.  Don't bother if readline found a single quote and we are
+     completing on the substring.  */
+  if (*text == '`' && rl_completion_quote_character != '\'' &&
+       (in_command_position || (unclosed_pair (rl_line_buffer, start, "`") &&
+                                unclosed_pair (rl_line_buffer, end, "`"))))
+    matches = rl_completion_matches (text, command_subst_completion_function);
+
+#if defined (PROGRAMMABLE_COMPLETION)
+  /* Attempt programmable completion. */
+  if (matches == 0 && (in_command_position == 0 || text[0] == '\0') &&
+      prog_completion_enabled && (progcomp_size () > 0) &&
+      current_prompt_string == ps1_prompt)
+    {
+      int s, e, s1, e1, os, foundcs;
+      char *n;
+
+      /* XXX - don't free the members */
+      if (prog_complete_matches)
+       free (prog_complete_matches);
+      prog_complete_matches = (char **)NULL;
+
+      os = start;
+      n = 0;
+      s = find_cmd_start (os);
+      e = find_cmd_end (end);
+      do
+       {
+         /* Skip over assignment statements preceding a command name.  If we
+            don't find a command name at all, we can perform command name
+            completion.  If we find a partial command name, we should perform
+            command name completion on it. */
+         FREE (n);
+         n = find_cmd_name (s, &s1, &e1);
+         s = e1 + 1;
+       }
+      while (assignment (n, 0));
+      s = s1;          /* reset to index where name begins */
+
+      if (start == 0 && end == 0 && e != 0 && text[0] == '\0') /* beginning of non-empty line */
+        foundcs = 0;
+      else if (start == end && start == s1 && e != 0 && e1 > end)      /* beginning of command name, leading whitespace */
+       foundcs = 0;
+      else if (e == 0 && e == s && text[0] == '\0')    /* beginning of empty line */
+        prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs);
+      else if (start == end && text[0] == '\0' && s1 > start && whitespace (rl_line_buffer[start]))
+        foundcs = 0;           /* whitespace before command name */
+      else if (e > s && assignment (n, 0) == 0)
+       prog_complete_matches = programmable_completions (n, text, s, e, &foundcs);
+      else if (s >= e && n[0] == '\0' && text[0] == '\0' && start > 0)
+        {
+          foundcs = 0; /* empty command name following assignments */
+          in_command_position = 1;
+        }
+      else if (s == start && e == end && STREQ (n, text) && start > 0)
+        {
+          foundcs = 0; /* partial command name following assignments */
+          in_command_position = 1;
+        }
+      else
+       foundcs = 0;
+      FREE (n);
+      /* XXX - if we found a COMPSPEC for the command, just return whatever
+        the programmable completion code returns, and disable the default
+        filename completion that readline will do unless the COPT_DEFAULT
+        option has been set with the `-o default' option to complete or
+        compopt. */
+      if (foundcs)
+       {
+         pcomp_set_readline_variables (foundcs, 1);
+         /* Turn what the programmable completion code returns into what
+            readline wants.  I should have made compute_lcd_of_matches
+            external... */
+         matches = rl_completion_matches (text, prog_complete_return);
+         if ((foundcs & COPT_DEFAULT) == 0)
+           rl_attempted_completion_over = 1;   /* no default */
+         if (matches || ((foundcs & COPT_BASHDEFAULT) == 0))
+           return (matches);
+       }
+    }
+#endif
+
+  if (matches == 0)
+    {
+      dflags = 0;
+      if (in_command_position)
+       dflags |= DEFCOMP_CMDPOS;
+      matches = bash_default_completion (text, start, end, qc, dflags);
+    }
+
+  return matches;
+}
+
+char **
+bash_default_completion (text, start, end, qc, compflags)
+     const char *text;
+     int start, end, qc, compflags;
+{
+  char **matches, *t;
+
+  matches = (char **)NULL;
+
+  /* New posix-style command substitution or variable name? */
+  if (!matches && *text == '$')
+    {
+      if (qc != '\'' && text[1] == '(') /* ) */
+       matches = rl_completion_matches (text, command_subst_completion_function);
+      else
+       {
+         matches = rl_completion_matches (text, variable_completion_function);
+         if (matches && matches[0] && matches[1] == 0)
+           {
+             t = savestring (matches[0]);
+             bash_filename_stat_hook (&t);
+             /* doesn't use test_for_directory because that performs tilde
+                expansion */
+             if (file_isdir (t))
+               rl_completion_append_character = '/';
+             free (t);
+           }
+       }
+    }
+
+  /* If the word starts in `~', and there is no slash in the word, then
+     try completing this word as a username. */
+  if (matches == 0 && *text == '~' && mbschr (text, '/') == 0)
+    matches = rl_completion_matches (text, rl_username_completion_function);
+
+  /* Another one.  Why not?  If the word starts in '@', then look through
+     the world of known hostnames for completion first. */
+  if (matches == 0 && perform_hostname_completion && *text == '@')
+    matches = rl_completion_matches (text, hostname_completion_function);
+
+  /* And last, (but not least) if this word is in a command position, then
+     complete over possible command names, including aliases, functions,
+     and command names. */
+  if (matches == 0 && (compflags & DEFCOMP_CMDPOS))
+    {
+      /* If END == START and text[0] == 0, we are trying to complete an empty
+        command word. */
+      if (no_empty_command_completion && end == start && text[0] == '\0')
+       {
+         matches = (char **)NULL;
+         rl_ignore_some_completions_function = bash_ignore_everything;
+       }
+      else
+       {
+#define CMD_IS_DIR(x)  (absolute_pathname(x) == 0 && absolute_program(x) == 0 && *(x) != '~' && test_for_directory (x))
+
+         dot_in_path = 0;
+         matches = rl_completion_matches (text, command_word_completion_function);
+
+         /* If we are attempting command completion and nothing matches, we
+            do not want readline to perform filename completion for us.  We
+            still want to be able to complete partial pathnames, so set the
+            completion ignore function to something which will remove
+            filenames and leave directories in the match list. */
+         if (matches == (char **)NULL)
+           rl_ignore_some_completions_function = bash_ignore_filenames;
+         else if (matches[1] == 0 && CMD_IS_DIR(matches[0]) && dot_in_path == 0)
+           /* If we found a single match, without looking in the current
+              directory (because it's not in $PATH), but the found name is
+              also a command in the current directory, suppress appending any
+              terminating character, since it's ambiguous. */
+           {
+             rl_completion_suppress_append = 1;
+             rl_filename_completion_desired = 0;
+           }
+         else if (matches[0] && matches[1] && STREQ (matches[0], matches[1]) && CMD_IS_DIR (matches[0]))
+           /* There are multiple instances of the same match (duplicate
+              completions haven't yet been removed).  In this case, all of
+              the matches will be the same, and the duplicate removal code
+              will distill them all down to one.  We turn on
+              rl_completion_suppress_append for the same reason as above.
+              Remember: we only care if there's eventually a single unique
+              completion.  If there are multiple completions this won't
+              make a difference and the problem won't occur. */
+           {
+             rl_completion_suppress_append = 1;
+             rl_filename_completion_desired = 0;
+           }
+       }
+    }
+
+  /* This could be a globbing pattern, so try to expand it using pathname
+     expansion. */
+  if (!matches && glob_pattern_p (text))
+    {
+      matches = rl_completion_matches (text, glob_complete_word);
+      /* A glob expression that matches more than one filename is problematic.
+        If we match more than one filename, punt. */
+      if (matches && matches[1] && rl_completion_type == TAB)
+       {
+         strvec_dispose (matches);
+         matches = (char **)0;
+       }
+    }
+
+  return (matches);
+}
+
+static int
+bash_command_name_stat_hook (name)
+     char **name;
+{
+  char *cname, *result;
+
+  cname = *name;
+  /* XXX - we could do something here with converting aliases, builtins,
+     and functions into something that came out as executable, but we don't. */
+  result = search_for_command (cname, 0);
+  if (result)
+    {
+      *name = result;
+      return 1;
+    }
+  return 0;
+}
+
+static int
+executable_completion (filename, searching_path)
+     const char *filename;
+     int searching_path;
+{
+  char *f;
+  int r;
+
+  f = savestring (filename);
+  bash_directory_completion_hook (&f);
+  
+  r = searching_path ? executable_file (f) : executable_or_directory (f);
+  free (f);
+  return r;
+}
+
+/* This is the function to call when the word to complete is in a position
+   where a command word can be found.  It grovels $PATH, looking for commands
+   that match.  It also scans aliases, function names, and the shell_builtin
+   table. */
+char *
+command_word_completion_function (hint_text, state)
+     const char *hint_text;
+     int state;
+{
+  static char *hint = (char *)NULL;
+  static char *path = (char *)NULL;
+  static char *val = (char *)NULL;
+  static char *filename_hint = (char *)NULL;
+  static char *dequoted_hint = (char *)NULL;
+  static char *directory_part = (char *)NULL;
+  static char **glob_matches = (char **)NULL;
+  static int path_index, hint_len, dequoted_len, istate, igncase;
+  static int mapping_over, local_index, searching_path, hint_is_dir;
+  static int old_glob_ignore_case, globpat;
+  static SHELL_VAR **varlist = (SHELL_VAR **)NULL;
+#if defined (ALIAS)
+  static alias_t **alias_list = (alias_t **)NULL;
+#endif /* ALIAS */
+  char *temp, *cval;
+
+  /* We have to map over the possibilities for command words.  If we have
+     no state, then make one just for that purpose. */
+  if (state == 0)
+    {
+      rl_filename_stat_hook = bash_command_name_stat_hook;
+
+      if (dequoted_hint && dequoted_hint != hint)
+       free (dequoted_hint);
+      if (hint)
+       free (hint);
+
+      mapping_over = searching_path = 0;
+      hint_is_dir = CMD_IS_DIR (hint_text);
+      val = (char *)NULL;
+
+      temp = rl_variable_value ("completion-ignore-case");
+      igncase = RL_BOOLEAN_VARIABLE_VALUE (temp);
+
+      if (glob_matches)
+       {
+         free (glob_matches);
+         glob_matches = (char **)NULL;
+       }
+
+      globpat = glob_pattern_p (hint_text);
+
+      /* If this is an absolute program name, do not check it against
+        aliases, reserved words, functions or builtins.  We must check
+        whether or not it is unique, and, if so, whether that filename
+        is executable. */
+      if (globpat || absolute_program (hint_text))
+       {
+         /* Perform tilde expansion on what's passed, so we don't end up
+            passing filenames with tildes directly to stat(). */
+         if (*hint_text == '~')
+           {
+             hint = bash_tilde_expand (hint_text, 0);
+             directory_part = savestring (hint_text);
+             temp = strchr (directory_part, '/');
+             if (temp)
+               *temp = 0;
+             else
+               {
+                 free (directory_part);
+                 directory_part = (char *)NULL;
+               }
+           }
+         else
+           hint = savestring (hint_text);
+
+         dequoted_hint = hint;
+         /* If readline's completer found a quote character somewhere, but
+            didn't set the quote character, there must have been a quote
+            character embedded in the filename.  It can't be at the start of
+            the filename, so we need to dequote the filename before we look
+            in the file system for it. */
+         if (rl_completion_found_quote && rl_completion_quote_character == 0)
+           {
+             dequoted_hint = bash_dequote_filename (hint, 0);
+             free (hint);
+             hint = dequoted_hint;
+           }
+         dequoted_len = hint_len = strlen (hint);
+
+         if (filename_hint)
+           free (filename_hint);
+
+         filename_hint = savestring (hint);
+
+         istate = 0;
+
+         if (globpat)
+           {
+             mapping_over = 5;
+             goto globword;
+           }
+         else
+           {
+            if (dircomplete_expand && path_dot_or_dotdot (filename_hint))
+               {
+                 dircomplete_expand = 0;
+                 set_directory_hook ();
+                 dircomplete_expand = 1;
+               }
+             mapping_over = 4;
+             goto inner;
+           }
+       }
+
+      dequoted_hint = hint = savestring (hint_text);
+      dequoted_len = hint_len = strlen (hint);
+
+      if (rl_completion_found_quote && rl_completion_quote_character == 0)
+       {
+         dequoted_hint = bash_dequote_filename (hint, 0);
+         dequoted_len = strlen (dequoted_hint);
+       }
+      
+      path = get_string_value ("PATH");
+      path_index = dot_in_path = 0;
+
+      /* Initialize the variables for each type of command word. */
+      local_index = 0;
+
+      if (varlist)
+       free (varlist);
+
+      varlist = all_visible_functions ();
+
+#if defined (ALIAS)
+      if (alias_list)
+       free (alias_list);
+
+      alias_list = all_aliases ();
+#endif /* ALIAS */
+    }
+
+  /* mapping_over says what we are currently hacking.  Note that every case
+     in this list must fall through when there are no more possibilities. */
+
+  switch (mapping_over)
+    {
+    case 0:                    /* Aliases come first. */
+#if defined (ALIAS)
+      while (alias_list && alias_list[local_index])
+       {
+         register char *alias;
+
+         alias = alias_list[local_index++]->name;
+
+         if (STREQN (alias, hint, hint_len))
+           return (savestring (alias));
+       }
+#endif /* ALIAS */
+      local_index = 0;
+      mapping_over++;
+
+    case 1:                    /* Then shell reserved words. */
+      {
+       while (word_token_alist[local_index].word)
+         {
+           register char *reserved_word;
+
+           reserved_word = word_token_alist[local_index++].word;
+
+           if (STREQN (reserved_word, hint, hint_len))
+             return (savestring (reserved_word));
+         }
+       local_index = 0;
+       mapping_over++;
+      }
+
+    case 2:                    /* Then function names. */
+      while (varlist && varlist[local_index])
+       {
+         register char *varname;
+
+         varname = varlist[local_index++]->name;
+
+         if (STREQN (varname, hint, hint_len))
+           return (savestring (varname));
+       }
+      local_index = 0;
+      mapping_over++;
+
+    case 3:                    /* Then shell builtins. */
+      for (; local_index < num_shell_builtins; local_index++)
+       {
+         /* Ignore it if it doesn't have a function pointer or if it
+            is not currently enabled. */
+         if (!shell_builtins[local_index].function ||
+             (shell_builtins[local_index].flags & BUILTIN_ENABLED) == 0)
+           continue;
+
+         if (STREQN (shell_builtins[local_index].name, hint, hint_len))
+           {
+             int i = local_index++;
+
+             return (savestring (shell_builtins[i].name));
+           }
+       }
+      local_index = 0;
+      mapping_over++;
+    }
+
+globword:
+  /* Limited support for completing command words with globbing chars.  Only
+     a single match (multiple matches that end up reducing the number of
+     characters in the common prefix are bad) will ever be returned on
+     regular completion. */
+  if (globpat)
+    {
+      if (state == 0)
+       {
+         glob_ignore_case = igncase;
+         glob_matches = shell_glob_filename (hint);
+         glob_ignore_case = old_glob_ignore_case;
+
+         if (GLOB_FAILED (glob_matches) || glob_matches == 0)
+           {
+             glob_matches = (char **)NULL;
+             return ((char *)NULL);
+           }
+
+         local_index = 0;
+               
+         if (glob_matches[1] && rl_completion_type == TAB)     /* multiple matches are bad */
+           return ((char *)NULL);
+       }
+
+      while (val = glob_matches[local_index++])
+        {
+         if (executable_or_directory (val))
+           {
+             if (*hint_text == '~' && directory_part)
+               {
+                 temp = restore_tilde (val, directory_part);
+                 free (val);
+                 val = temp;
+               }
+             return (val);
+           }
+         free (val);
+        }
+
+      glob_ignore_case = old_glob_ignore_case;
+      return ((char *)NULL);
+    }
+
+  /* If the text passed is a directory in the current directory, return it
+     as a possible match.  Executables in directories in the current
+     directory can be specified using relative pathnames and successfully
+     executed even when `.' is not in $PATH. */
+  if (hint_is_dir)
+    {
+      hint_is_dir = 0; /* only return the hint text once */
+      return (savestring (hint_text));
+    }
+    
+  /* Repeatedly call filename_completion_function while we have
+     members of PATH left.  Question:  should we stat each file?
+     Answer: we call executable_file () on each file. */
+ outer:
+
+  istate = (val != (char *)NULL);
+
+  if (istate == 0)
+    {
+      char *current_path;
+
+      /* Get the next directory from the path.  If there is none, then we
+        are all done. */
+      if (path == 0 || path[path_index] == 0 ||
+         (current_path = extract_colon_unit (path, &path_index)) == 0)
+       return ((char *)NULL);
+
+      searching_path = 1;
+      if (*current_path == 0)
+       {
+         free (current_path);
+         current_path = savestring (".");
+       }
+
+      if (*current_path == '~')
+       {
+         char *t;
+
+         t = bash_tilde_expand (current_path, 0);
+         free (current_path);
+         current_path = t;
+       }
+
+      if (current_path[0] == '.' && current_path[1] == '\0')
+       dot_in_path = 1;
+
+      if (filename_hint)
+       free (filename_hint);
+
+      filename_hint = sh_makepath (current_path, hint, 0);
+      free (current_path);             /* XXX */
+    }
+
+ inner:
+  val = rl_filename_completion_function (filename_hint, istate);
+  if (mapping_over == 4 && dircomplete_expand)
+    set_directory_hook ();
+
+  istate = 1;
+
+  if (val == 0)
+    {
+      /* If the hint text is an absolute program, then don't bother
+        searching through PATH. */
+      if (absolute_program (hint))
+       return ((char *)NULL);
+
+      goto outer;
+    }
+  else
+    {
+      int match, freetemp;
+
+      if (absolute_program (hint))
+       {
+         if (igncase == 0)
+           match = strncmp (val, hint, hint_len) == 0;
+         else
+           match = strncasecmp (val, hint, hint_len) == 0;
+
+         /* If we performed tilde expansion, restore the original
+            filename. */
+         if (*hint_text == '~')
+           temp = restore_tilde (val, directory_part);
+         else
+           temp = savestring (val);
+         freetemp = 1;
+       }
+      else
+       {
+         temp = strrchr (val, '/');
+
+         if (temp)
+           {
+             temp++;
+             if (igncase == 0)
+               freetemp = match = strncmp (temp, hint, hint_len) == 0;
+             else
+               freetemp = match = strncasecmp (temp, hint, hint_len) == 0;
+             if (match)
+               temp = savestring (temp);
+           }
+         else
+           freetemp = match = 0;
+       }
+
+      /* If we have found a match, and it is an executable file, return it.
+        We don't return directory names when searching $PATH, since the
+        bash execution code won't find executables in directories which
+        appear in directories in $PATH when they're specified using
+        relative pathnames.  */
+#if 0
+      /* If we're not searching $PATH and we have a relative pathname, we
+        need to re-canonicalize it before testing whether or not it's an
+        executable or a directory so the shell treats .. relative to $PWD
+        according to the physical/logical option.  The shell already
+        canonicalizes the directory name in order to tell readline where
+        to look, so not doing it here will be inconsistent. */
+      /* XXX -- currently not used -- will introduce more inconsistency,
+        since shell does not canonicalize ../foo before passing it to
+        shell_execve().  */
+      if (match && searching_path == 0 && *val == '.')
+       {
+         char *t, *t1;
+
+         t = get_working_directory ("command-word-completion");
+         t1 = make_absolute (val, t);
+         free (t);
+         cval = sh_canonpath (t1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
+       }
+      else
+#endif
+       cval = val;
+
+      if (match && executable_completion ((searching_path ? val : cval), searching_path))
+       {
+         if (cval != val)
+           free (cval);
+         free (val);
+         val = "";             /* So it won't be NULL. */
+         return (temp);
+       }
+      else
+       {
+         if (freetemp)
+           free (temp);
+         if (cval != val)
+           free (cval);
+         free (val);
+         goto inner;
+       }
+    }
+}
+
+/* Completion inside an unterminated command substitution. */
+static char *
+command_subst_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static char **matches = (char **)NULL;
+  static const char *orig_start;
+  static char *filename_text = (char *)NULL;
+  static int cmd_index, start_len;
+  char *value;
+
+  if (state == 0)
+    {
+      if (filename_text)
+       free (filename_text);
+      orig_start = text;
+      if (*text == '`')
+       text++;
+      else if (*text == '$' && text[1] == '(') /* ) */
+       text += 2;
+      /* If the text was quoted, suppress any quote character that the
+        readline completion code would insert. */
+      rl_completion_suppress_quote = 1;
+      start_len = text - orig_start;
+      filename_text = savestring (text);
+      if (matches)
+       free (matches);
+
+      /*
+       * At this point we can entertain the idea of re-parsing
+       * `filename_text' into a (possibly incomplete) command name and
+       * arguments, and doing completion based on that.  This is
+       * currently very rudimentary, but it is a small improvement.
+       */
+      for (value = filename_text + strlen (filename_text) - 1; value > filename_text; value--)
+        if (whitespace (*value) || member (*value, COMMAND_SEPARATORS))
+          break;
+      if (value <= filename_text)
+       matches = rl_completion_matches (filename_text, command_word_completion_function);
+      else
+       {
+         value++;
+         start_len += value - filename_text;
+         if (whitespace (value[-1]))
+           matches = rl_completion_matches (value, rl_filename_completion_function);
+         else
+           matches = rl_completion_matches (value, command_word_completion_function);
+       }
+
+      /* If there is more than one match, rl_completion_matches has already
+        put the lcd in matches[0].  Skip over it. */
+      cmd_index = matches && matches[0] && matches[1];
+
+      /* If there's a single match and it's a directory, set the append char
+        to the expected `/'.  Otherwise, don't append anything. */
+      if (matches && matches[0] && matches[1] == 0 && test_for_directory (matches[0]))
+       rl_completion_append_character = '/';
+      else
+       rl_completion_suppress_append = 1;
+    }
+
+  if (matches == 0 || matches[cmd_index] == 0)
+    {
+      rl_filename_quoting_desired = 0; /* disable quoting */
+      return ((char *)NULL);
+    }
+  else
+    {
+      value = (char *)xmalloc (1 + start_len + strlen (matches[cmd_index]));
+
+      if (start_len == 1)
+       value[0] = *orig_start;
+      else
+       strncpy (value, orig_start, start_len);
+
+      strcpy (value + start_len, matches[cmd_index]);
+
+      cmd_index++;
+      return (value);
+    }
+}
+
+/* Okay, now we write the entry_function for variable completion. */
+static char *
+variable_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static char **varlist = (char **)NULL;
+  static int varlist_index;
+  static char *varname = (char *)NULL;
+  static int namelen;
+  static int first_char, first_char_loc;
+
+  if (!state)
+    {
+      if (varname)
+       free (varname);
+
+      first_char_loc = 0;
+      first_char = text[0];
+
+      if (first_char == '$')
+       first_char_loc++;
+
+      if (text[first_char_loc] == '{')
+       first_char_loc++;
+
+      varname = savestring (text + first_char_loc);
+
+      namelen = strlen (varname);
+      if (varlist)
+       strvec_dispose (varlist);
+
+      varlist = all_variables_matching_prefix (varname);
+      varlist_index = 0;
+    }
+
+  if (!varlist || !varlist[varlist_index])
+    {
+      return ((char *)NULL);
+    }
+  else
+    {
+      char *value;
+
+      value = (char *)xmalloc (4 + strlen (varlist[varlist_index]));
+
+      if (first_char_loc)
+       {
+         value[0] = first_char;
+         if (first_char_loc == 2)
+           value[1] = '{';
+       }
+
+      strcpy (value + first_char_loc, varlist[varlist_index]);
+      if (first_char_loc == 2)
+       strcat (value, "}");
+
+      varlist_index++;
+      return (value);
+    }
+}
+
+/* How about a completion function for hostnames? */
+static char *
+hostname_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static char **list = (char **)NULL;
+  static int list_index = 0;
+  static int first_char, first_char_loc;
+
+  /* If we don't have any state, make some. */
+  if (state == 0)
+    {
+      FREE (list);
+
+      list = (char **)NULL;
+
+      first_char_loc = 0;
+      first_char = *text;
+
+      if (first_char == '@')
+       first_char_loc++;
+
+      list = hostnames_matching ((char *)text+first_char_loc);
+      list_index = 0;
+    }
+
+  if (list && list[list_index])
+    {
+      char *t;
+
+      t = (char *)xmalloc (2 + strlen (list[list_index]));
+      *t = first_char;
+      strcpy (t + first_char_loc, list[list_index]);
+      list_index++;
+      return (t);
+    }
+
+  return ((char *)NULL);
+}
+
+/*
+ * A completion function for service names from /etc/services (or wherever).
+ */
+char *
+bash_servicename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT) || !defined (HAVE_GETSERVENT)
+  return ((char *)NULL);
+#else
+  static char *sname = (char *)NULL;
+  static struct servent *srvent;
+  static int snamelen, firstc;
+  char *value;
+  char **alist, *aentry;
+  int afound;
+
+  if (state == 0)
+    {
+      FREE (sname);
+      firstc = *text;
+
+      sname = savestring (text);
+      snamelen = strlen (sname);
+      setservent (0);
+    }
+
+  while (srvent = getservent ())
+    {
+      afound = 0;
+      if (snamelen == 0 || (STREQN (sname, srvent->s_name, snamelen)))
+       break;
+      /* Not primary, check aliases */
+      for (alist = srvent->s_aliases; *alist; alist++)
+       {
+         aentry = *alist;
+         if (STREQN (sname, aentry, snamelen))
+           {
+             afound = 1;
+             break;
+           }
+       }
+
+      if (afound)
+       break;
+    }
+
+  if (srvent == 0)
+    {
+      endservent ();
+      return ((char *)NULL);
+    }
+
+  value = afound ? savestring (aentry) : savestring (srvent->s_name);
+  return value;
+#endif
+}
+
+/*
+ * A completion function for group names from /etc/group (or wherever).
+ */
+char *
+bash_groupname_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT) || !defined (HAVE_GRP_H)
+  return ((char *)NULL);
+#else
+  static char *gname = (char *)NULL;
+  static struct group *grent;
+  static int gnamelen;
+  char *value;
+
+  if (state == 0)
+    {
+      FREE (gname);
+      gname = savestring (text);
+      gnamelen = strlen (gname);
+
+      setgrent ();
+    }
+
+  while (grent = getgrent ())
+    {
+      if (gnamelen == 0 || (STREQN (gname, grent->gr_name, gnamelen)))
+        break;
+    }
+
+  if (grent == 0)
+    {
+      endgrent ();
+      return ((char *)NULL);
+    }
+
+  value = savestring (grent->gr_name);
+  return (value);
+#endif
+}
+
+/* Functions to perform history and alias expansions on the current line. */
+
+#if defined (BANG_HISTORY)
+/* Perform history expansion on the current line.  If no history expansion
+   is done, pre_process_line() returns what it was passed, so we need to
+   allocate a new line here. */
+static char *
+history_expand_line_internal (line)
+     char *line;
+{
+  char *new_line;
+  int old_verify;
+
+  old_verify = hist_verify;
+  hist_verify = 0;
+  new_line = pre_process_line (line, 0, 0);
+  hist_verify = old_verify;
+
+  return (new_line == line) ? savestring (line) : new_line;
+}
+#endif
+
+/* There was an error in expansion.  Let the preprocessor print
+   the error here. */
+static void
+cleanup_expansion_error ()
+{
+  char *to_free;
+#if defined (BANG_HISTORY)
+  int old_verify;
+
+  old_verify = hist_verify;
+  hist_verify = 0;
+#endif
+
+  fprintf (rl_outstream, "\r\n");
+  to_free = pre_process_line (rl_line_buffer, 1, 0);
+#if defined (BANG_HISTORY)
+  hist_verify = old_verify;
+#endif
+  if (to_free != rl_line_buffer)
+    FREE (to_free);
+  putc ('\r', rl_outstream);
+  rl_forced_update_display ();
+}
+
+/* If NEW_LINE differs from what is in the readline line buffer, add an
+   undo record to get from the readline line buffer contents to the new
+   line and make NEW_LINE the current readline line. */
+static void
+maybe_make_readline_line (new_line)
+     char *new_line;
+{
+  if (strcmp (new_line, rl_line_buffer) != 0)
+    {
+      rl_point = rl_end;
+
+      rl_add_undo (UNDO_BEGIN, 0, 0, 0);
+      rl_delete_text (0, rl_point);
+      rl_point = rl_end = rl_mark = 0;
+      rl_insert_text (new_line);
+      rl_add_undo (UNDO_END, 0, 0, 0);
+    }
+}
+
+/* Make NEW_LINE be the current readline line.  This frees NEW_LINE. */
+static void
+set_up_new_line (new_line)
+     char *new_line;
+{
+  int old_point, at_end;
+
+  old_point = rl_point;
+  at_end = rl_point == rl_end;
+
+  /* If the line was history and alias expanded, then make that
+     be one thing to undo. */
+  maybe_make_readline_line (new_line);
+  free (new_line);
+
+  /* Place rl_point where we think it should go. */
+  if (at_end)
+    rl_point = rl_end;
+  else if (old_point < rl_end)
+    {
+      rl_point = old_point;
+      if (!whitespace (rl_line_buffer[rl_point]))
+       rl_forward_word (1, 0);
+    }
+}
+
+#if defined (ALIAS)
+/* Expand aliases in the current readline line. */
+static int
+alias_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+
+  new_line = alias_expand (rl_line_buffer);
+
+  if (new_line)
+    {
+      set_up_new_line (new_line);
+      return (0);
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return (1);
+    }
+}
+#endif
+
+#if defined (BANG_HISTORY)
+/* History expand the line. */
+static int
+history_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+
+  new_line = history_expand_line_internal (rl_line_buffer);
+
+  if (new_line)
+    {
+      set_up_new_line (new_line);
+      return (0);
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return (1);
+    }
+}
+
+/* Expand history substitutions in the current line and then insert a
+   space (hopefully close to where we were before). */
+static int
+tcsh_magic_space (count, ignore)
+     int count, ignore;
+{
+  int dist_from_end, old_point;
+
+  old_point = rl_point;
+  dist_from_end = rl_end - rl_point;
+  if (history_expand_line (count, ignore) == 0)
+    {
+      /* Try a simple heuristic from Stephen Gildea <gildea@intouchsys.com>.
+        This works if all expansions were before rl_point or if no expansions
+        were performed. */
+      rl_point = (old_point == 0) ? old_point : rl_end - dist_from_end;
+      rl_insert (1, ' ');
+      return (0);
+    }
+  else
+    return (1);
+}
+#endif /* BANG_HISTORY */
+
+/* History and alias expand the line. */
+static int
+history_and_alias_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+
+  new_line = 0;
+#if defined (BANG_HISTORY)
+  new_line = history_expand_line_internal (rl_line_buffer);
+#endif
+
+#if defined (ALIAS)
+  if (new_line)
+    {
+      char *alias_line;
+
+      alias_line = alias_expand (new_line);
+      free (new_line);
+      new_line = alias_line;
+    }
+#endif /* ALIAS */
+
+  if (new_line)
+    {
+      set_up_new_line (new_line);
+      return (0);
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return (1);
+    }
+}
+
+/* History and alias expand the line, then perform the shell word
+   expansions by calling expand_string.  This can't use set_up_new_line()
+   because we want the variable expansions as a separate undo'able
+   set of operations. */
+static int
+shell_expand_line (count, ignore)
+     int count, ignore;
+{
+  char *new_line;
+  WORD_LIST *expanded_string;
+
+  new_line = 0;
+#if defined (BANG_HISTORY)
+  new_line = history_expand_line_internal (rl_line_buffer);
+#endif
+
+#if defined (ALIAS)
+  if (new_line)
+    {
+      char *alias_line;
+
+      alias_line = alias_expand (new_line);
+      free (new_line);
+      new_line = alias_line;
+    }
+#endif /* ALIAS */
+
+  if (new_line)
+    {
+      int old_point = rl_point;
+      int at_end = rl_point == rl_end;
+
+      /* If the line was history and alias expanded, then make that
+        be one thing to undo. */
+      maybe_make_readline_line (new_line);
+      free (new_line);
+
+      /* If there is variable expansion to perform, do that as a separate
+        operation to be undone. */
+      new_line = savestring (rl_line_buffer);
+      expanded_string = expand_string (new_line, 0);
+      FREE (new_line);
+      if (expanded_string == 0)
+       {
+         new_line = (char *)xmalloc (1);
+         new_line[0] = '\0';
+       }
+      else
+       {
+         new_line = string_list (expanded_string);
+         dispose_words (expanded_string);
+       }
+
+      maybe_make_readline_line (new_line);
+      free (new_line);
+
+      /* Place rl_point where we think it should go. */
+      if (at_end)
+       rl_point = rl_end;
+      else if (old_point < rl_end)
+       {
+         rl_point = old_point;
+         if (!whitespace (rl_line_buffer[rl_point]))
+           rl_forward_word (1, 0);
+       }
+      return 0;
+    }
+  else
+    {
+      cleanup_expansion_error ();
+      return 1;
+    }
+}
+
+/* If FIGNORE is set, then don't match files with the given suffixes when
+   completing filenames.  If only one of the possibilities has an acceptable
+   suffix, delete the others, else just return and let the completer
+   signal an error.  It is called by the completer when real
+   completions are done on filenames by the completer's internal
+   function, not for completion lists (M-?) and not on "other"
+   completion types, such as hostnames or commands. */
+
+static struct ignorevar fignore =
+{
+  "FIGNORE",
+  (struct ign *)0,
+  0,
+  (char *)0,
+  (sh_iv_item_func_t *) 0,
+};
+
+static void
+_ignore_completion_names (names, name_func)
+     char **names;
+     sh_ignore_func_t *name_func;
+{
+  char **newnames;
+  int idx, nidx;
+  char **oldnames;
+  int oidx;
+
+  /* If there is only one completion, see if it is acceptable.  If it is
+     not, free it up.  In any case, short-circuit and return.  This is a
+     special case because names[0] is not the prefix of the list of names
+     if there is only one completion; it is the completion itself. */
+  if (names[1] == (char *)0)
+    {
+      if (force_fignore)
+       if ((*name_func) (names[0]) == 0)
+         {
+           free (names[0]);
+           names[0] = (char *)NULL;
+         }
+
+      return;
+    }
+
+  /* Allocate space for array to hold list of pointers to matching
+     filenames.  The pointers are copied back to NAMES when done. */
+  for (nidx = 1; names[nidx]; nidx++)
+    ;
+  newnames = strvec_create (nidx + 1);
+
+  if (force_fignore == 0)
+    {
+      oldnames = strvec_create (nidx - 1);
+      oidx = 0;
+    }
+
+  newnames[0] = names[0];
+  for (idx = nidx = 1; names[idx]; idx++)
+    {
+      if ((*name_func) (names[idx]))
+       newnames[nidx++] = names[idx];
+      else if (force_fignore == 0)
+       oldnames[oidx++] = names[idx];
+      else
+       free (names[idx]);
+    }
+
+  newnames[nidx] = (char *)NULL;
+
+  /* If none are acceptable then let the completer handle it. */
+  if (nidx == 1)
+    {
+      if (force_fignore)
+       {
+         free (names[0]);
+         names[0] = (char *)NULL;
+       }
+      else
+       free (oldnames);
+
+      free (newnames);
+      return;
+    }
+
+  if (force_fignore == 0)
+    {
+      while (oidx)
+       free (oldnames[--oidx]);
+      free (oldnames);
+    }
+
+  /* If only one is acceptable, copy it to names[0] and return. */
+  if (nidx == 2)
+    {
+      free (names[0]);
+      names[0] = newnames[1];
+      names[1] = (char *)NULL;
+      free (newnames);
+      return;
+    }
+
+  /* Copy the acceptable names back to NAMES, set the new array end,
+     and return. */
+  for (nidx = 1; newnames[nidx]; nidx++)
+    names[nidx] = newnames[nidx];
+  names[nidx] = (char *)NULL;
+  free (newnames);
+}
+
+static int
+name_is_acceptable (name)
+     const char *name;
+{
+  struct ign *p;
+  int nlen;
+
+  for (nlen = strlen (name), p = fignore.ignores; p->val; p++)
+    {
+      if (nlen > p->len && p->len > 0 && STREQ (p->val, &name[nlen - p->len]))
+       return (0);
+    }
+
+  return (1);
+}
+
+#if 0
+static int
+ignore_dot_names (name)
+     char *name;
+{
+  return (name[0] != '.');
+}
+#endif
+
+static int
+filename_completion_ignore (names)
+     char **names;
+{
+#if 0
+  if (glob_dot_filenames == 0)
+    _ignore_completion_names (names, ignore_dot_names);
+#endif
+
+  setup_ignore_patterns (&fignore);
+
+  if (fignore.num_ignores == 0)
+    return 0;
+
+  _ignore_completion_names (names, name_is_acceptable);
+
+  return 0;
+}
+
+/* Return 1 if NAME is a directory.  NAME undergoes tilde expansion. */
+static int
+test_for_directory (name)
+     const char *name;
+{
+  char *fn;
+  int r;
+
+  fn = bash_tilde_expand (name, 0);
+  r = file_isdir (fn);
+  free (fn);
+
+  return (r);
+}
+
+/* Remove files from NAMES, leaving directories. */
+static int
+bash_ignore_filenames (names)
+     char **names;
+{
+  _ignore_completion_names (names, test_for_directory);
+  return 0;
+}
+
+static int
+return_zero (name)
+     const char *name;
+{
+  return 0;
+}
+
+static int
+bash_ignore_everything (names)
+     char **names;
+{
+  _ignore_completion_names (names, return_zero);
+  return 0;
+}
+
+/* Replace a tilde-prefix in VAL with a `~', assuming the user typed it.  VAL
+   is an expanded filename.  DIRECTORY_PART is the tilde-prefix portion
+   of the un-tilde-expanded version of VAL (what the user typed). */
+static char *
+restore_tilde (val, directory_part)
+     char *val, *directory_part;
+{
+  int l, vl, dl2, xl;
+  char *dh2, *expdir, *ret;
+
+  vl = strlen (val);
+
+  /* We need to duplicate the expansions readline performs on the directory
+     portion before passing it to our completion function. */
+  dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0;
+  bash_directory_expansion (&dh2);
+  dl2 = strlen (dh2);
+
+  expdir = bash_tilde_expand (directory_part, 0);
+  xl = strlen (expdir);
+  free (expdir);
+
+  /*
+     dh2 = unexpanded but dequoted tilde-prefix
+     dl2 = length of tilde-prefix
+     expdir = tilde-expanded tilde-prefix
+     xl = length of expanded tilde-prefix
+     l = length of remainder after tilde-prefix
+  */
+  l = (vl - xl) + 1;
+
+  ret = (char *)xmalloc (dl2 + 2 + l);
+  strcpy (ret, dh2);
+  strcpy (ret + dl2, val + xl);
+
+  free (dh2);
+  return (ret);
+}
+
+/* Simulate the expansions that will be performed by
+   rl_filename_completion_function.  This must be called with the address of
+   a pointer to malloc'd memory. */
+static void
+bash_directory_expansion (dirname)
+     char **dirname;
+{
+  char *d, *nd;
+
+  d = savestring (*dirname);
+
+  if ((rl_directory_rewrite_hook) && (*rl_directory_rewrite_hook) (&d))
+    {
+      free (*dirname);
+      *dirname = d;
+    }
+  else if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&d))
+    {
+      free (*dirname);
+      *dirname = d;
+    }
+  else if (rl_completion_found_quote)
+    {
+      nd = bash_dequote_filename (d, rl_completion_quote_character);
+      free (*dirname);
+      free (d);
+      *dirname = nd;
+    }
+}
+
+/* If necessary, rewrite directory entry */
+static char *
+bash_filename_rewrite_hook (fname, fnlen)
+     char *fname;
+     int fnlen;
+{
+  char *conv;
+
+  conv = fnx_fromfs (fname, fnlen);
+  if (conv != fname)
+    conv = savestring (conv);
+  return conv;
+}
+
+/* Functions to save and restore the appropriate directory hook */
+/* This is not static so the shopt code can call it */
+void
+set_directory_hook ()
+{
+  if (dircomplete_expand)
+    {
+      rl_directory_completion_hook = bash_directory_completion_hook;
+      rl_directory_rewrite_hook = (rl_icppfunc_t *)0;
+    }
+  else
+    {
+      rl_directory_rewrite_hook = bash_directory_completion_hook;
+      rl_directory_completion_hook = (rl_icppfunc_t *)0;
+    }
+}
+
+static rl_icppfunc_t *
+save_directory_hook ()
+{
+  rl_icppfunc_t *ret;
+
+  if (dircomplete_expand)
+    {
+      ret = rl_directory_completion_hook;
+      rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+    }
+  else
+    {
+      ret = rl_directory_rewrite_hook;
+      rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+    }
+
+  return ret;
+}
+
+static void
+restore_directory_hook (hookf)
+     rl_icppfunc_t *hookf;
+{
+  if (dircomplete_expand)
+    rl_directory_completion_hook = hookf;
+  else
+    rl_directory_rewrite_hook = hookf;
+}
+
+/* Expand a filename before the readline completion code passes it to stat(2).
+   The filename will already have had tilde expansion performed. */
+static int
+bash_filename_stat_hook (dirname)
+     char **dirname;
+{
+  char *local_dirname, *new_dirname, *t;
+  int should_expand_dirname, return_value;
+  WORD_LIST *wl;
+  struct stat sb;
+
+  local_dirname = *dirname;
+  should_expand_dirname = return_value = 0;
+  if (t = mbschr (local_dirname, '$'))
+    should_expand_dirname = '$';
+  else if (t = mbschr (local_dirname, '`'))    /* XXX */
+    should_expand_dirname = '`';
+
+#if defined (HAVE_LSTAT)
+  if (should_expand_dirname && lstat (local_dirname, &sb) == 0)
+#else
+  if (should_expand_dirname && stat (local_dirname, &sb) == 0)
+#endif
+    should_expand_dirname = 0;
+  
+  if (should_expand_dirname)  
+    {
+      new_dirname = savestring (local_dirname);
+      wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB);  /* does the right thing */
+      if (wl)
+       {
+         free (new_dirname);
+         new_dirname = string_list (wl);
+         /* Tell the completer we actually expanded something and change
+            *dirname only if we expanded to something non-null -- stat
+            behaves unpredictably when passed null or empty strings */
+         if (new_dirname && *new_dirname)
+           {
+             *dirname = new_dirname;
+             return_value = STREQ (local_dirname, *dirname) == 0;
+           }
+         else
+           free (new_dirname);
+         free (local_dirname);
+         dispose_words (wl);
+       }
+      else
+       free (new_dirname);
+    }  
+
+  return (return_value);
+}
+
+/* Handle symbolic link references and other directory name
+   expansions while hacking completion.  This should return 1 if it modifies
+   the DIRNAME argument, 0 otherwise.  It should make sure not to modify
+   DIRNAME if it returns 0. */
+static int
+bash_directory_completion_hook (dirname)
+     char **dirname;
+{
+  char *local_dirname, *new_dirname, *t;
+  int return_value, should_expand_dirname, nextch, closer;
+  WORD_LIST *wl;
+  struct stat sb;
+
+  return_value = should_expand_dirname = nextch = closer = 0;
+  local_dirname = *dirname;
+
+  if (t = mbschr (local_dirname, '$'))
+    {
+      should_expand_dirname = '$';
+      nextch = t[1];
+      /* Deliberately does not handle the deprecated $[...] arithmetic
+        expansion syntax */
+      if (nextch == '(')
+       closer = ')';
+      else if (nextch == '{')
+       closer = '}';
+      else
+       nextch = 0;
+    }
+  else
+    {
+      t = mbschr (local_dirname, '`');
+      if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
+       should_expand_dirname = '`';
+    }
+
+#if defined (HAVE_LSTAT)
+  if (should_expand_dirname && lstat (local_dirname, &sb) == 0)
+#else
+  if (should_expand_dirname && stat (local_dirname, &sb) == 0)
+#endif
+    should_expand_dirname = 0;
+
+  if (should_expand_dirname)  
+    {
+      new_dirname = savestring (local_dirname);
+      wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB);  /* does the right thing */
+      if (wl)
+       {
+         *dirname = string_list (wl);
+         /* Tell the completer to replace the directory name only if we
+            actually expanded something. */
+         return_value = STREQ (local_dirname, *dirname) == 0;
+         free (local_dirname);
+         free (new_dirname);
+         dispose_words (wl);
+         local_dirname = *dirname;
+         /* XXX - change rl_filename_quote_characters here based on
+            should_expand_dirname/nextch/closer.  This is the only place
+            custom_filename_quote_characters is modified. */
+         if (rl_filename_quote_characters && *rl_filename_quote_characters)
+           {
+             int i, j, c;
+             i = strlen (default_filename_quote_characters);
+             custom_filename_quote_characters = xrealloc (custom_filename_quote_characters, i+1);
+             for (i = j = 0; c = default_filename_quote_characters[i]; i++)
+               {
+                 if (c == should_expand_dirname || c == nextch || c == closer)
+                   continue;
+                 custom_filename_quote_characters[j++] = c;
+               }
+             custom_filename_quote_characters[j] = '\0';
+             rl_filename_quote_characters = custom_filename_quote_characters;
+             set_filename_bstab (rl_filename_quote_characters);
+           }
+       }
+      else
+       {
+         free (new_dirname);
+         free (local_dirname);
+         *dirname = (char *)xmalloc (1);
+         **dirname = '\0';
+         return 1;
+       }
+    }
+  else 
+    {
+      /* Dequote the filename even if we don't expand it. */
+      new_dirname = bash_dequote_filename (local_dirname, rl_completion_quote_character);
+      return_value = STREQ (local_dirname, new_dirname) == 0;
+      free (local_dirname);
+      local_dirname = *dirname = new_dirname;
+    }
+
+  /* no_symbolic_links == 0 -> use (default) logical view of the file system.
+     local_dirname[0] == '.' && local_dirname[1] == '/' means files in the
+     current directory (./).
+     local_dirname[0] == '.' && local_dirname[1] == 0 means relative pathnames
+     in the current directory (e.g., lib/sh).
+     XXX - should we do spelling correction on these? */
+
+  /* This is test as it was in bash-4.2: skip relative pathnames in current
+     directory.  Change test to
+      (local_dirname[0] != '.' || (local_dirname[1] && local_dirname[1] != '/'))
+     if we want to skip paths beginning with ./ also. */
+  if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1]))
+    {
+      char *temp1, *temp2;
+      int len1, len2;
+
+      /* If we have a relative path
+               (local_dirname[0] != '/' && local_dirname[0] != '.')
+        that is canonical after appending it to the current directory, then
+               temp1 = temp2+'/'
+        that is,
+               strcmp (temp1, temp2) == 0
+        after adding a slash to temp2 below.  It should be safe to not
+        change those.
+      */
+      t = get_working_directory ("symlink-hook");
+      temp1 = make_absolute (local_dirname, t);
+      free (t);
+      temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
+
+      /* Try spelling correction if initial canonicalization fails. */
+      if (temp2 == 0 && dircomplete_spelling)
+       {
+         temp2 = dirspell (temp1);
+         if (temp2)
+           {
+             free (temp1);
+             temp1 = temp2;
+             temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
+             return_value |= temp2 != 0;
+           }
+       }
+      /* If we can't canonicalize, bail. */
+      if (temp2 == 0)
+       {
+         free (temp1);
+         return return_value;
+       }
+      len1 = strlen (temp1);
+      if (temp1[len1 - 1] == '/')
+       {
+         len2 = strlen (temp2);
+         if (len2 > 2)         /* don't append `/' to `/' or `//' */
+           {
+             temp2 = (char *)xrealloc (temp2, len2 + 2);
+             temp2[len2] = '/';
+             temp2[len2 + 1] = '\0';
+           }
+       }
+
+      /* dircomplete_expand_relpath == 0 means we want to leave relative
+        pathnames that are unchanged by canonicalization alone.
+        *local_dirname != '/' && *local_dirname != '.' == relative pathname
+        (consistent with general.c:absolute_pathname())
+        temp1 == temp2 (after appending a slash to temp2) means the pathname
+        is not changed by canonicalization as described above. */
+      if (dircomplete_expand_relpath || ((local_dirname[0] != '/' && local_dirname[0] != '.') && STREQ (temp1, temp2) == 0))
+       return_value |= STREQ (local_dirname, temp2) == 0;
+      free (local_dirname);
+      *dirname = temp2;
+      free (temp1);
+    }
+
+  return (return_value);
+}
+
+static char **history_completion_array = (char **)NULL;
+static int harry_size;
+static int harry_len;
+
+static void
+build_history_completion_array ()
+{
+  register int i, j;
+  HIST_ENTRY **hlist;
+  char **tokens;
+
+  /* First, clear out the current dynamic history completion list. */
+  if (harry_size)
+    {
+      strvec_dispose (history_completion_array);
+      history_completion_array = (char **)NULL;
+      harry_size = 0;
+      harry_len = 0;
+    }
+
+  /* Next, grovel each line of history, making each shell-sized token
+     a separate entry in the history_completion_array. */
+  hlist = history_list ();
+
+  if (hlist)
+    {
+      for (i = 0; hlist[i]; i++)
+       ;
+      for ( --i; i >= 0; i--)
+       {
+         /* Separate each token, and place into an array. */
+         tokens = history_tokenize (hlist[i]->line);
+
+         for (j = 0; tokens && tokens[j]; j++)
+           {
+             if (harry_len + 2 > harry_size)
+               history_completion_array = strvec_resize (history_completion_array, harry_size += 10);
+
+             history_completion_array[harry_len++] = tokens[j];
+             history_completion_array[harry_len] = (char *)NULL;
+           }
+         free (tokens);
+       }
+
+      /* Sort the complete list of tokens. */
+      if (dabbrev_expand_active == 0)
+        qsort (history_completion_array, harry_len, sizeof (char *), (QSFUNC *)strvec_strcmp);
+    }
+}
+
+static char *
+history_completion_generator (hint_text, state)
+     const char *hint_text;
+     int state;
+{
+  static int local_index, len;
+  static const char *text;
+
+  /* If this is the first call to the generator, then initialize the
+     list of strings to complete over. */
+  if (state == 0)
+    {
+      if (dabbrev_expand_active)       /* This is kind of messy */
+       rl_completion_suppress_append = 1;
+      local_index = 0;
+      build_history_completion_array ();
+      text = hint_text;
+      len = strlen (text);
+    }
+
+  while (history_completion_array && history_completion_array[local_index])
+    {
+      if (strncmp (text, history_completion_array[local_index++], len) == 0)
+       return (savestring (history_completion_array[local_index - 1]));
+    }
+  return ((char *)NULL);
+}
+
+static int
+dynamic_complete_history (count, key)
+     int count, key;
+{
+  int r;
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+  rl_compignore_func_t *orig_ignore_func;
+
+  orig_func = rl_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  orig_ignore_func = rl_ignore_some_completions_function;
+
+  rl_completion_entry_function = history_completion_generator;
+  rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+
+  /* XXX - use rl_completion_mode here? */
+  if (rl_last_func == dynamic_complete_history)
+    r = rl_complete_internal ('?');
+  else
+    r = rl_complete_internal (TAB);
+
+  rl_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+  rl_ignore_some_completions_function = orig_ignore_func;
+
+  return r;
+}
+
+static int
+bash_dabbrev_expand (count, key)
+     int count, key;
+{
+  int r, orig_suppress, orig_sort;
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+  rl_compignore_func_t *orig_ignore_func;
+
+  orig_func = rl_menu_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  orig_ignore_func = rl_ignore_some_completions_function;
+  orig_suppress = rl_completion_suppress_append;
+  orig_sort = rl_sort_completion_matches;
+
+  rl_menu_completion_entry_function = history_completion_generator;
+  rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+  rl_filename_completion_desired = 0;
+  rl_completion_suppress_append = 1;
+  rl_sort_completion_matches = 0;
+
+  /* XXX - use rl_completion_mode here? */
+  dabbrev_expand_active = 1;
+  if (rl_last_func == bash_dabbrev_expand)
+    rl_last_func = rl_menu_complete;
+  r = rl_menu_complete (count, key);
+  dabbrev_expand_active = 0;
+
+  rl_last_func = bash_dabbrev_expand;
+  rl_menu_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+  rl_ignore_some_completions_function = orig_ignore_func;
+  rl_completion_suppress_append = orig_suppress;
+  rl_sort_completion_matches = orig_sort;
+
+  return r;
+}
+
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+static int
+bash_complete_username (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_username_internal (rl_completion_mode (bash_complete_username));
+}
+
+static int
+bash_possible_username_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_username_internal ('?');
+}
+
+static int
+bash_complete_username_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, rl_username_completion_function);
+}
+
+static int
+bash_complete_filename (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_filename_internal (rl_completion_mode (bash_complete_filename));
+}
+
+static int
+bash_possible_filename_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_filename_internal ('?');
+}
+
+static int
+bash_complete_filename_internal (what_to_do)
+     int what_to_do;
+{
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+  rl_icppfunc_t *orig_dir_func;
+  rl_compignore_func_t *orig_ignore_func;
+  /*const*/ char *orig_rl_completer_word_break_characters;
+  int r;
+
+  orig_func = rl_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  orig_ignore_func = rl_ignore_some_completions_function;
+  orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
+
+  orig_dir_func = save_directory_hook ();
+
+  rl_completion_entry_function = rl_filename_completion_function;
+  rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+  rl_ignore_some_completions_function = filename_completion_ignore;
+  rl_completer_word_break_characters = " \t\n\"\'";
+
+  r = rl_complete_internal (what_to_do);
+
+  rl_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+  rl_ignore_some_completions_function = orig_ignore_func;
+  rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
+
+  restore_directory_hook (orig_dir_func);
+
+  return r;
+}
+
+static int
+bash_complete_hostname (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_hostname_internal (rl_completion_mode (bash_complete_hostname));
+}
+
+static int
+bash_possible_hostname_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_hostname_internal ('?');
+}
+
+static int
+bash_complete_variable (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_variable_internal (rl_completion_mode (bash_complete_variable));
+}
+
+static int
+bash_possible_variable_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_variable_internal ('?');
+}
+
+static int
+bash_complete_command (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_command_internal (rl_completion_mode (bash_complete_command));
+}
+
+static int
+bash_possible_command_completions (ignore, ignore2)
+     int ignore, ignore2;
+{
+  return bash_complete_command_internal ('?');
+}
+
+static int
+bash_complete_hostname_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, hostname_completion_function);
+}
+
+static int
+bash_complete_variable_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, variable_completion_function);
+}
+
+static int
+bash_complete_command_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, command_word_completion_function);
+}
+
+static char *globtext;
+static char *globorig;
+
+static char *
+glob_complete_word (text, state)
+     const char *text;
+     int state;
+{
+  static char **matches = (char **)NULL;
+  static int ind;
+  int glen;
+  char *ret, *ttext;
+
+  if (state == 0)
+    {
+      rl_filename_completion_desired = 1;
+      FREE (matches);
+      if (globorig != globtext)
+       FREE (globorig);
+      FREE (globtext);
+
+      ttext = bash_tilde_expand (text, 0);
+
+      if (rl_explicit_arg)
+       {
+         globorig = savestring (ttext);
+         glen = strlen (ttext);
+         globtext = (char *)xmalloc (glen + 2);
+         strcpy (globtext, ttext);
+         globtext[glen] = '*';
+         globtext[glen+1] = '\0';
+       }
+      else
+        globtext = globorig = savestring (ttext);
+
+      if (ttext != text)
+       free (ttext);
+
+      matches = shell_glob_filename (globtext);
+      if (GLOB_FAILED (matches))
+       matches = (char **)NULL;
+      ind = 0;
+    }
+
+  ret = matches ? matches[ind] : (char *)NULL;
+  ind++;
+  return ret;
+}
+
+static int
+bash_glob_completion_internal (what_to_do)
+     int what_to_do;
+{
+  return bash_specific_completion (what_to_do, glob_complete_word);
+}
+
+/* A special quoting function so we don't end up quoting globbing characters
+   in the word if there are no matches or multiple matches. */
+static char *
+bash_glob_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  if (globorig && qcp && *qcp == '\0' && STREQ (s, globorig))
+    return (savestring (s));
+  else
+    return (bash_quote_filename (s, rtype, qcp));
+}
+
+static int
+bash_glob_complete_word (count, key)
+     int count, key;
+{
+  int r;
+  rl_quote_func_t *orig_quoting_function;
+
+  if (rl_editing_mode == EMACS_EDITING_MODE)
+    rl_explicit_arg = 1;       /* force `*' append */
+  orig_quoting_function = rl_filename_quoting_function;
+  rl_filename_quoting_function = bash_glob_quote_filename;
+  
+  r = bash_glob_completion_internal (rl_completion_mode (bash_glob_complete_word));
+
+  rl_filename_quoting_function = orig_quoting_function;
+  return r;
+}
+
+static int
+bash_glob_expand_word (count, key)
+     int count, key;
+{
+  return bash_glob_completion_internal ('*');
+}
+
+static int
+bash_glob_list_expansions (count, key)
+     int count, key;
+{
+  return bash_glob_completion_internal ('?');
+}
+
+static int
+bash_specific_completion (what_to_do, generator)
+     int what_to_do;
+     rl_compentry_func_t *generator;
+{
+  rl_compentry_func_t *orig_func;
+  rl_completion_func_t *orig_attempt_func;
+  rl_compignore_func_t *orig_ignore_func;
+  int r;
+
+  orig_func = rl_completion_entry_function;
+  orig_attempt_func = rl_attempted_completion_function;
+  orig_ignore_func = rl_ignore_some_completions_function;
+  rl_completion_entry_function = generator;
+  rl_attempted_completion_function = NULL;
+  rl_ignore_some_completions_function = orig_ignore_func;
+
+  r = rl_complete_internal (what_to_do);
+
+  rl_completion_entry_function = orig_func;
+  rl_attempted_completion_function = orig_attempt_func;
+  rl_ignore_some_completions_function = orig_ignore_func;
+
+  return r;
+}
+
+#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
+
+#if defined (VI_MODE)
+/* Completion, from vi mode's point of view.  This is a modified version of
+   rl_vi_complete which uses the bash globbing code to implement what POSIX
+   specifies, which is to append a `*' and attempt filename generation (which
+   has the side effect of expanding any globbing characters in the word). */
+static int
+bash_vi_complete (count, key)
+     int count, key;
+{
+#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
+  int p, r;
+  char *t;
+
+  if ((rl_point < rl_end) && (!whitespace (rl_line_buffer[rl_point])))
+    {
+      if (!whitespace (rl_line_buffer[rl_point + 1]))
+       rl_vi_end_word (1, 'E');
+      rl_point++;
+    }
+
+  /* Find boundaries of current word, according to vi definition of a
+     `bigword'. */
+  t = 0;
+  if (rl_point > 0)
+    {
+      p = rl_point;
+      rl_vi_bWord (1, 'B');
+      r = rl_point;
+      rl_point = p;
+      p = r;
+
+      t = substring (rl_line_buffer, p, rl_point);
+    }      
+
+  if (t && glob_pattern_p (t) == 0)
+    rl_explicit_arg = 1;       /* XXX - force glob_complete_word to append `*' */
+  FREE (t);
+
+  if (key == '*')      /* Expansion and replacement. */
+    r = bash_glob_expand_word (count, key);
+  else if (key == '=') /* List possible completions. */
+    r = bash_glob_list_expansions (count, key);
+  else if (key == '\\')        /* Standard completion */
+    r = bash_glob_complete_word (count, key);
+  else
+    r = rl_complete (0, key);
+
+  if (key == '*' || key == '\\')
+    rl_vi_start_inserting (key, 1, 1);
+
+  return (r);
+#else
+  return rl_vi_complete (count, key);
+#endif /* !SPECIFIC_COMPLETION_FUNCTIONS */
+}
+#endif /* VI_MODE */
+
+/* Filename quoting for completion. */
+/* A function to strip unquoted quote characters (single quotes, double
+   quotes, and backslashes).  It allows single quotes to appear
+   within double quotes, and vice versa.  It should be smarter. */
+static char *
+bash_dequote_filename (text, quote_char)
+     char *text;
+     int quote_char;
+{
+  char *ret, *p, *r;
+  int l, quoted;
+
+  l = strlen (text);
+  ret = (char *)xmalloc (l + 1);
+  for (quoted = quote_char, p = text, r = ret; p && *p; p++)
+    {
+      /* Allow backslash-escaped characters to pass through unscathed. */
+      if (*p == '\\')
+       {
+         /* Backslashes are preserved within single quotes. */
+         if (quoted == '\'')
+           *r++ = *p;
+         /* Backslashes are preserved within double quotes unless the
+            character is one that is defined to be escaped */
+         else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0))
+           *r++ = *p;
+
+         *r++ = *++p;
+         if (*p == '\0')
+           return ret;         /* XXX - was break; */
+         continue;
+       }
+      /* Close quote. */
+      if (quoted && *p == quoted)
+       {
+         quoted = 0;
+         continue;
+       }
+      /* Open quote. */
+      if (quoted == 0 && (*p == '\'' || *p == '"'))
+       {
+         quoted = *p;
+         continue;
+       }
+      *r++ = *p;
+    }
+  *r = '\0';
+  return ret;
+}
+
+/* Quote characters that the readline completion code would treat as
+   word break characters with backslashes.  Pass backslash-quoted
+   characters through without examination. */
+static char *
+quote_word_break_chars (text)
+     char *text;
+{
+  char *ret, *r, *s;
+  int l;
+
+  l = strlen (text);
+  ret = (char *)xmalloc ((2 * l) + 1);
+  for (s = text, r = ret; *s; s++)
+    {
+      /* Pass backslash-quoted characters through, including the backslash. */
+      if (*s == '\\')
+       {
+         *r++ = '\\';
+         *r++ = *++s;
+         if (*s == '\0')
+           break;
+         continue;
+       }
+      /* OK, we have an unquoted character.  Check its presence in
+        rl_completer_word_break_characters. */
+      if (mbschr (rl_completer_word_break_characters, *s))
+       *r++ = '\\';
+      /* XXX -- check for standalone tildes here and backslash-quote them */
+      if (s == text && *s == '~' && file_exists (text))
+        *r++ = '\\';
+      *r++ = *s;
+    }
+  *r = '\0';
+  return ret;
+}
+
+/* Use characters in STRING to populate the table of characters that should
+   be backslash-quoted.  The table will be used for sh_backslash_quote from
+   this file. */
+static void
+set_filename_bstab (string)
+     const char *string;
+{
+  const char *s;
+
+  memset (filename_bstab, 0, sizeof (filename_bstab));
+  for (s = string; s && *s; s++)
+    filename_bstab[*s] = 1;
+}
+
+/* Quote a filename using double quotes, single quotes, or backslashes
+   depending on the value of completion_quoting_style.  If we're
+   completing using backslashes, we need to quote some additional
+   characters (those that readline treats as word breaks), so we call
+   quote_word_break_chars on the result.  This returns newly-allocated
+   memory. */
+static char *
+bash_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  char *rtext, *mtext, *ret;
+  int rlen, cs;
+
+  rtext = (char *)NULL;
+
+  /* If RTYPE == MULT_MATCH, it means that there is
+     more than one match.  In this case, we do not add
+     the closing quote or attempt to perform tilde
+     expansion.  If RTYPE == SINGLE_MATCH, we try
+     to perform tilde expansion, because single and double
+     quotes inhibit tilde expansion by the shell. */
+
+  cs = completion_quoting_style;
+  /* Might need to modify the default completion style based on *qcp,
+     since it's set to any user-provided opening quote.  We also change
+     to single-quoting if there is no user-provided opening quote and
+     the word being completed contains newlines, since those are not
+     quoted correctly using backslashes (a backslash-newline pair is
+     special to the shell parser). */
+  if (*qcp == '\0' && cs == COMPLETE_BSQUOTE && mbschr (s, '\n'))
+    cs = COMPLETE_SQUOTE;
+  else if (*qcp == '"')
+    cs = COMPLETE_DQUOTE;
+  else if (*qcp == '\'')
+    cs = COMPLETE_SQUOTE;
+#if defined (BANG_HISTORY)
+  else if (*qcp == '\0' && history_expansion && cs == COMPLETE_DQUOTE &&
+          history_expansion_inhibited == 0 && mbschr (s, '!'))
+    cs = COMPLETE_BSQUOTE;
+
+  if (*qcp == '"' && history_expansion && cs == COMPLETE_DQUOTE &&
+       history_expansion_inhibited == 0 && mbschr (s, '!'))
+    {
+      cs = COMPLETE_BSQUOTE;
+      *qcp = '\0';
+    }
+#endif
+
+  /* Don't tilde-expand backslash-quoted filenames, since only single and
+     double quotes inhibit tilde expansion. */
+  mtext = s;
+  if (mtext[0] == '~' && rtype == SINGLE_MATCH && cs != COMPLETE_BSQUOTE)
+    mtext = bash_tilde_expand (s, 0);
+
+  switch (cs)
+    {
+    case COMPLETE_DQUOTE:
+      rtext = sh_double_quote (mtext);
+      break;
+    case COMPLETE_SQUOTE:
+      rtext = sh_single_quote (mtext);
+      break;
+    case COMPLETE_BSQUOTE:
+      rtext = sh_backslash_quote (mtext, complete_fullquote ? 0 : filename_bstab);
+      break;
+    }
+
+  if (mtext != s)
+    free (mtext);
+
+  /* We may need to quote additional characters: those that readline treats
+     as word breaks that are not quoted by backslash_quote. */
+  if (rtext && cs == COMPLETE_BSQUOTE)
+    {
+      mtext = quote_word_break_chars (rtext);
+      free (rtext);
+      rtext = mtext;
+    }
+
+  /* Leave the opening quote intact.  The readline completion code takes
+     care of avoiding doubled opening quotes. */
+  if (rtext)
+    {
+      rlen = strlen (rtext);
+      ret = (char *)xmalloc (rlen + 1);
+      strcpy (ret, rtext);
+    }
+  else
+    {
+      ret = (char *)xmalloc (rlen = 1);
+      ret[0] = '\0';
+    }
+
+  /* If there are multiple matches, cut off the closing quote. */
+  if (rtype == MULT_MATCH && cs != COMPLETE_BSQUOTE)
+    ret[rlen - 1] = '\0';
+  free (rtext);
+  return ret;
+}
+
+/* Support for binding readline key sequences to Unix commands. */
+static Keymap cmd_xmap;
+
+static int
+putx(c)
+     int c;
+{
+  return (putc (c, rl_outstream));
+}
+  
+static int
+bash_execute_unix_command (count, key)
+     int count;        /* ignored */
+     int key;
+{
+  Keymap ckmap;                /* current keymap */
+  Keymap xkmap;                /* unix command executing keymap */
+  rl_command_func_t *func;
+  int type;
+  register int i, r;
+  intmax_t mi;
+  sh_parser_state_t ps;
+  char *cmd, *value, *l, *l1, *ce;
+  SHELL_VAR *v;
+  char ibuf[INT_STRLEN_BOUND(int) + 1];
+
+  /* First, we need to find the right command to execute.  This is tricky,
+     because we might have already indirected into another keymap, so we
+     have to walk cmd_xmap using the entire key sequence. */
+  cmd = (char *)rl_function_of_keyseq (rl_executing_keyseq, cmd_xmap, &type);
+    
+  if (cmd == 0 || type != ISMACR)
+    {
+      rl_crlf ();
+      internal_error (_("bash_execute_unix_command: cannot find keymap for command"));
+      rl_forced_update_display ();
+      return 1;
+    }
+
+  ce = rl_get_termcap ("ce");
+  if (ce)      /* clear current line */
+    {
+      fprintf (rl_outstream, "\r");
+      tputs (ce, 1, putx);
+      fflush (rl_outstream);
+    }
+  else
+    rl_crlf ();        /* move to a new line */
+
+  v = bind_variable ("READLINE_LINE", rl_line_buffer, 0);
+  if (v)
+    VSETATTR (v, att_exported);
+  l = v ? value_cell (v) : 0;
+  value = inttostr (rl_point, ibuf, sizeof (ibuf));
+  v = bind_int_variable ("READLINE_POINT", value);
+  if (v)
+    VSETATTR (v, att_exported);
+  array_needs_making = 1;
+
+  save_parser_state (&ps);
+  r = parse_and_execute (cmd, "bash_execute_unix_command", SEVAL_NOHIST|SEVAL_NOFREE);
+  restore_parser_state (&ps);
+
+  v = find_variable ("READLINE_LINE");
+  l1 = v ? value_cell (v) : 0;
+  if (l1 != l)
+    maybe_make_readline_line (value_cell (v));
+  v = find_variable ("READLINE_POINT");
+  if (v && legal_number (value_cell (v), &mi))
+    {
+      i = mi;
+      if (i != rl_point)
+       {
+         rl_point = i;
+         if (rl_point > rl_end)
+           rl_point = rl_end;
+         else if (rl_point < 0)
+           rl_point = 0;
+       }
+    }      
+
+  unbind_variable ("READLINE_LINE");
+  unbind_variable ("READLINE_POINT");
+  array_needs_making = 1;
+
+  /* and restore the readline buffer and display after command execution. */
+  rl_forced_update_display ();
+  return 0;
+}
+
+int
+print_unix_command_map ()
+{
+  Keymap save;
+
+  save = rl_get_keymap ();
+  rl_set_keymap (cmd_xmap);
+  rl_macro_dumper (1);
+  rl_set_keymap (save);
+  return 0;
+}
+
+static void
+init_unix_command_map ()
+{
+  cmd_xmap = rl_make_bare_keymap ();
+}
+
+static int
+isolate_sequence (string, ind, need_dquote, startp)
+     char *string;
+     int ind, need_dquote, *startp;
+{
+  register int i;
+  int c, passc, delim;
+
+  for (i = ind; string[i] && whitespace (string[i]); i++)
+    ;
+  /* NEED_DQUOTE means that the first non-white character *must* be `"'. */
+  if (need_dquote && string[i] != '"')
+    {
+      builtin_error (_("%s: first non-whitespace character is not `\"'"), string);
+      return -1;
+    }
+
+  /* We can have delimited strings even if NEED_DQUOTE == 0, like the command
+     string to bind the key sequence to. */
+  delim = (string[i] == '"' || string[i] == '\'') ? string[i] : 0;
+    
+  if (startp)
+    *startp = delim ? ++i : i;
+
+  for (passc = 0; c = string[i]; i++)
+    {
+      if (passc)
+       {
+         passc = 0;
+         continue;
+       }
+      if (c == '\\')
+       {
+         passc++;
+         continue;
+       }
+      if (c == delim)
+       break;
+    }
+
+  if (delim && string[i] != delim)
+    {
+      builtin_error (_("no closing `%c' in %s"), delim, string);
+      return -1;
+    }
+
+  return i;
+}
+
+int
+bind_keyseq_to_unix_command (line)
+     char *line;
+{
+  Keymap kmap;
+  char *kseq, *value;
+  int i, kstart;
+
+  if (cmd_xmap == 0)
+    init_unix_command_map ();
+
+  kmap = rl_get_keymap ();
+
+  /* We duplicate some of the work done by rl_parse_and_bind here, but
+     this code only has to handle `"keyseq": ["]command["]' and can
+     generate an error for anything else. */
+  i = isolate_sequence (line, 0, 1, &kstart);
+  if (i < 0)
+    return -1;
+
+  /* Create the key sequence string to pass to rl_generic_bind */
+  kseq = substring (line, kstart, i);
+
+  for ( ; line[i] && line[i] != ':'; i++)
+    ;
+  if (line[i] != ':')
+    {
+      builtin_error (_("%s: missing colon separator"), line);
+      FREE (kseq);
+      return -1;
+    }
+
+  i = isolate_sequence (line, i + 1, 0, &kstart);
+  if (i < 0)
+    {
+      FREE (kseq);
+      return -1;
+    }
+
+  /* Create the value string containing the command to execute. */
+  value = substring (line, kstart, i);
+
+  /* Save the command to execute and the key sequence in the CMD_XMAP */
+  rl_generic_bind (ISMACR, kseq, value, cmd_xmap);
+
+  /* and bind the key sequence in the current keymap to a function that
+     understands how to execute from CMD_XMAP */
+  rl_bind_keyseq_in_map (kseq, bash_execute_unix_command, kmap);
+
+  free (kseq);  
+  return 0;
+}
+
+/* Used by the programmable completion code.  Complete TEXT as a filename,
+   but return only directories as matches.  Dequotes the filename before
+   attempting to find matches. */
+char **
+bash_directory_completion_matches (text)
+     const char *text;
+{
+  char **m1;
+  char *dfn;
+  int qc;
+
+  qc = rl_dispatching ? rl_completion_quote_character : 0;  
+  dfn = bash_dequote_filename ((char *)text, qc);
+  m1 = rl_completion_matches (dfn, rl_filename_completion_function);
+  free (dfn);
+
+  if (m1 == 0 || m1[0] == 0)
+    return m1;
+  /* We don't bother recomputing the lcd of the matches, because it will just
+     get thrown away by the programmable completion code and recomputed
+     later. */
+  (void)bash_ignore_filenames (m1);
+  return m1;
+}
+
+char *
+bash_dequote_text (text)
+     const char *text;
+{
+  char *dtxt;
+  int qc;
+
+  qc = (text[0] == '"' || text[0] == '\'') ? text[0] : 0;
+  dtxt = bash_dequote_filename ((char *)text, qc);
+  return (dtxt);
+}
+
+static int
+bash_event_hook ()
+{
+#if defined (DEBUG)
+itrace("bash_event_hook");
+#endif
+  CHECK_TERMSIG;
+}
+
+#endif /* READLINE */
index fe812dee01ad5bf156aa30375feecbefd2380f99..f6d3055dd65838dfb4d8eee7e0eee4b6de32ba84 100644 (file)
@@ -309,7 +309,7 @@ parse_and_execute (string, from_file, flags)
                  command->value.Simple->redirects &&
                  command->value.Simple->redirects->next == 0 &&
                  command->value.Simple->redirects->instruction == r_input_direction &&
-                 command->value.Simple->redirects->redirector.dest == 1)
+                 command->value.Simple->redirects->redirector.dest == 0)
                {
                  int r;
                  r = cat_file (command->value.Simple->redirects);
diff --git a/builtins/evalstring.c~ b/builtins/evalstring.c~
new file mode 100644 (file)
index 0000000..fe812de
--- /dev/null
@@ -0,0 +1,508 @@
+/* evalstring.c - evaluate a string as one or more shell commands. */
+
+/* Copyright (C) 1996-2012 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 &&
+                 command->value.Simple->redirects->redirector.dest == 1)
+               {
+                 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)
+           {
+             should_jump_to_top_level = 1;
+             code = ERREXIT;
+             last_command_exit_value = EX_BADUSAGE;
+           }
+
+         /* 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/cross-build/cygwin32.cache.old b/cross-build/cygwin32.cache.old
new file mode 100644 (file)
index 0000000..640390f
--- /dev/null
@@ -0,0 +1,42 @@
+# This file is a shell script that caches the results of configure
+# tests for CYGWIN32 so they don't need to be done when cross-compiling.
+
+# AC_FUNC_GETPGRP should also define GETPGRP_VOID
+ac_cv_func_getpgrp_void=${ac_cv_func_getpgrp_void='yes'}
+# AC_FUNC_SETVBUF_REVERSED should not define anything else
+ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed='no'}
+# on CYGWIN32, system calls do not restart
+ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}
+bash_cv_sys_restartable_syscalls=${bash_cv_sys_restartable_syscalls='no'}
+
+# these may be necessary, but they are currently commented out
+#ac_cv_c_bigendian=${ac_cv_c_bigendian='no'}
+ac_cv_sizeof_char_p=${ac_cv_sizeof_char_p='4'}
+ac_cv_sizeof_int=${ac_cv_sizeof_int='4'}
+ac_cv_sizeof_long=${ac_cv_sizeof_long='4'}
+ac_cv_sizeof_double=${ac_cv_sizeof_double='8'}
+
+bash_cv_dup2_broken=${bash_cv_dup2_broken='no'}
+bash_cv_pgrp_pipe=${bash_cv_pgrp_pipe='no'}
+bash_cv_type_rlimit=${bash_cv_type_rlimit='long'}
+bash_cv_decl_under_sys_siglist=${bash_cv_decl_under_sys_siglist='no'}
+bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist='no'}
+bash_cv_sys_siglist=${bash_cv_sys_siglist='no'}
+bash_cv_opendir_not_robust=${bash_cv_opendir_not_robust='no'}
+bash_cv_getenv_redef=${bash_cv_getenv_redef='yes'}
+bash_cv_printf_declared=${bash_cv_printf_declared='yes'}
+bash_cv_ulimit_maxfds=${bash_cv_ulimit_maxfds='no'}
+bash_cv_getcwd_calls_popen=${bash_cv_getcwd_calls_popen='no'}
+bash_cv_must_reinstall_sighandlers=${bash_cv_must_reinstall_sighandlers='no'}
+bash_cv_job_control_missing=${bash_cv_job_control_missing='present'}
+bash_cv_sys_named_pipes=${bash_cv_sys_named_pipes='missing'}
+bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp='missing'}
+bash_cv_mail_dir=${bash_cv_mail_dir='unknown'}
+bash_cv_func_strcoll_broken=${bash_cv_func_strcoll_broken='no'}
+
+bash_cv_type_int32_t=${bash_cv_type_int32_t='int'}
+bash_cv_type_u_int32_t=${bash_cv_type_u_int32_t='int'}
+
+ac_cv_type_bits64_t=${ac_cv_type_bits64_t='no'}
+
+# end of cross-build/cygwin32.cache
diff --git a/doc/FAQ.orig b/doc/FAQ.orig
new file mode 100644 (file)
index 0000000..1cff3c8
--- /dev/null
@@ -0,0 +1,1745 @@
+This is the Bash FAQ, version 3.24, for Bash version 2.05b.
+
+This document contains a set of frequently-asked questions concerning
+Bash, the GNU Bourne-Again Shell.  Bash is a freely-available command
+interpreter with advanced features for both interactive use and shell
+programming.
+
+Another good source of basic information about shells is the collection
+of FAQ articles periodically posted to comp.unix.shell.
+
+Questions and comments concerning this document should be sent to
+chet@po.cwru.edu.
+
+This document is available for anonymous FTP with the URL
+
+ftp://ftp.cwru.edu/pub/bash/FAQ
+
+The Bash home page is http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
+
+----------
+Contents:
+
+Section A:  The Basics
+
+A1) What is it?
+A2) What's the latest version?
+A3) Where can I get it?
+A4) On what machines will bash run?
+A5) Will bash run on operating systems other than Unix?
+A6) How can I build bash with gcc?
+A7) How can I make bash my login shell?
+A8) I just changed my login shell to bash, and now I can't FTP into my
+    machine.  Why not?
+A9) What's the `POSIX 1003.2 standard'?
+A10) What is the bash `posix mode'?
+
+Section B:  The latest version
+
+B1) What's new in version 2.05b?
+B2) Are there any user-visible incompatibilities between bash-2.05b and
+    bash-1.14.7?
+
+Section C:  Differences from other Unix shells
+
+C1) How does bash differ from sh, the Bourne shell?
+C2) How does bash differ from the Korn shell, version ksh88?
+C3) Which new features in ksh-93 are not in bash, and which are?
+
+Section D:  Why does bash do some things differently than other Unix shells?
+
+D1) Why does bash run a different version of `command' than
+    `which command' says it will?
+D2) Why doesn't bash treat brace expansions exactly like csh?
+D3) Why doesn't bash have csh variable modifiers?
+D4) How can I make my csh aliases work when I convert to bash?
+D5) How can I pipe standard output and standard error from one command to
+    another, like csh does with `|&'?
+D6) Now that I've converted from ksh to bash, are there equivalents to
+    ksh features like autoloaded functions and the `whence' command?
+
+Section E:  Why does bash do certain things the way it does?
+
+E1) Why is the bash builtin `test' slightly different from /bin/test?
+E2) Why does bash sometimes say `Broken pipe'?
+E3) When I have terminal escape sequences in my prompt, why does bash
+    wrap lines at the wrong column?
+E4) If I pipe the output of a command into `read variable', why doesn't
+    the output show up in $variable when the read command finishes?
+E5) I have a bunch of shell scripts that use backslash-escaped characters
+    in arguments to `echo'.  Bash doesn't interpret these characters.  Why
+    not, and how can I make it understand them?
+E6) Why doesn't a while or for loop get suspended when I type ^Z?
+E7) What about empty for loops in Makefiles?
+E8) Why does the arithmetic evaluation code complain about `08'?
+E9) Why does the pattern matching expression [A-Z]* match files beginning
+    with every letter except `z'?
+E10) Why does `cd //' leave $PWD as `//'?
+E11) If I resize my xterm while another program is running, why doesn't bash
+     notice the change?
+
+Section F:  Things to watch out for on certain Unix versions
+
+F1) Why can't I use command line editing in my `cmdtool'?
+F2) I built bash on Solaris 2.  Why do globbing expansions and filename
+    completion chop off the first few characters of each filename?
+F3) Why does bash dump core after I interrupt username completion or
+    `~user' tilde expansion on a machine running NIS?
+F4) I'm running SVR4.2.  Why is the line erased every time I type `@'?
+F5) Why does bash report syntax errors when my C News scripts use a
+    redirection before a subshell command?
+F6) Why can't I use vi-mode editing on Red Hat Linux 6.1?
+F7) Why do bash-2.05a and  bash-2.05b fail to compile `printf.def' on
+    HP/UX 11.x?
+
+Section G:  How can I get bash to do certain common things?
+
+G1) How can I get bash to read and display eight-bit characters?
+G2) How do I write a function `x' to replace builtin command `x', but
+    still invoke the command from within the function?
+G3) How can I find the value of a shell variable whose name is the value
+    of another shell variable?
+G4) How can I make the bash `time' reserved word print timing output that
+    looks like the output from my system's /usr/bin/time?
+G5) How do I get the current directory into my prompt?
+G6) How can I rename "*.foo" to "*.bar"?
+G7) How can I translate a filename from uppercase to lowercase?
+G8) How can I write a filename expansion (globbing) pattern that will match
+    all files in the current directory except "." and ".."?
+
+Section H:  Where do I go from here?
+
+H1) How do I report bugs in bash, and where should I look for fixes and
+    advice?
+H2) What kind of bash documentation is there?
+H3) What's coming in future versions?
+H4) What's on the bash `wish list'?
+H5) When will the next release appear?
+
+----------
+Section A:  The Basics
+
+A1)  What is it?
+
+Bash is a Unix command interpreter (shell).  It is an implementation of
+the Posix 1003.2 shell standard, and resembles the Korn and System V
+shells.
+
+Bash contains a number of enhancements over those shells, both
+for interactive use and shell programming.  Features geared
+toward interactive use include command line editing, command
+history, job control, aliases, and prompt expansion.  Programming
+features include additional variable expansions, shell
+arithmetic, and a number of variables and options to control
+shell behavior.
+
+Bash was originally written by Brian Fox of the Free Software
+Foundation.  The current developer and maintainer is Chet Ramey
+of Case Western Reserve University.
+
+A2)  What's the latest version?
+
+The latest version is 2.05b, first made available on Wednesday, 17
+July, 2002.
+
+A3)  Where can I get it?
+
+Bash is the GNU project's shell, and so is available from the
+master GNU archive site, ftp.gnu.org, and its mirrors.  The
+latest version is also available for FTP from ftp.cwru.edu.
+The following URLs tell how to get version 2.05b:
+
+ftp://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-2.05b.tar.gz
+
+Formatted versions of the documentation are available with the URLs:
+
+ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-2.05b.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-doc-2.05b.tar.gz
+
+A4)  On what machines will bash run?
+
+Bash has been ported to nearly every version of UNIX.  All you
+should have to do to build it on a machine for which a port
+exists is to type `configure' and then `make'.  The build process
+will attempt to discover the version of UNIX you have and tailor
+itself accordingly, using a script created by GNU autoconf.
+
+More information appears in the file `INSTALL' in the distribution.
+
+The Bash web page (http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html)
+explains how to obtain binary versions of bash for most of the major
+commercial Unix systems.
+
+A5) Will bash run on operating systems other than Unix?
+
+Configuration specifics for Unix-like systems such as QNX and
+LynxOS are included in the distribution.  Bash-2.05 and later
+versions should compile and run on Minix 2.0 (patches were
+contributed), but I don't believe anyone has built bash-2.x on
+earlier Minix versions yet. 
+
+Bash has been ported to versions of Windows implementing the Win32
+programming interface.  This includes Windows 95 and Windows NT.
+The port was done by Cygnus Solutions as part of their CYGWIN
+project.  For more information about the project, look at the URLs
+
+http://www.cygwin.com/
+http://sourceware.cygnus.com/cygwin
+
+Cygnus originally ported bash-1.14.7, and that port was part of their
+early GNU-Win32 (the original name) releases.  Cygnus has also done a
+port of bash-2.05 to the CYGWIN environment, and it is available as
+part of their current release.
+
+Bash-2.05b should require no local Cygnus changes to build and run under
+CYGWIN.
+
+The Cygnus port works only on Intel machines.  There is a port of bash
+(I don't know which version) to the alpha/NT environment available from
+
+ftp://ftp.gnustep.org//pub/win32/bash-alpha-nt-1.01.tar.gz
+
+DJ Delorie has a port of bash-2.x which runs under MS-DOS, as part
+of the DJGPP project.  For more information on the project, see
+
+http://www.delorie.com/djgpp/
+
+I have been told that the original DJGPP port was done by Daisuke Aoyama.
+
+Mark Elbrecht <snowball3@bigfoot.com> has sent me notice that bash-2.04
+is available for DJGPP V2.  The files are available as:
+
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204b.zip binary
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204d.zip documentation
+ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip source
+
+Mark has begun to work with bash-2.05, but I don't know the status.
+
+Ports of bash-1.12 and bash-2.0 are available for OS/2 from
+
+ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash_112.zip
+ftp://hobbes.nmsu.edu/pub/os2/util/shell/bash-2.0(253).zip
+
+I haven't looked at either, but the second appears to be a binary-only
+distribution.  Beware.
+
+I have received word that Bash (I'm not sure which version, but I
+believe that it's at least bash-2.02.1) is the standard shell on
+BeOS.
+
+A6) How can I build bash with gcc? 
+
+Bash configures to use gcc by default if it is available.  Read the
+file INSTALL in the distribution for more information.
+
+A7)  How can I make bash my login shell?
+
+Some machines let you use `chsh' to change your login shell.  Other
+systems use `passwd -s' or `passwd -e'.  If one of these works for
+you, that's all you need.  Note that many systems require the full
+pathname to a shell to appear in /etc/shells before you can make it
+your login shell.  For this, you may need the assistance of your
+friendly local system administrator. 
+
+If you cannot do this, you can still use bash as your login shell, but
+you need to perform some tricks.  The basic idea is to add a command
+to your login shell's startup file to replace your login shell with
+bash.
+
+For example, if your login shell is csh or tcsh, and you have installed
+bash in /usr/gnu/bin/bash, add the following line to ~/.login:
+
+       if ( -f /usr/gnu/bin/bash ) exec /usr/gnu/bin/bash --login
+
+(the `--login' tells bash that it is a login shell).
+
+It's not a good idea to put this command into ~/.cshrc, because every
+csh you run without the `-f' option, even ones started to run csh scripts,
+reads that file.  If you must put the command in ~/.cshrc, use something
+like
+
+       if ( $?prompt ) exec /usr/gnu/bin/bash --login
+
+to ensure that bash is exec'd only when the csh is interactive.
+
+If your login shell is sh or ksh, you have to do two things.
+
+First, create an empty file in your home directory named `.bash_profile'.
+The existence of this file will prevent the exec'd bash from trying to
+read ~/.profile, and re-execing itself over and over again.  ~/.bash_profile
+is the first file bash tries to read initialization commands from when
+it is invoked as a login shell.
+
+Next, add a line similar to the above to ~/.profile:
+
+       [ -f /usr/gnu/bin/bash ] && [ -x /usr/gnu/bin/bash ] && \
+               exec /usr/gnu/bin/bash --login
+
+This will cause login shells to replace themselves with bash running as
+a login shell.  Once you have this working, you can copy your initialization
+code from ~/.profile to ~/.bash_profile.
+
+I have received word that the recipe supplied above is insufficient for
+machines running CDE.  CDE has a maze of twisty little startup files, all
+slightly different.
+
+If you cannot change your login shell in the password file to bash, you
+will have to (apparently) live with CDE using the shell in the password
+file to run its startup scripts.  If you have changed your shell to bash,
+there is code in the CDE startup files (on Solaris, at least) that attempts
+to do the right thing.  It is, however, often broken, and may require that
+you use the $BASH_ENV trick described below.
+
+`dtterm' claims to use $SHELL as the default program to start, so if you
+can change $SHELL in the CDE startup files, you should be able to use bash
+in your terminal windows.
+
+Setting DTSOURCEPROFILE in ~/.dtprofile will cause the `Xsession' program
+to read your login shell's startup files.  You may be able to use bash for
+the rest of the CDE programs by setting SHELL to bash in ~/.dtprofile as
+well, but I have not tried this.
+
+You can use the above `exec' recipe to start bash when not logging in with
+CDE by testing the value of the DT variable:
+
+       if [ -n "$DT" ]; then
+               [ -f /usr/gnu/bin/bash ] && exec /usr/gnu/bin/bash --login
+       fi
+
+If CDE starts its shells non-interactively during login, the login shell
+startup files (~/.profile, ~/.bash_profile) will not be sourced at login.
+To get around this problem, append a line similar to the following to your
+~/.dtprofile:
+
+       BASH_ENV=${HOME}/.bash_profile ; export BASH_ENV
+
+and add the following line to the beginning of ~/.bash_profile:
+
+       unset BASH_ENV
+
+A8) I just changed my login shell to bash, and now I can't FTP into my
+   machine.  Why not?
+
+You must add the full pathname to bash to the file /etc/shells.  As
+noted in the answer to the previous question, many systems require
+this before you can make bash your login shell. 
+
+Most versions of ftpd use this file to prohibit `special' users
+such as `uucp' and `news' from using FTP. 
+
+A9)  What's the `POSIX 1003.2 standard'?
+
+POSIX is a name originally coined by Richard Stallman for a
+family of open system standards based on UNIX.  There are a
+number of aspects of UNIX under consideration for
+standardization, from the basic system services at the system
+call and C library level to applications and tools to system
+administration and management.  Each area of standardization is
+assigned to a working group in the 1003 series. 
+
+The POSIX Shell and Utilities standard has been developed by IEEE
+Working Group 1003.2 (POSIX.2).  It concentrates on the command
+interpreter interface and utility programs commonly executed from
+the command line or by other programs.  An initial version of the
+standard has been approved and published by the IEEE, and work is
+currently underway to update it. 
+
+Bash is concerned with the aspects of the shell's behavior
+defined by POSIX.2.  The shell command language has of course
+been standardized, including the basic flow control and program
+execution constructs, I/O redirection and pipelining, argument
+handling, variable expansion, and quoting. 
+
+The `special' builtins, which must be implemented as part of the
+shell to provide the desired functionality, are specified as
+being part of the shell; examples of these are `eval' and
+`export'.  Other utilities appear in the sections of POSIX.2 not
+devoted to the shell which are commonly (and in some cases must
+be) implemented as builtin commands, such as `read' and `test'. 
+POSIX.2 also specifies aspects of the shell's interactive
+behavior as part of the UPE, including job control and command
+line editing.  Only vi-style line editing commands have been
+standardized; emacs editing commands were left out due to
+objections.
+
+The Open Group has made an older version of its Single Unix
+Specification (version 2), which is very similar to POSIX.2,
+available on the web at
+
+http://www.opengroup.org/onlinepubs/007908799/
+
+The Single Unix Specification, version 3, is available on the web at
+
+http://www.opengroup.org/onlinepubs/007904975/
+
+A10)  What is the bash `posix mode'?
+
+Although bash is an implementation of the POSIX.2 shell
+specification, there are areas where the bash default behavior
+differs from that spec.  The bash `posix mode' changes the bash
+behavior in these areas so that it obeys the spec more closely. 
+
+Posix mode is entered by starting bash with the --posix or
+'-o posix' option or executing `set -o posix' after bash is running.
+
+The specific aspects of bash which change when posix mode is
+active are listed in the file POSIX in the bash distribution.
+They are also listed in a section in the Bash Reference Manual
+(from which that file is generated).
+
+Section B:  The latest version
+
+B1) What's new in version 2.05b?
+
+The raison d'etre for bash-2.05b is to make a second intermediate
+release containing the first of the new features to be available
+in bash-3.0 and get feedback on those features before proceeding.
+The major new feature is multibyte character support in both Bash
+and Readline.
+
+Bash-2.05b contains the following new features (see the manual page for
+complete descriptions and the CHANGES and NEWS files in the bash-2.05b
+distribution):
+
+o support for multibyte characters has been added to both bash and readline
+
+o the DEBUG trap is now run *before* simple commands, ((...)) commands,
+  [[...]] conditional commands, and for ((...)) loops
+
+o the shell now performs arithmetic in the largest integer size the machine
+  supports (intmax_t)
+
+o there is a new \D{...} prompt expansion; passes the `...' to strftime(3)
+  and inserts the result into the expanded prompt
+
+o there is a 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).
+
+o `read' has a new `-u fd' option to read from a specified file descriptor
+
+o 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
+
+o 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
+
+
+A short feature history dating from Bash-2.0:
+
+Bash-2.05a introduced the following new features:
+
+o The `printf' builtin has undergone major work
+
+o There is a new read-only `shopt' option: login_shell, which is set by
+  login shells and unset otherwise
+
+o New `\A' prompt string escape sequence; expanding to time in 24-hour
+  HH:MM format
+
+o New `-A group/-g' option to complete and compgen; goes group name
+  completion
+
+o New [+-]O invocation option to set and unset `shopt' options at startup
+
+o ksh-like `ERR' trap
+
+o `for' loops now allow empty word lists after the `in' reserved word
+
+o new `hard' and `soft' arguments for the `ulimit' builtin
+
+o Readline can be configured to place the user at the same point on the line
+  when retrieving commands from the history list
+
+o Readline can be configured to skip `hidden' files (filenames with a leading
+  `.' on Unix) when performing completion
+
+Bash-2.05 introduced the following new features:
+
+o This version has once again reverted to using locales and strcoll(3) when
+  processing pattern matching bracket expressions, as POSIX requires. 
+o Added a new `--init-file' invocation argument as a synonym for `--rcfile',
+  per the new GNU coding standards.
+o The /dev/tcp and /dev/udp redirections now accept service names as well as
+  port numbers.
+o `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
+o A new loadable builtin, realpath, which canonicalizes and expands symlinks
+  in pathname arguments.
+o 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.  This only happens when the shell is not in POSIX
+   mode, since POSIX.2 forbids this behavior.
+
+Bash-2.04 introduced the following new features:
+
+o Programmable word completion with the new `complete' and `compgen' builtins;
+  examples are provided in examples/complete/complete-examples
+o `history' has a new `-d' option to delete a history entry
+o `bind' has a new `-x' option to bind key sequences to shell commands
+o The prompt expansion code has new `\j' and `\l' escape sequences
+o The `no_empty_cmd_completion' shell option, if enabled, inhibits
+  command completion when TAB is typed on an empty line
+o `help' has a new `-s' option to print a usage synopsis
+o New arithmetic operators: var++, var--, ++var, --var, expr1,expr2 (comma)
+o New ksh93-style arithmetic for command:
+       for ((expr1 ; expr2; expr3 )); do list; done
+o `read' has new options: `-t', `-n', `-d', `-s'
+o The redirection code handles several filenames specially:  /dev/fd/N,
+  /dev/stdin, /dev/stdout, /dev/stderr
+o The redirection code now recognizes /dev/tcp/HOST/PORT and
+  /dev/udp/HOST/PORT and tries to open a TCP or UDP socket, respectively,
+  to the specified port on the specified host
+o The ${!prefix*} expansion has been implemented
+o A new FUNCNAME variable, which expands to the name of a currently-executing
+  function
+o The GROUPS variable is no longer readonly
+o A new shopt `xpg_echo' variable, to control the behavior of echo with
+  respect to backslash-escape sequences at runtime
+o The NON_INTERACTIVE_LOGIN_SHELLS #define has returned
+
+The version of Readline released with Bash-2.04, Readline-4.1, had several
+new features as well:
+
+o Parentheses matching is always compiled into readline, and controllable
+  with the new `blink-matching-paren' variable
+o The history-search-forward and history-search-backward functions now leave
+  point at the end of the line when the search string is empty, like
+  reverse-search-history, and forward-search-history
+o A new function for applications:  rl_on_new_line_with_prompt()
+o New variables for applications:  rl_already_prompted, and rl_gnu_readline_p
+
+
+Bash-2.03 had very few new features, in keeping with the convention
+that odd-numbered releases provide mainly bug fixes.  A number of new
+features were added to Readline, mostly at the request of the Cygnus
+folks.
+
+A new shopt option, `restricted_shell', so that startup files can test
+       whether or not the shell was started in restricted mode
+Filename generation is now performed on the words between ( and ) in
+       compound array assignments (this is really a bug fix)
+OLDPWD is now auto-exported, as POSIX.2 requires
+ENV and BASH_ENV are read-only variables in a restricted shell
+Bash may now be linked against an already-installed Readline library,
+       as long as the Readline library is version 4 or newer
+All shells begun with the `--login' option will source the login shell
+       startup files, even if the shell is not interactive
+
+There were lots of changes to the version of the Readline library released
+along with Bash-2.03.  For a complete list of the changes, read the file
+CHANGES in the Bash-2.03 distribution.
+
+Bash-2.02 contained the following new features:
+
+a new version of malloc (based on the old GNU malloc code in previous
+       bash versions) that is more page-oriented, more conservative
+       with memory usage, does not `orphan' large blocks when they
+       are freed, is usable on 64-bit machines, and has allocation
+       checking turned on unconditionally
+POSIX.2-style globbing character classes ([:alpha:], [:alnum:], etc.)
+POSIX.2-style globbing equivalence classes
+POSIX.2-style globbing collating symbols
+the ksh [[...]] extended conditional command
+the ksh egrep-style extended pattern matching operators
+a new `printf' builtin
+the ksh-like $(<filename) command substitution, which is equivalent to
+       $(cat filename)
+new tilde prefixes that expand to directories from the directory stack
+new `**' arithmetic operator to do exponentiation
+case-insensitive globbing (filename expansion)
+menu completion a la tcsh
+`magic-space' history expansion function like tcsh
+the readline inputrc `language' has a new file inclusion directive ($include)
+
+Bash-2.01 contained only a few new features:
+
+new `GROUPS' builtin array variable containing the user's group list
+new bindable readline commands: history-and-alias-expand-line and
+       alias-expand-line
+
+Bash-2.0 contained extensive changes and new features from bash-1.14.7.
+Here's a short list:
+
+new `time' reserved word to time pipelines, shell builtins, and
+       shell functions
+one-dimensional arrays with a new compound assignment statement,
+        appropriate expansion constructs and modifications to some
+       of the builtins (read, declare, etc.) to use them
+new quoting syntaxes for ANSI-C string expansion and locale-specific
+       string translation
+new expansions to do substring extraction, pattern replacement, and
+       indirect variable expansion
+new builtins: `disown' and `shopt'
+new variables: HISTIGNORE, SHELLOPTS, PIPESTATUS, DIRSTACK, GLOBIGNORE,
+              MACHTYPE, BASH_VERSINFO
+special handling of many unused or redundant variables removed
+       (e.g., $notify, $glob_dot_filenames, $no_exit_on_failed_exec)
+dynamic loading of new builtin commands; many loadable examples provided
+new prompt expansions: \a, \e, \n, \H, \T, \@, \v, \V
+history and aliases available in shell scripts
+new readline variables: enable-keypad, mark-directories, input-meta,
+       visible-stats, disable-completion, comment-begin
+new readline commands to manipulate the mark and operate on the region
+new readline emacs mode commands and bindings for ksh-88 compatibility
+updated and extended builtins
+new DEBUG trap
+expanded (and now documented) restricted shell mode
+
+implementation stuff:  
+autoconf-based configuration
+nearly all of the bugs reported since version 1.14 have been fixed
+most builtins converted to use builtin `getopt' for consistency
+most builtins use -p option to display output in a reusable form
+       (for consistency)
+grammar tighter and smaller (66 reduce-reduce conflicts gone)
+lots of code now smaller and faster
+test suite greatly expanded
+
+B2) Are there any user-visible incompatibilities between bash-2.05b and
+    bash-1.14.7?
+
+There are a few incompatibilities between version 1.14.7 and version 2.05b.
+They are detailed in the file COMPAT in the bash distribution.  That file
+is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
+if if you find something that's not mentioned there.
+
+Section C:  Differences from other Unix shells
+
+C1) How does bash differ from sh, the Bourne shell?
+
+This is a non-comprehensive list of features that differentiate bash
+from the SVR4.2 shell.  The bash manual page explains these more
+completely.
+
+Things bash has that sh does not:
+       long invocation options
+       [+-]O invocation option
+       -l invocation option
+       `!' reserved word to invert pipeline return value
+       `time' reserved word to time pipelines and shell builtins
+       the `function' reserved word
+       the `select' compound command and reserved word
+       arithmetic for command: for ((expr1 ; expr2; expr3 )); do list; done
+       new $'...' and $"..." quoting
+       the $(...) form of command substitution
+       the $(<filename) form of command substitution, equivalent to
+               $(cat filename)
+       the ${#param} parameter value length operator
+       the ${!param} indirect parameter expansion operator
+       the ${!param*} prefix expansion operator
+       the ${param:offset[:length]} parameter substring operator
+       the ${param/pat[/string]} parameter pattern substitution operator
+       expansions to perform substring removal (${p%[%]w}, ${p#[#]w})
+       expansion of positional parameters beyond $9 with ${num}
+       variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, REPLY,
+                  TIMEFORMAT, PPID, PWD, OLDPWD, SHLVL, RANDOM, SECONDS,
+                  LINENO, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE, HOSTNAME,
+                  ENV, PS3, PS4, DIRSTACK, PIPESTATUS, HISTSIZE, HISTFILE,
+                  HISTFILESIZE, HISTCONTROL, HISTIGNORE, GLOBIGNORE, GROUPS,
+                  PROMPT_COMMAND, FCEDIT, FIGNORE, IGNOREEOF, INPUTRC,
+                  SHELLOPTS, OPTERR, HOSTFILE, TMOUT, FUNCNAME, histchars,
+                  auto_resume
+       DEBUG trap
+       ERR trap
+       variable arrays with new compound assignment syntax
+       redirections: <>, &>, >|, <<<, [n]<&word-, [n]>&word-
+       prompt string special char translation and variable expansion
+       auto-export of variables in initial environment
+       command search finds functions before builtins
+       bash return builtin will exit a file sourced with `.'
+       builtins: cd -/-L/-P, exec -l/-c/-a, echo -e/-E, hash -d/-l/-p/-t.
+                 export -n/-f/-p/name=value, pwd -L/-P,
+                 read -e/-p/-a/-t/-n/-d/-s/-u,
+                 readonly -a/-f/name=value, trap -l, set +o,
+                 set -b/-m/-o option/-h/-p/-B/-C/-H/-P,
+                 unset -f/-v, ulimit -m/-p/-u,
+                 type -a/-p/-t/-f/-P, suspend -f, kill -n,
+                 test -o optname/s1 == s2/s1 < s2/s1 > s2/-nt/-ot/-ef/-O/-G/-S
+       bash reads ~/.bashrc for interactive shells, $ENV for non-interactive
+       bash restricted shell mode is more extensive
+       bash allows functions and variables with the same name
+       brace expansion
+       tilde expansion
+       arithmetic expansion with $((...)) and `let' builtin
+       the `[[...]]' extended conditional command
+       process substitution
+       aliases and alias/unalias builtins
+       local variables in functions and `local' builtin
+       readline and command-line editing with programmable completion
+       command history and history/fc builtins
+       csh-like history expansion
+       other new bash builtins: bind, command, compgen, complete, builtin,
+                                declare/typeset, dirs, enable, fc, help,
+                                history, logout, popd, pushd, disown, shopt,
+                                printf
+       exported functions
+       filename generation when using output redirection (command >a*)
+       POSIX.2-style globbing character classes
+       POSIX.2-style globbing equivalence classes
+       POSIX.2-style globbing collating symbols
+       egrep-like extended pattern matching operators
+       case-insensitive pattern matching and globbing
+       variable assignments preceding commands affect only that command,
+               even for builtins and functions
+       posix mode
+       redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,
+               /dev/tcp/host/port, /dev/udp/host/port
+
+Things sh has that bash does not:
+       uses variable SHACCT to do shell accounting
+       includes `stop' builtin (bash can use alias stop='kill -s STOP')
+       `newgrp' builtin
+       turns on job control if called as `jsh'
+       $TIMEOUT (like bash $TMOUT)
+       `^' is a synonym for `|'
+       new SVR4.2 sh builtins: mldmode, priv
+
+Implementation differences:
+       redirection to/from compound commands causes sh to create a subshell
+       bash does not allow unbalanced quotes; sh silently inserts them at EOF
+       bash does not mess with signal 11
+       sh sets (euid, egid) to (uid, gid) if -p not supplied and uid < 100
+       bash splits only the results of expansions on IFS, using POSIX.2
+               field splitting rules; sh splits all words on IFS
+       sh does not allow MAILCHECK to be unset (?)
+       sh does not allow traps on SIGALRM or SIGCHLD
+       bash allows multiple option arguments when invoked (e.g. -x -v);
+               sh allows only a single option argument (`sh -x -v' attempts
+               to open a file named `-v', and, on SunOS 4.1.4, dumps core.
+               On Solaris 2.4 and earlier versions, sh goes into an infinite
+               loop.)
+       sh exits a script if any builtin fails; bash exits only if one of
+               the POSIX.2 `special' builtins fails
+
+C2)  How does bash differ from the Korn shell, version ksh88?
+
+Things bash has or uses that ksh88 does not:
+       long invocation options
+       [-+]O invocation option
+       -l invocation option
+       `!' reserved word
+       arithmetic for command: for ((expr1 ; expr2; expr3 )); do list; done
+       arithmetic in largest machine-supported size (intmax_t)
+       posix mode and posix conformance
+       command hashing
+       tilde expansion for assignment statements that look like $PATH
+       process substitution with named pipes if /dev/fd is not available
+       the ${!param} indirect parameter expansion operator
+       the ${!param*} prefix expansion operator
+       the ${param:offset[:length]} parameter substring operator
+       the ${param/pat[/string]} parameter pattern substitution operator
+       variables: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID, SHLVL,
+                  TIMEFORMAT, HISTCMD, HOSTTYPE, OSTYPE, MACHTYPE,
+                  HISTFILESIZE, HISTIGNORE, HISTCONTROL, PROMPT_COMMAND,
+                  IGNOREEOF, FIGNORE, INPUTRC, HOSTFILE, DIRSTACK,
+                  PIPESTATUS, HOSTNAME, OPTERR, SHELLOPTS, GLOBIGNORE,
+                  GROUPS, FUNCNAME, histchars, auto_resume
+       prompt expansion with backslash escapes and command substitution
+       redirection: &> (stdout and stderr), <<<, [n]<&word-, [n]>&word-
+       more extensive and extensible editing and programmable completion
+       builtins: bind, builtin, command, declare, dirs, echo -e/-E, enable,
+                 exec -l/-c/-a, fc -s, export -n/-f/-p, hash, help, history,
+                 jobs -x/-r/-s, kill -s/-n/-l, local, logout, popd, pushd,
+                 read -e/-p/-a/-t/-n/-d/-s, readonly -a/-n/-f/-p,
+                 set -o braceexpand/-o histexpand/-o interactive-comments/
+                 -o notify/-o physical/-o posix/-o hashall/-o onecmd/
+                 -h/-B/-C/-b/-H/-P, set +o, suspend, trap -l, type,
+                 typeset -a/-F/-p, ulimit -u, umask -S, alias -p, shopt,
+                 disown, printf, complete, compgen
+       `!' csh-style history expansion
+       POSIX.2-style globbing character classes
+       POSIX.2-style globbing equivalence classes
+       POSIX.2-style globbing collating symbols
+       egrep-like extended pattern matching operators
+       case-insensitive pattern matching and globbing
+       `**' arithmetic operator to do exponentiation
+       redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr
+       arrays of unlimited size
+       TMOUT is default timeout for `read' and `select'
+
+Things ksh88 has or uses that bash does not:
+       tracked aliases (alias -t)
+       variables: ERRNO, FPATH, EDITOR, VISUAL
+       co-processes (|&, >&p, <&p)
+       weirdly-scoped functions
+       typeset +f to list all function names without definitions
+       text of command history kept in a file, not memory
+       builtins: alias -x, cd old new, fc -e -, newgrp, print,
+                 read -p/-s/var?prompt, set -A/-o gmacs/
+                 -o bgnice/-o markdirs/-o nolog/-o trackall/-o viraw/-s,
+                 typeset -H/-L/-R/-Z/-A/-ft/-fu/-fx/-l/-u/-t, whence
+       using environment to pass attributes of exported variables
+       arithmetic evaluation done on arguments to some builtins
+       reads .profile from $PWD when invoked as login shell
+
+Implementation differences:
+       ksh runs last command of a pipeline in parent shell context
+       bash has brace expansion by default (ksh88 compile-time option)
+       bash has fixed startup file for all interactive shells; ksh reads $ENV
+       bash has exported functions
+       bash command search finds functions before builtins
+       bash waits for all commands in pipeline to exit before returning status
+       emacs-mode editing has some slightly different key bindings
+
+C3)  Which new features in ksh-93 are not in bash, and which are?
+
+New things in ksh-93 not in bash-2.05b:
+       associative arrays
+       floating point arithmetic and variables
+       math library functions
+       ${!name[sub]} name of subscript for associative array
+       `.' is allowed in variable names to create a hierarchical namespace
+       more extensive compound assignment syntax
+       discipline functions
+       `sleep' and `getconf' builtins (bash has loadable versions)
+       typeset -n and `nameref' variables
+       KEYBD trap
+       variables: .sh.edchar, .sh.edmode, .sh.edcol, .sh.edtext, .sh.version,
+                  .sh.name, .sh.subscript, .sh.value, .sh.match, HISTEDIT
+       backreferences in pattern matching (\N)
+       `&' operator in pattern lists for matching
+       print -f (bash uses printf)
+       `fc' has been renamed to `hist'
+       `.' can execute shell functions
+       exit statuses between 0 and 255
+       set -o pipefail
+       `+=' variable assignment operator
+       FPATH and PATH mixing
+       getopts -a
+       -I invocation option
+       DEBUG trap now executed before each simple command, instead of after
+       printf %H, %P, %T, %Z modifiers, output base for %d
+       lexical scoping for local variables in `ksh' functions
+       no scoping for local variables in `POSIX' functions
+
+New things in ksh-93 present in bash-2.05b:
+       [n]<&word- and [n]>&word- redirections (combination dup and close)
+        for (( expr1; expr2; expr3 )) ; do list; done - arithmetic for command
+        ?:, ++, --, `expr1 , expr2' arithmetic operators
+       expansions: ${!param}, ${param:offset[:len]}, ${param/pat[/str]},
+                   ${!param*}
+       compound array assignment
+       the `!' reserved word
+       loadable builtins -- but ksh uses `builtin' while bash uses `enable'
+       `command', `builtin', `disown' builtins
+       new $'...' and $"..." quoting
+       FIGNORE (but bash uses GLOBIGNORE), HISTCMD
+       set -o notify/-C
+       changes to kill builtin
+       read -A (bash uses read -a)
+        read -t/-d
+       trap -p
+       exec -c/-a
+       `.' restores the positional parameters when it completes
+       POSIX.2 `test'
+       umask -S
+       unalias -a
+       command and arithmetic substitution performed on PS1, PS4, and ENV
+       command name completion
+       ENV processed only for interactive shells
+
+Section D:  Why does bash do some things differently than other Unix shells?
+
+D1) Why does bash run a different version of `command' than
+    `which command' says it will?
+
+On many systems, `which' is actually a csh script that assumes
+you're running csh.  In tcsh, `which' and its cousin `where'
+are builtins.  On other Unix systems, `which' is a perl script
+that uses the PATH environment variable.
+
+The csh script version reads the csh startup files from your
+home directory and uses those to determine which `command' will
+be invoked.  Since bash doesn't use any of those startup files,
+there's a good chance that your bash environment differs from
+your csh environment.  The bash `type' builtin does everything
+`which' does, and will report correct results for the running
+shell.  If you're really wedded to the name `which', try adding
+the following function definition to your .bashrc:
+
+       which()
+       {
+               builtin type "$@"
+       }
+
+If you're moving from tcsh and would like to bring `where' along
+as well, use this function:
+
+       where()
+       {
+               builtin type -a "$@"
+       }
+
+D2) Why doesn't bash treat brace expansions exactly like csh?
+
+The only difference between bash and csh brace expansion is that
+bash requires a brace expression to contain at least one unquoted
+comma if it is to be expanded.  Any brace-surrounded word not
+containing an unquoted comma is left unchanged by the brace
+expansion code.  This affords the greatest degree of sh
+compatibility. 
+
+Bash, ksh, zsh, and pd-ksh all implement brace expansion this way. 
+
+D3) Why doesn't bash have csh variable modifiers?
+
+Posix has specified a more powerful, albeit somewhat more cryptic,
+mechanism cribbed from ksh, and bash implements it.
+
+${parameter%word}
+        Remove smallest suffix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        smallest portion of the suffix matched by the pattern deleted.
+
+        x=file.c
+        echo ${x%.c}.o
+        -->file.o
+
+${parameter%%word}
+
+        Remove largest suffix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        largest portion of the suffix matched by the pattern deleted.
+
+        x=posix/src/std
+        echo ${x%%/*}
+        -->posix
+
+${parameter#word}
+        Remove smallest prefix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        smallest portion of the prefix matched by the pattern deleted.
+
+        x=$HOME/src/cmd
+        echo ${x#$HOME}
+        -->/src/cmd
+
+${parameter##word}
+        Remove largest prefix pattern.  The WORD is expanded to produce
+        a pattern.  It then expands to the value of PARAMETER, with the
+        largest portion of the prefix matched by the pattern deleted.
+
+        x=/one/two/three
+        echo ${x##*/}
+        -->three
+
+
+Given
+       a=/a/b/c/d
+       b=b.xxx
+
+       csh                     bash            result
+       ---                     ----            ------
+       $a:h                    ${a%/*}            /a/b/c
+       $a:t                    ${a##*/}           d
+       $b:r                    ${b%.*}            b
+       $b:e                    ${b##*.}           xxx
+
+
+D4) How can I make my csh aliases work when I convert to bash?
+
+Bash uses a different syntax to support aliases than csh does. 
+The details can be found in the documentation.  We have provided
+a shell script which does most of the work of conversion for you;
+this script can be found in ./examples/misc/aliasconv.sh.  Here is
+how you use it:
+  
+Start csh in the normal way for you.  (e.g., `csh')
+  
+Pipe the output of `alias' through `aliasconv.sh', saving the
+results into `bash_aliases':
+  
+       alias | bash aliasconv.sh >bash_aliases
+  
+Edit `bash_aliases', carefully reading through any created
+functions.  You will need to change the names of some csh specific
+variables to the bash equivalents.  The script converts $cwd to
+$PWD, $term to $TERM, $home to $HOME, $user to $USER, and $prompt
+to $PS1.  You may also have to add quotes to avoid unwanted
+expansion.
+
+For example, the csh alias:
+  
+       alias cd 'cd \!*; echo $cwd'
+  
+is converted to the bash function:
+
+       cd () { command cd "$@"; echo $PWD ; }
+
+The only thing that needs to be done is to quote $PWD:
+  
+       cd () { command cd "$@"; echo "$PWD" ; }
+  
+Merge the edited file into your ~/.bashrc.
+
+There is an additional, more ambitious, script in
+examples/misc/cshtobash that attempts to convert your entire csh
+environment to its bash equivalent.  This script can be run as
+simply `cshtobash' to convert your normal interactive
+environment, or as `cshtobash ~/.login' to convert your login
+environment. 
+
+D5) How can I pipe standard output and standard error from one command to
+    another, like csh does with `|&'?
+
+Use
+       command 2>&1 | command2
+
+The key is to remember that piping is performed before redirection, so
+file descriptor 1 points to the pipe when it is duplicated onto file
+descriptor 2.
+
+D6) Now that I've converted from ksh to bash, are there equivalents to
+    ksh features like autoloaded functions and the `whence' command?
+
+There are features in ksh-88 and ksh-93 that do not have direct bash
+equivalents.  Most, however, can be emulated with very little trouble.
+
+ksh-88 feature         Bash equivalent
+--------------         ---------------
+compiled-in aliases    set up aliases in .bashrc; some ksh aliases are
+                       bash builtins (hash, history, type)
+coprocesses            named pipe pairs (one for read, one for write)
+typeset +f             declare -F
+cd, print, whence      function substitutes in examples/functions/kshenv
+autoloaded functions   examples/functions/autoload is the same as typeset -fu
+read var?prompt                read -p prompt var
+
+ksh-93 feature         Bash equivalent
+--------------         ---------------
+sleep, getconf         Bash has loadable versions in examples/loadables
+${.sh.version}         $BASH_VERSION
+print -f               printf
+hist                   alias hist=fc
+$HISTEDIT              $FCEDIT
+
+Section E:  How can I get bash to do certain things, and why does bash do
+           things the way it does?
+
+E1) Why is the bash builtin `test' slightly different from /bin/test?
+
+The specific example used here is [ ! x -o x ], which is false.
+
+Bash's builtin `test' implements the Posix.2 spec, which can be
+summarized as follows (the wording is due to David Korn):
+   
+Here is the set of rules for processing test arguments.
+  
+    0 Args: False
+    1 Arg:  True iff argument is not null.
+    2 Args: If first arg is !, True iff second argument is null.
+           If first argument is unary, then true if unary test is true
+           Otherwise error.
+    3 Args: If second argument is a binary operator, do binary test of $1 $3
+           If first argument is !, negate two argument test of $2 $3
+           If first argument is `(' and third argument is `)', do the
+           one-argument test of the second argument.
+           Otherwise error.
+    4 Args: If first argument is !, negate three argument test of $2 $3 $4.
+           Otherwise unspecified
+    5 or more Args: unspecified.  (Historical shells would use their
+    current algorithm).
+   
+The operators -a and -o are considered binary operators for the purpose
+of the 3 Arg case.
+   
+As you can see, the test becomes (not (x or x)), which is false.
+
+E2) Why does bash sometimes say `Broken pipe'?
+
+If a sequence of commands appears in a pipeline, and one of the
+reading commands finishes before the writer has finished, the
+writer receives a SIGPIPE signal.  Many other shells special-case
+SIGPIPE as an exit status in the pipeline and do not report it. 
+For example, in:
+  
+      ps -aux | head
+  
+`head' can finish before `ps' writes all of its output, and ps
+will try to write on a pipe without a reader.  In that case, bash
+will print `Broken pipe' to stderr when ps is killed by a
+SIGPIPE. 
+
+You can build a version of bash that will not report SIGPIPE errors
+by uncommenting the definition of DONT_REPORT_SIGPIPE in the file
+config-top.h.
+
+E3) When I have terminal escape sequences in my prompt, why does bash
+    wrap lines at the wrong column?
+
+Readline, the line editing library that bash uses, does not know
+that the terminal escape sequences do not take up space on the
+screen.  The redisplay code assumes, unless told otherwise, that
+each character in the prompt is a `printable' character that
+takes up one character position on the screen. 
+
+You can use the bash prompt expansion facility (see the PROMPTING
+section in the manual page) to tell readline that sequences of
+characters in the prompt strings take up no screen space. 
+
+Use the \[ escape to begin a sequence of non-printing characters,
+and the \] escape to signal the end of such a sequence. 
+
+E4) If I pipe the output of a command into `read variable', why doesn't
+    the output show up in $variable when the read command finishes?
+
+This has to do with the parent-child relationship between Unix
+processes.  It affects all commands run in pipelines, not just
+simple calls to `read'.  For example, piping a command's output
+into a `while' loop that repeatedly calls `read' will result in
+the same behavior.
+
+Each element of a pipeline runs in a separate process, a child of
+the shell running the pipeline.  A subprocess cannot affect its
+parent's environment.  When the `read' command sets the variable
+to the input, that variable is set only in the subshell, not the
+parent shell.  When the subshell exits, the value of the variable
+is lost. 
+
+Many pipelines that end with `read variable' can be converted
+into command substitutions, which will capture the output of
+a specified command.  The output can then be assigned to a
+variable:
+
+       grep ^gnu /usr/lib/news/active | wc -l | read ngroup
+
+can be converted into
+
+       ngroup=$(grep ^gnu /usr/lib/news/active | wc -l)
+
+This does not, unfortunately, work to split the text among
+multiple variables, as read does when given multiple variable
+arguments.  If you need to do this, you can either use the
+command substitution above to read the output into a variable
+and chop up the variable using the bash pattern removal
+expansion operators or use some variant of the following
+approach.
+
+Say /usr/local/bin/ipaddr is the following shell script:
+
+#! /bin/sh
+host `hostname` | awk '/address/ {print $NF}'
+
+Instead of using
+
+       /usr/local/bin/ipaddr | read A B C D
+
+to break the local machine's IP address into separate octets, use
+
+       OIFS="$IFS"
+       IFS=.
+       set -- $(/usr/local/bin/ipaddr)
+       IFS="$OIFS"
+       A="$1" B="$2" C="$3" D="$4"
+
+Beware, however, that this will change the shell's positional
+parameters.  If you need them, you should save them before doing
+this.
+
+This is the general approach -- in most cases you will not need to
+set $IFS to a different value.
+
+Some other user-supplied alternatives include:
+
+read A B C D << HERE
+    $(IFS=.; echo $(/usr/local/bin/ipaddr))
+HERE
+
+and, where process substitution is available,
+
+read A B C D < <(IFS=.; echo $(/usr/local/bin/ipaddr))
+
+E5) I have a bunch of shell scripts that use backslash-escaped characters
+    in arguments to `echo'.  Bash doesn't interpret these characters.  Why
+    not, and how can I make it understand them?
+
+This is the behavior of echo on most Unix System V machines.
+
+The bash builtin `echo' is modeled after the 9th Edition
+Research Unix version of `echo'.  It does not interpret
+backslash-escaped characters in its argument strings by default;
+it requires the use of the -e option to enable the
+interpretation.  The System V echo provides no way to disable the
+special characters; the bash echo has a -E option to disable
+them. 
+
+There is a configuration option that will make bash behave like
+the System V echo and interpret things like `\t' by default.  Run
+configure with the --enable-xpg-echo-default option to turn this
+on.  Be aware that this will cause some of the tests run when you
+type `make tests' to fail.
+
+There is a shell option, `xpg_echo', settable with `shopt', that will
+change the behavior of echo at runtime.  Enabling this option turns
+on expansion of backslash-escape sequences.
+
+E6) Why doesn't a while or for loop get suspended when I type ^Z?
+
+This is a consequence of how job control works on Unix.  The only
+thing that can be suspended is the process group.  This is a single
+command or pipeline of commands that the shell forks and executes.
+
+When you run a while or for loop, the only thing that the shell forks
+and executes are any commands in the while loop test and commands in
+the loop bodies.  These, therefore, are the only things that can be
+suspended when you type ^Z.
+
+If you want to be able to stop the entire loop, you need to put it
+within parentheses, which will force the loop into a subshell that
+may be stopped (and subsequently restarted) as a single unit.
+
+E7) What about empty for loops in Makefiles?
+
+It's fairly common to see constructs like this in automatically-generated
+Makefiles:
+
+SUBDIRS = @SUBDIRS@
+
+       ...
+
+subdirs-clean:
+       for d in ${SUBDIRS}; do \
+               ( cd $$d && ${MAKE} ${MFLAGS} clean ) \
+       done
+
+When SUBDIRS is empty, this results in a command like this being passed to
+bash:
+
+       for d in ; do
+               ( cd $d && ${MAKE} ${MFLAGS} clean )
+       done
+
+In versions of bash before bash-2.05a, this was a syntax error.  If the
+reserved word `in' was present, a word must follow it before the semicolon
+or newline.  The language in the manual page referring to the list of words
+being empty referred to the list after it is expanded.  These versions of
+bash required that there be at least one word following the `in' when the
+construct was parsed.
+
+The idiomatic Makefile solution is something like:
+
+SUBDIRS = @SUBDIRS@
+
+subdirs-clean:
+       subdirs=$SUBDIRS ; for d in $$subdirs; do \
+               ( cd $$d && ${MAKE} ${MFLAGS} clean ) \
+       done
+
+The latest drafts of the updated POSIX standard have changed this:  the
+word list is no longer required.  Bash versions 2.05a and later accept
+the new syntax.
+
+E8) Why does the arithmetic evaluation code complain about `08'?
+
+The bash arithmetic evaluation code (used for `let', $(()), (()), and in
+other places), interprets a leading `0' in numeric constants as denoting
+an octal number, and a leading `0x' as denoting hexadecimal.  This is
+in accordance with the POSIX.2 spec, section 2.9.2.1, which states that
+arithmetic constants should be handled as signed long integers as defined
+by the ANSI/ISO C standard.
+
+The POSIX.2 interpretation committee has confirmed this:
+
+http://www.pasc.org/interps/unofficial/db/p1003.2/pasc-1003.2-173.html
+
+E9) Why does the pattern matching expression [A-Z]* match files beginning
+    with every letter except `z'?
+
+Bash-2.03, Bash-2.05 and later versions honor the current locale setting
+when processing ranges within pattern matching bracket expressions ([A-Z]). 
+This is what POSIX.2 and SUSv3/XPG6 specify. 
+
+The behavior of the matcher in bash-2.05 and later versions depends on the
+current LC_COLLATE setting.  Setting this variable to `C' or `POSIX' will
+result in the traditional behavior ([A-Z] matches all uppercase ASCII
+characters).  Many other locales, including the en_US locale (the default
+on many US versions of Linux) collate the upper and lower case letters like
+this:
+
+       AaBb...Zz
+
+which means that [A-Z] matches every letter except `z'.  Others collate like
+
+       aAbBcC...zZ
+
+which means that [A-Z] matches every letter except `a'.
+
+The portable way to specify upper case letters is [:upper:] instead of
+A-Z; lower case may be specified as [:lower:] instead of a-z.
+
+Look at the manual pages for setlocale(3), strcoll(3), and, if it is
+present, locale(1).  If you have locale(1), you can use it to find
+your current locale information even if you do not have any of the
+LC_ variables set.
+
+My advice is to put
+
+       export LC_COLLATE=C
+
+into /etc/profile and inspect any shell scripts run from cron for
+constructs like [A-Z].  This will prevent things like
+
+       rm [A-Z]*
+
+from removing every file in the current directory except those beginning
+with `z' and still allow individual users to change the collation order.
+Users may put the above command into their own profiles as well, of course.
+
+E10) Why does `cd //' leave $PWD as `//'?
+
+POSIX.2, in its description of `cd', says that *three* or more leading
+slashes may be replaced with a single slash when canonicalizing the
+current working directory.
+
+This is, I presume, for historical compatibility.  Certain versions of
+Unix, and early network file systems, used paths of the form
+//hostname/path to access `path' on server `hostname'.
+
+E11) If I resize my xterm while another program is running, why doesn't bash
+     notice the change?
+
+This is another issue that deals with job control.
+
+The kernel maintains a notion of a current terminal process group.  Members
+of this process group (processes whose process group ID is equal to the
+current terminal process group ID) receive terminal-generated signals like
+SIGWINCH.  (For more details, see the JOB CONTROL section of the bash
+man page.)
+
+If a terminal is resized, the kernel sends SIGWINCH to each member of
+the terminal's current process group (the `foreground' process group).
+
+When bash is running with job control enabled, each pipeline (which may be
+a single command) is run in its own process group, different from bash's
+process group.  This foreground process group receives the SIGWINCH; bash
+does not.  Bash has no way of knowing that the terminal has been resized.
+
+There is a `checkwinsize' option, settable with the `shopt' builtin, that
+will cause bash to check the window size and adjust its idea of the
+terminal's dimensions each time a process stops or exits and returns control
+of the terminal to bash.  Enable it with `shopt -s checkwinsize'.
+
+Section F:  Things to watch out for on certain Unix versions
+
+F1) Why can't I use command line editing in my `cmdtool'?
+
+The problem is `cmdtool' and bash fighting over the input.  When
+scrolling is enabled in a cmdtool window, cmdtool puts the tty in
+`raw mode' to permit command-line editing using the mouse for
+applications that cannot do it themselves.  As a result, bash and
+cmdtool each try to read keyboard input immediately, with neither
+getting enough of it to be useful.
+
+This mode also causes cmdtool to not implement many of the
+terminal functions and control sequences appearing in the
+`sun-cmd' termcap entry.  For a more complete explanation, see
+that file examples/suncmd.termcap in the bash distribution. 
+
+`xterm' is a better choice, and gets along with bash much more
+smoothly.
+
+If you must use cmdtool, you can use the termcap description in
+examples/suncmd.termcap.  Set the TERMCAP variable to the terminal
+description contained in that file, i.e.
+
+TERMCAP='Mu|sun-cmd:am:bs:km:pt:li#34:co#80:cl=^L:ce=\E[K:cd=\E[J:rs=\E[s:'
+
+Then export TERMCAP and start a new cmdtool window from that shell.
+The bash command-line editing should behave better in the new
+cmdtool.  If this works, you can put the assignment to TERMCAP
+in your bashrc file.
+
+F2) I built bash on Solaris 2.  Why do globbing expansions and filename
+    completion chop off the first few characters of each filename?
+
+This is the consequence of building bash on SunOS 5 and linking
+with the libraries in /usr/ucblib, but using the definitions
+and structures from files in /usr/include. 
+
+The actual conflict is between the dirent structure in
+/usr/include/dirent.h and the struct returned by the version of
+`readdir' in libucb.a (a 4.3-BSD style `struct direct'). 
+
+Make sure you've got /usr/ccs/bin ahead of /usr/ucb in your $PATH
+when configuring and building bash.  This will ensure that you
+use /usr/ccs/bin/cc or acc instead of /usr/ucb/cc and that you
+link with libc before libucb. 
+
+If you have installed the Sun C compiler, you may also need to
+put /usr/ccs/bin and /opt/SUNWspro/bin into your $PATH before
+/usr/ucb.
+
+F3) Why does bash dump core after I interrupt username completion or
+    `~user' tilde expansion on a machine running NIS?
+
+This is a famous and long-standing bug in the SunOS YP (sorry, NIS)
+client library, which is part of libc.
+
+The YP library code keeps static state -- a pointer into the data
+returned from the server.  When YP initializes itself (setpwent),
+it looks at this pointer and calls free on it if it's non-null. 
+So far, so good. 
+
+If one of the YP functions is interrupted during getpwent (the
+exact function is interpretwithsave()), and returns NULL, the
+pointer is freed without being reset to NULL, and the function
+returns.  The next time getpwent is called, it sees that this
+pointer is non-null, calls free, and the bash free() blows up
+because it's being asked to free freed memory. 
+
+The traditional Unix mallocs allow memory to be freed multiple
+times; that's probably why this has never been fixed.  You can
+run configure with the `--without-gnu-malloc' option to use
+the C library malloc and avoid the problem.
+
+F4) I'm running SVR4.2.  Why is the line erased every time I type `@'?
+
+The `@' character is the default `line kill' character in most
+versions of System V, including SVR4.2.  You can change this
+character to whatever you want using `stty'.  For example, to
+change the line kill character to control-u, type
+
+       stty kill ^U
+
+where the `^' and `U' can be two separate characters.
+
+F5) Why does bash report syntax errors when my C News scripts use a
+    redirection before a subshell command?
+
+The actual command in question is something like
+
+       < file ( command )
+
+According to the grammar given in the POSIX.2 standard, this construct
+is, in fact, a syntax error.  Redirections may only precede `simple
+commands'.  A subshell construct such as the above is one of the shell's
+`compound commands'.  A redirection may only follow a compound command.
+
+This affects the mechanical transformation of commands that use `cat'
+to pipe a file into a command (a favorite Useless-Use-Of-Cat topic on
+comp.unix.shell).  While most commands of the form
+
+       cat file | command
+
+can be converted to `< file command', shell control structures such as
+loops and subshells require `command < file'.
+
+The file CWRU/sh-redir-hack in the bash-2.05a distribution is an
+(unofficial) patch to parse.y that will modify the grammar to
+support this construct.  It will not apply with `patch'; you must
+modify parse.y by hand.  Note that if you apply this, you must
+recompile with -DREDIRECTION_HACK.  This introduces a large
+number of reduce/reduce conflicts into the shell grammar. 
+
+F6) Why can't I use vi-mode editing on Red Hat Linux 6.1?
+
+The short answer is that Red Hat screwed up.
+
+The long answer is that they shipped an /etc/inputrc that only works
+for emacs mode editing, and then screwed all the vi users by setting
+INPUTRC to /etc/inputrc in /etc/profile.
+
+The short fix is to do one of the following: remove or rename
+/etc/inputrc, set INPUTRC=~/.inputrc in ~/.bashrc (or .bash_profile,
+but make sure you export it if you do), remove the assignment to
+INPUTRC from /etc/profile, add
+
+        set keymap emacs
+
+to the beginning of /etc/inputrc, or bracket the key bindings in
+/etc/inputrc with these lines
+
+       $if mode=emacs
+               [...]
+       $endif
+
+F7) Why do bash-2.05a and bash-2.05b fail to compile `printf.def' on
+    HP/UX 11.x?
+
+HP/UX's support for long double is imperfect at best.
+
+GCC will support it without problems, but the HP C library functions
+like strtold(3) and printf(3) don't actually work with long doubles.
+HP implemented a `long_double' type as a 4-element array of 32-bit
+ints, and that is what the library functions use.  The ANSI C
+`long double' type is a 128-bit floating point scalar.
+
+The easiest fix, until HP fixes things up, is to edit the generated
+config.h and #undef the HAVE_LONG_DOUBLE line.  After doing that,
+the compilation should complete successfully.
+
+Section G:  How can I get bash to do certain common things?
+
+G1) How can I get bash to read and display eight-bit characters?
+
+This is a process requiring several steps.
+
+First, you must ensure that the `physical' data path is a full eight
+bits.  For xterms, for example, the `vt100' resources `eightBitInput'
+and `eightBitOutput' should be set to `true'.
+
+Once you have set up an eight-bit path, you must tell the kernel and
+tty driver to leave the eighth bit of characters alone when processing
+keyboard input.  Use `stty' to do this:
+
+       stty cs8 -istrip -parenb
+
+For old BSD-style systems, you can use
+
+       stty pass8
+
+You may also need
+
+       stty even odd
+
+Finally, you need to tell readline that you will be inputting and
+displaying eight-bit characters.  You use readline variables to do
+this.  These variables can be set in your .inputrc or using the bash
+`bind' builtin.  Here's an example using `bind':
+
+       bash$ bind 'set convert-meta off'
+       bash$ bind 'set meta-flag on'
+       bash$ bind 'set output-meta on'
+
+The `set' commands between the single quotes may also be placed
+in ~/.inputrc.
+
+G2) How do I write a function `x' to replace builtin command `x', but
+    still invoke the command from within the function?
+
+This is why the `command' and `builtin' builtins exist.  The
+`command' builtin executes the command supplied as its first
+argument, skipping over any function defined with that name.  The
+`builtin' builtin executes the builtin command given as its first
+argument directly. 
+
+For example, to write a function to replace `cd' that writes the
+hostname and current directory to an xterm title bar, use
+something like the following:
+
+       cd()
+       {
+               builtin cd "$@" && xtitle "$HOST: $PWD"
+       }
+
+This could also be written using `command' instead of `builtin';
+the version above is marginally more efficient. 
+
+G3) How can I find the value of a shell variable whose name is the value
+    of another shell variable?
+
+Versions of Bash newer than Bash-2.0 support this directly.  You can use 
+
+       ${!var}
+
+For example, the following sequence of commands will echo `z':
+
+       var1=var2
+       var2=z
+       echo ${!var1}
+
+For sh compatibility, use the `eval' builtin.  The important
+thing to remember is that `eval' expands the arguments you give
+it again, so you need to quote the parts of the arguments that
+you want `eval' to act on. 
+
+For example, this expression prints the value of the last positional
+parameter:
+
+       eval echo \"\$\{$#\}\"
+
+The expansion of the quoted portions of this expression will be
+deferred until `eval' runs, while the `$#' will be expanded
+before `eval' is executed.  In versions of bash later than bash-2.0,
+
+       echo ${!#}
+
+does the same thing.
+
+This is not the same thing as ksh93 `nameref' variables, though the syntax
+is similar.  I may add namerefs in a future bash version.
+
+G4) How can I make the bash `time' reserved word print timing output that
+     looks like the output from my system's /usr/bin/time?
+
+The bash command timing code looks for a variable `TIMEFORMAT' and
+uses its value as a format string to decide how to display the
+timing statistics.
+
+The value of TIMEFORMAT is a string with `%' escapes expanded in a
+fashion similar in spirit to printf(3).  The manual page explains
+the meanings of the escape sequences in the format string.
+
+If TIMEFORMAT is not set, bash acts as if the following assignment had
+been performed:
+
+       TIMEFORMAT=$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'
+
+The POSIX.2 default time format (used by `time -p command') is
+
+       TIMEFORMAT=$'real %2R\nuser %2U\nsys %2S'
+
+The BSD /usr/bin/time format can be emulated with:
+
+       TIMEFORMAT=$'\t%1R real\t%1U user\t%1S sys'
+
+The System V /usr/bin/time format can be emulated with:
+
+       TIMEFORMAT=$'\nreal\t%1R\nuser\t%1U\nsys\t%1S'
+
+The ksh format can be emulated with:
+
+       TIMEFORMAT=$'\nreal\t%2lR\nuser\t%2lU\nsys\t%2lS'
+
+G5) How do I get the current directory into my prompt?
+
+Bash provides a number of backslash-escape sequences which are expanded
+when the prompt string (PS1 or PS2) is displayed.  The full list is in
+the manual page.
+
+The \w expansion gives the full pathname of the current directory, with
+a tilde (`~') substituted for the current value of $HOME.  The \W
+expansion gives the basename of the current directory.  To put the full
+pathname of the current directory into the path without any tilde
+subsitution, use $PWD.  Here are some examples:
+
+       PS1='\w$ '      # current directory with tilde
+       PS1='\W$ '      # basename of current directory
+       PS1='$PWD$ '    # full pathname of current directory
+
+The single quotes are important in the final example to prevent $PWD from
+being expanded when the assignment to PS1 is performed.
+
+G6) How can I rename "*.foo" to "*.bar"?
+
+Use the pattern removal functionality described in D3.  The following `for'
+loop will do the trick:
+
+       for f in *.foo; do
+               mv $f ${f%foo}bar
+       done
+
+G7) How can I translate a filename from uppercase to lowercase?
+
+The script examples/functions/lowercase, originally written by John DuBois,
+will do the trick.  The converse is left as an exercise.
+
+G8) How can I write a filename expansion (globbing) pattern that will match
+    all files in the current directory except "." and ".."?
+
+You must have set the `extglob' shell option using `shopt -s extglob' to use
+this:
+
+       echo .!(.|) *
+
+A solution that works without extended globbing is given in the Unix Shell
+FAQ, posted periodically to comp.unix.shell.
+
+Section H:  Where do I go from here?
+
+H1) How do I report bugs in bash, and where should I look for fixes and
+    advice?
+
+Use the `bashbug' script to report bugs.  It is built and
+installed at the same time as bash.  It provides a standard
+template for reporting a problem and automatically includes
+information about your configuration and build environment. 
+
+`bashbug' sends its reports to bug-bash@gnu.org, which
+is a large mailing list gatewayed to the usenet newsgroup gnu.bash.bug. 
+
+Bug fixes, answers to questions, and announcements of new releases
+are all posted to gnu.bash.bug.  Discussions concerning bash features
+and problems also take place there.
+
+To reach the bash maintainers directly, send mail to
+bash-maintainers@gnu.org.
+
+H2) What kind of bash documentation is there?
+
+First, look in the doc directory in the bash distribution.  It should
+contain at least the following files:
+
+bash.1         an extensive, thorough Unix-style manual page
+builtins.1     a manual page covering just bash builtin commands
+bashref.texi   a reference manual in GNU tex`info format
+bashref.info   an info version of the reference manual
+FAQ            this file
+article.ms     text of an article written for The Linux Journal
+readline.3     a man page describing readline
+
+Postscript, HTML, and ASCII files created from the above source are
+available in the documentation distribution.
+
+There is additional documentation available for anonymous FTP from host
+ftp.cwru.edu in the `pub/bash' directory.
+
+Cameron Newham and Bill Rosenblatt have written a book on bash, published
+by O'Reilly and Associates.  The book is based on Bill Rosenblatt's Korn
+Shell book.  The title is ``Learning the Bash Shell'', and the ISBN number
+is 1-56592-147-X.  Look for it in fine bookstores near you.  This book
+covers bash-1.14, but has an appendix describing some of the new features
+in bash-2.0.  
+
+A second edition of this book is available, published in January, 1998.
+The ISBN number is 1-56592-347-2.  Look for it in the same fine bookstores
+or on the web.
+
+The GNU Bash Reference Manual has been published as a printed book by
+Network Theory Ltd (Paperback, ISBN: 0-9541617-7-7, Feb 2003).  It covers
+bash-2.0 and is available from most online bookstores (see
+http://www.network-theory.co.uk/bash/manual/ for details).  The publisher
+will donate $1 to the Free Software Foundation for each copy sold. 
+
+H3) What's coming in future versions?
+
+These are features I hope to include in a future version of bash.
+
+a better bash debugger (a minimally-tested version is included with bash-2.05b)
+associative arrays
+co-processes, but with a new-style syntax that looks like function declaration
+
+H4) What's on the bash `wish list' for future versions?
+
+These are features that may or may not appear in a future version of bash.
+
+breaking some of the shell functionality into embeddable libraries
+a module system like zsh's, using dynamic loading like builtins
+better internationalization using GNU `gettext'
+date-stamped command history
+a bash programmer's guide with a chapter on creating loadable builtins
+a better loadable interface to perl with access to the shell builtins and
+       variables (contributions gratefully accepted)
+ksh93-like `nameref' variables
+ksh93-like `+=' variable assignment operator
+ksh93-like `xx.yy' variables (including some of the .sh.* variables) and
+       associated disipline functions
+Some of the new ksh93 pattern matching operators, like backreferencing
+
+H5) When will the next release appear?
+
+The next version will appear sometime in 2002.  Never make predictions. 
+
+
+This document is Copyright 1995-2003 by Chester Ramey.
+
+Permission is hereby granted, without written agreement and
+without license or royalty fees, to use, copy, and distribute
+this document for any purpose, provided that the above copyright
+notice appears in all copies of this document and that the
+contents of this document remain unaltered.
index 77adfaf87a79389e54d1a1dc5b506b4f495b9ec0..36f414286ec9569b323d59da9a6feb7771525df1 100644 (file)
@@ -3638,9 +3638,9 @@ is the result of quote removal on
 .IR word ,
 and the lines in the here-document are not expanded.
 If \fIword\fP is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion.  In the latter
-case, the character sequence
+all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
+the character sequence
 .B \e<newline>
 is ignored, and
 .B \e
@@ -3670,7 +3670,7 @@ A variant of here documents, the format is:
 The \fIword\fP undergoes
 brace expansion, tilde expansion, parameter and variable expansion,
 command substitution, arithmetic expansion, and quote removal.
-Pathname expansion word splitting are not performed.
+Pathname expansion and word splitting are not performed.
 The result is supplied as a single string to the command on its
 standard input.
 .SS "Duplicating File Descriptors"
index 265a3eaeb14137a924fe94b7b72c037845eec735..9eeb58c9328b820a2568411e985bf0f964efddf2 100644 (file)
@@ -2466,9 +2466,9 @@ arithmetic expansion, or filename expansion is performed on
 @var{delimiter} is the result of quote removal on @var{word},
 and the lines in the here-document are not expanded.
 If @var{word} is unquoted,
-all lines of the here-document are subjected to parameter expansion,
-command substitution, and arithmetic expansion.  In the latter
-case, the character sequence @code{\newline} is ignored, and @samp{\}
+all lines of the here-document are subjected to
+parameter expansion, command substitution, and arithmetic expansion,
+the character sequence @code{\newline} is ignored, and @samp{\}
 must be used to quote the characters
 @samp{\}, @samp{$}, and @samp{`}.
 
@@ -2487,7 +2487,7 @@ A variant of here documents, the format is:
 The @var{word} undergoes
 brace expansion, tilde expansion, parameter and variable expansion,
 command substitution, arithmetic expansion, and quote removal.
-Pathname expansion word splitting are not performed.
+Pathname expansion and word splitting are not performed.
 The result is supplied as a single string to the command on its
 standard input.
 
diff --git a/examples/loadables/Makefile.in.save b/examples/loadables/Makefile.in.save
new file mode 100644 (file)
index 0000000..f6208f5
--- /dev/null
@@ -0,0 +1,238 @@
+#
+# Simple makefile for the sample loadable builtins
+#
+# Copyright (C) 1996 Free Software Foundation, Inc.     
+
+# 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 2, 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+# Include some boilerplate Gnu makefile definitions.
+prefix = @prefix@
+
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+libdir = @libdir@
+infodir = @infodir@
+includedir = @includedir@
+
+topdir = @top_srcdir@
+BUILD_DIR = @BUILD_DIR@
+srcdir = @srcdir@
+VPATH = .:@srcdir@
+
+@SET_MAKE@
+CC = @CC@
+RM = rm -f
+
+SHELL = @MAKE_SHELL@
+
+host_os = @host_os@
+host_cpu = @host_cpu@
+host_vendor = @host_vendor@
+
+CFLAGS = @CFLAGS@
+LOCAL_CFLAGS = @LOCAL_CFLAGS@
+DEFS = @DEFS@
+LOCAL_DEFS = @LOCAL_DEFS@
+
+CPPFLAGS = @CPPFLAGS@
+
+BASHINCDIR = ${topdir}/include
+
+LIBBUILD = ${BUILD_DIR}/lib
+
+INTL_LIBSRC = ${topdir}/lib/intl
+INTL_BUILDDIR = ${LIBBUILD}/intl
+INTL_INC = @INTL_INC@
+LIBINTL_H = @LIBINTL_H@
+
+CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) $(CFLAGS)
+
+#
+# These values are generated for configure by ${topdir}/support/shobj-conf.
+# If your system is not supported by that script, but includes facilities for
+# dynamic loading of shared objects, please update the script and send the
+# changes to bash-maintainers@gnu.org.
+#
+SHOBJ_CC = @SHOBJ_CC@
+SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
+SHOBJ_LD = @SHOBJ_LD@
+SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
+SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
+SHOBJ_LIBS = @SHOBJ_LIBS@
+SHOBJ_STATUS = @SHOBJ_STATUS@
+
+INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins \
+      -I$(BASHINCDIR) -I$(BUILD_DIR) -I$(LIBBUILD) \
+      -I$(BUILD_DIR)/builtins $(INTL_INC)
+
+.c.o:
+       $(SHOBJ_CC) $(SHOBJ_CFLAGS) $(CCFLAGS) $(INC) -c -o $@ $<
+
+
+ALLPROG = print truefalse sleep pushd finfo logname basename dirname \
+         tty pathchk tee head mkdir rmdir printenv id whoami \
+         uname sync push ln unlink cut realpath getconf strftime
+OTHERPROG = necho hello cat
+
+all:   $(SHOBJ_STATUS)
+
+supported:     $(ALLPROG)
+others:                $(OTHERPROG)
+
+unsupported:
+       @echo "Your system (${host_os}) is not supported by the"
+       @echo "${topdir}/support/shobj-conf script."
+       @echo "If your operating system provides facilities for dynamic"
+       @echo "loading of shared objects using the dlopen(3) interface,"
+       @echo "please update the script and re-run configure.
+       @echo "Please send the changes you made to bash-maintainers@gnu.org"
+       @echo "for inclusion in future bash releases."
+
+everything: supported others
+
+print: print.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ print.o $(SHOBJ_LIBS)
+
+necho: necho.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ necho.o $(SHOBJ_LIBS)
+
+getconf: getconf.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ getconf.o $(SHOBJ_LIBS)
+
+hello: hello.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ hello.o $(SHOBJ_LIBS)
+
+truefalse: truefalse.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ truefalse.o $(SHOBJ_LIBS)
+
+sleep: sleep.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sleep.o $(SHOBJ_LIBS)
+
+finfo: finfo.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ finfo.o $(SHOBJ_LIBS)
+
+cat:   cat.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cat.o $(SHOBJ_LIBS)
+
+logname:       logname.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ logname.o $(SHOBJ_LIBS)
+
+basename:      basename.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ basename.o $(SHOBJ_LIBS)
+
+dirname:       dirname.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ dirname.o $(SHOBJ_LIBS)
+
+tty:   tty.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tty.o $(SHOBJ_LIBS)
+
+pathchk:       pathchk.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pathchk.o $(SHOBJ_LIBS)
+
+tee:   tee.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ tee.o $(SHOBJ_LIBS)
+
+mkdir: mkdir.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mkdir.o $(SHOBJ_LIBS)
+
+rmdir: rmdir.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ rmdir.o $(SHOBJ_LIBS)
+
+head:  head.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ head.o $(SHOBJ_LIBS)
+
+printenv:      printenv.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ printenv.o $(SHOBJ_LIBS)
+
+id:    id.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ id.o $(SHOBJ_LIBS)
+
+whoami:        whoami.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ whoami.o $(SHOBJ_LIBS)
+
+uname: uname.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ uname.o $(SHOBJ_LIBS)
+
+sync:  sync.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ sync.o $(SHOBJ_LIBS)
+
+push:  push.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ push.o $(SHOBJ_LIBS)
+
+ln:    ln.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ ln.o $(SHOBJ_LIBS)
+
+unlink:        unlink.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ unlink.o $(SHOBJ_LIBS)
+
+cut:   cut.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ cut.o $(SHOBJ_LIBS)
+
+realpath:      realpath.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ realpath.o $(SHOBJ_LIBS)
+
+strftime:      strftime.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ strftime.o $(SHOBJ_LIBS)
+
+# pushd is a special case.  We use the same source that the builtin version
+# uses, with special compilation options.
+#
+pushd.c:       ${topdir}/builtins/pushd.def
+       $(RM) $@
+       ${BUILD_DIR}/builtins/mkbuiltins -D ${topdir}/builtins ${topdir}/builtins/pushd.def
+
+pushd.o:       pushd.c
+       $(RM) $@
+       $(SHOBJ_CC) -DHAVE_CONFIG_H -DPUSHD_AND_POPD -DLOADABLE_BUILTIN $(SHOBJ_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(INC) -c -o $@ $<
+
+pushd: pushd.o
+       $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ pushd.o $(SHOBJ_LIBS)
+
+clean:
+       $(RM) $(ALLPROG) $(OTHERPROG) *.o
+       -( cd perl && ${MAKE} ${MFLAGS} $@ )
+
+mostlyclean:   clean
+       -( cd perl && ${MAKE} ${MFLAGS} $@ )
+
+distclean maintainer-clean: clean
+       $(RM) Makefile pushd.c
+       -( cd perl && ${MAKE} ${MFLAGS} $@ )
+
+print.o: print.c
+truefalse.o: truefalse.c
+sleep.o: sleep.c
+finfo.o: finfo.c
+logname.o: logname.c
+basename.o: basename.c
+dirname.o: dirname.c
+tty.o: tty.c
+pathchk.o: pathchk.c
+tee.o: tee.c
+head.o: head.c
+rmdir.o: rmdir.c
+necho.o: necho.c
+getconf.o: getconf.c
+hello.o: hello.c
+cat.o: cat.c
+printenv.o: printenv.c
+id.o: id.c
+whoami.o: whoami.c
+uname.o: uname.c
+sync.o: sync.c
+push.o: push.c
+mkdir.o: mkdir.c
+realpath.o: realpath.c
+strftime.o: strftime.c
diff --git a/examples/scripts/adventure.sh.save1 b/examples/scripts/adventure.sh.save1
new file mode 100755 (executable)
index 0000000..4e22393
--- /dev/null
@@ -0,0 +1,549 @@
+#!/bin/bash
+#      ash -- "Adventure shell"
+#      last edit:      86/04/21        D A Gwyn
+#      SCCS ID:        @(#)ash.sh      1.4
+
+OPATH=$PATH
+
+ask()
+{
+       echo -n "$@" '[y/n] '
+       read ans
+
+       case "$ans" in
+       y*|Y*)
+               return 0
+               ;;
+       *)
+               return 1
+               ;;
+       esac
+}
+       
+CAT=${PAGER:-more}
+
+ash_inst()
+{
+       cat <<- EOF
+
+                       Instructions for the Adventure shell
+
+       Welcome to the Adventure shell!  In this exploration of the UNIX file
+       system, I will act as your eyes and hands.  As you move around, I will
+       describe whatever is visible and will carry out your commands.  The
+       general form of a command is
+               Verb Object Extra_stuff.
+       Most commands pay no attention to the "Extra_stuff", and many do not
+       need an "Object".  A typical command is
+               get all
+       which picks up all files in the current "room" (directory).  You can
+       find out what you are carrying by typing the command
+               inventory
+       The command "help" results in a full description of all commands that I
+       understand.  To quit the Adventure shell, type
+               quit
+
+       There are UNIX monsters lurking in the background.  These are also
+       known as "commands with arguments".
+
+       Good luck!
+       EOF
+}
+
+ash_help()
+{
+echo "I understand the following commands (synonyms in parentheses):"
+echo ""
+
+echo "change OBJECT to NEW_NAME       changes the name of the object"
+echo "clone OBJECT as NEW_NAME        duplicates the object"
+echo "drop OBJECTS                    leaves the objects in the room"
+echo "enter (go) PASSAGE              takes the labeled passage"
+echo "examine OBJECTS                 describes the objects in detail"
+echo "feed OBJECT to MONSTER          stuffs the object into a UNIX monster"
+echo "get (take) OBJECTS              picks up the specified objects"
+echo "gripe (bug)                     report a problem with the Adventure shell"
+echo "help                            prints this summary"
+echo "inventory (i)                   tells what you are carrying"
+echo "kill (destroy) OBJECTS          destroys the objects"
+echo "look (l)                        describes the room, including hidden objects"
+echo "open (read) OBJECT              shows the contents of an object"
+echo "quit (exit)                     leaves the Adventure shell"
+echo "resurrect OBJECTS               attempts to restore dead objects"
+echo "steal OBJECT from MONSTER       obtains the object from a UNIX monster"
+echo "throw OBJECT at daemon          feeds the object to the printer daemon"
+echo "up                              takes the overhead passage"
+echo "wake MONSTER                    awakens a UNIX monster"
+echo "where (w)                       tells you where you are"
+echo "xyzzy                           moves you to your home"
+}
+       
+MAINT=chet@ins.cwru.edu
+
+PATH=/usr/ucb:/bin:/usr/bin:/usr/local/bin:.
+export PATH
+
+trap 'echo Ouch!' 2 3
+#trap '' 18                    # disable Berkeley job control
+
+ash_lk(){ echo " $1 " | fgrep " $2 " >&- 2>&-; }
+ash_pr(){ echo $* | tr ' ' '\012' | pr -5 -t -w75 -l$[ ( $# + 4 ) / 5 ]; }
+ash_rm(){ echo " $1 " | sed -e "s/ $2 / /" -e 's/^ //' -e 's/ $//'; }
+
+# enable history, bang history expansion, and emacs editing
+set -o history
+set -o histexpand
+set -o emacs
+
+cd
+LIM=.limbo                     # $HOME/$LIM contains "destroyed" objects
+mkdir $LIM >&- 2>&-
+KNAP=.knapsack                 # $HOME/$KNAP contains objects being "carried"
+if [ ! -d $KNAP ]
+then   mkdir $KNAP >&- 2>&-
+       if [ $? = 0 ]
+       then    echo 'You found a discarded empty knapsack.'
+       else    echo 'You have no knapsack to carry things in.'
+               exit 1
+       fi
+else   echo 'One moment while I peek in your old knapsack...'
+fi
+
+kn=`echo \`ls -a $KNAP | sed -e '/^\.$/d' -e '/^\.\.$/d'\``
+
+if ask 'Welcome to the Adventure shell!  Do you need instructions?'
+then
+       ash_inst
+       echo -n 'Type a newline to continue: '
+       read
+fi
+
+wiz=false
+cha=false
+prev=$LIM
+while :
+do     room=`pwd`
+       if [ $room != $prev ]
+       then    if [ $room = $HOME ]
+               then    echo 'You are in your own home.'
+               else    echo "You have entered $room."
+               fi
+               exs=
+               obs=
+               hexs=
+               hobs=
+               f=false
+               for i in `ls -a`
+               do      case $i in
+                       .|..)   ;;
+                       .*)     if [ -f $i ]
+                               then    hobs="$hobs $i"
+                               elif [ -d $i ]
+                               then    hexs="$hexs $i"
+                               else    f=true
+                               fi
+                               ;;
+                       *)      if [ -f $i ]
+                               then    obs="$obs $i"
+                               elif [ -d $i ]
+                               then    exs="$exs $i"
+                               else    f=true
+                               fi
+                               ;;
+                       esac
+               done
+               if [ "$obs" ]
+               then    echo 'This room contains:'
+                       ash_pr $obs
+               else    echo 'The room looks empty.'
+               fi
+               if [ "$exs" ]
+               then    echo 'There are exits labeled:'
+                       ash_pr $exs
+                       echo 'as well as a passage overhead.'
+               else    echo 'There is a passage overhead.'
+               fi
+               if sh -c $f
+               then    echo 'There are shadowy figures in the corner.'
+               fi
+               prev=$room
+       fi
+
+       read -e -p '-advsh> ' verb obj x        # prompt is '-advsh> '
+       if [ $? != 0 ]
+       then    verb=quit               # EOF
+       fi
+
+       case $verb in
+       change)         if [ "$obj" ]
+                       then    if ash_lk "$obs $hobs" "$obj"
+                               then    set -- $x
+                                       case "$1" in
+                                       to)     if [ "$2" ]
+                                               then    if [ -f $2 ]
+                                                       then    echo "You must destroy $2 first."
+                                                               set --
+                                                       fi
+                                                       if [ "$2" ]
+                                                       then    if mv $obj $2 >&- 2>&-
+                                                               then    echo "The $obj shimmers and turns into $2."
+                                                                       obs=`ash_rm "$2 $obs" "$obj"`
+                                                               else    echo "There is a cloud of smoke but the $obj is unchanged."
+                                                               fi
+                                                       fi
+                                               else    echo 'To what?'
+                                               fi
+                                               ;;
+                                       *)      echo "Change $obj to what?"
+                                               ;;
+                                       esac
+                               else    if ash_lk "$kn" "$obj"
+                                       then    echo 'You must drop it first.'
+                                       else    echo "I see no $obj here."
+                                       fi
+                               fi
+                       else    echo 'Change what?'
+                       fi
+                       ;;
+       clone)          if [ "$obj" ]
+                       then    if ash_lk "$obs $hobs" "$obj"
+                               then    if [ ! -r $obj ]
+                                       then    echo "The $obj does not wish to be cloned."
+                                       else    set -- $x
+                                               case "$1" in
+                                               as)     if [ "$2" ]
+                                                       then    if [ -f $2 ]
+                                                               then    echo "You must destroy $2 first."
+                                                               else    if cp $obj $2 >&- 2>&-
+                                                                       then    echo "Poof!  When the smoke clears, you see the new $2."
+                                                                               obs="$obs $2"
+                                                                       else    echo 'You hear a dull thud but no clone appears.'
+                                                                       fi
+                                                               fi
+                                                       else    echo 'As what?'
+                                                       fi
+                                                       ;;
+                                               *)      echo "Clone $obj as what?"
+                                                       ;;
+                                               esac
+                                       fi
+                               else    if ash_lk "$kn" "$obj"
+                                       then    echo 'You must drop it first.'
+                                       else    echo "I see no $obj here."
+                                       fi
+                               fi
+                       else    echo 'Clone what?'
+                       fi
+                       ;;
+       drop)           if [ "$obj" ]
+                       then    for it in $obj $x
+                               do      if ash_lk "$kn" "$it"
+                                       then    if [ -w $it ]
+                                               then    echo "You must destroy $it first."
+                                               else    if mv $HOME/$KNAP/$it $it >&- 2>&-
+                                                       then    echo "$it: dropped."
+                                                               kn=`ash_rm "$kn" "$it"`
+                                                               obs=`echo $it $obs`
+                                                       else    echo "The $it is caught in your knapsack."
+                                                       fi
+                                               fi
+                                       else    echo "You're not carrying the $it!"
+                                       fi
+                               done
+                       else    echo 'Drop what?'
+                       fi
+                       ;;
+       enter|go)       if [ "$obj" ]
+                       then    if [ $obj != up ]
+                               then    if ash_lk "$exs $hexs" "$obj"
+                                       then    if [ -x $obj ]
+                                               then    if cd $obj
+                                                       then    echo 'You squeeze through the passage.'
+                                                       else    echo "You can't go that direction."
+                                                       fi
+                                               else    echo 'An invisible force blocks your way.'
+                                               fi
+                                       else    echo 'I see no such passage.'
+                                       fi
+                               else    if cd ..
+                                       then    echo 'You struggle upwards.'
+                                       else    echo "You can't reach that high."
+                                       fi
+                               fi
+                       else    echo 'Which passage?'
+                       fi
+                       ;;
+       examine)        if [ "$obj" ]
+                       then    if [ $obj = all ]
+                               then    $obj=`echo $obs $exs`
+                                       x=
+                               fi
+                               for it in $obj $x
+                               do      if ash_lk "$obs $hobs $exs $hexs" "$it"
+                                       then    echo "Upon close inspection of the $it, you see:"
+                                               ls -ld $it 2>&-
+                                               if [ $? != 0 ]
+                                               then    echo "-- when you look directly at the $it, it vanishes."
+                                               fi
+                                       else    if ash_lk "$kn" "$it"
+                                               then    echo 'You must drop it first.'
+                                               else    echo "I see no $it here."
+                                               fi
+                                       fi
+                               done
+                       else    echo 'Examine what?'
+                       fi
+                       ;;
+       feed)           if [ "$obj" ]
+                       then    if ash_lk "$obs $hobs" "$obj"
+                               then    set -- $x
+                                       case "$1" in
+                                       to)     if [ "$2" ]
+                                               then    shift
+                                                       if PATH=$OPATH $* <$obj 2>&-
+                                                       then    echo "The $1 monster devours your $obj."
+                                                               if rm -f $obj >&- 2>&-
+                                                               then    obs=`ash_rm "$obs" "$obj"`
+                                                               else    echo 'But he spits it back up.'
+                                                               fi
+                                                       else    echo "The $1 monster holds his nose in disdain."
+                                                       fi
+                                               else    echo 'To what?'
+                                               fi
+                                               ;;
+                                       *)      echo "Feed $obj to what?"
+                                               ;;
+                                       esac
+                               else    if ash_lk "$kn" "$obj"
+                                       then    echo 'You must drop it first.'
+                                       else    echo "I see no $obj here."
+                                       fi
+                               fi
+                       else    echo 'Feed what?'
+                       fi
+                       ;;
+       get|take)       if [ "$obj" ]
+                       then    if [ $obj = all ]
+                               then    obj="$obs"
+                                       x=
+                               fi
+                               for it in $obj $x
+                               do      if ash_lk "$obs $hobs" "$it"
+                                       then    if ash_lk "$kn" "$it"
+                                               then    echo 'You already have one.'
+                                               else    if mv $it $HOME/$KNAP/$it >&- 2>&-
+                                                       then    echo "$it: taken."
+                                                               kn="$it $kn"
+                                                               obs=`ash_rm "$obs" "$it"`
+                                                       else    echo "The $it is too heavy."
+                                                       fi
+                                               fi
+                                       else    echo "I see no $it here."
+                                       fi
+                               done
+                       else    echo 'Get what?'
+                       fi
+                       ;;
+       gripe|bug)      echo 'Please describe the problem and your situation at the time it failed.\nEnd the bug report with a line containing just a Ctrl-D.'
+                       cat | mail $MAINT -s 'ash bug'
+                       echo 'Thank you!'
+                       ;;
+       help)           ash_help
+                       ;;
+       inventory|i)    if [ "$kn" ]
+                       then    echo 'Your knapsack contains:'
+                               ash_pr $kn
+                       else    echo 'You are poverty-stricken.'
+                       fi
+                       ;;
+       kill|destroy)   if [ "$obj" ]
+                       then    if [ $obj = all ]
+                               then    x=
+                                       if ask "Do you really want to attempt to $verb them all?"
+                                       then    obj=`echo $obs`
+                                       else    echo 'Chicken!'
+                                               obj=
+                                       fi
+                               fi
+                               for it in $obj $x
+                               do      if ash_lk "$obs $hobs" "$it"
+                                       then    if mv $it $HOME/$LIM <&- >&- 2>&-
+                                               then    if [ $verb = kill ]
+                                                       then    echo "The $it cannot defend himself; he dies."
+                                                       else    echo "You have destroyed the $it; it vanishes."
+                                                       fi
+                                                       obs=`ash_rm "$obs" "$it"`
+                                               else    if [ $verb = kill ]
+                                                       then    echo "Your feeble blows are no match for the $it."
+                                                       else    echo "The $it is indestructible."
+                                                       fi
+                                               fi
+                                       else    if ash_lk "$kn" "$it"
+                                               then    echo "You must drop the $it first."
+                                                       found=false
+                                               else    echo "I see no $it here."
+                                               fi
+                                       fi
+                               done
+                       else    echo 'Kill what?'
+                       fi
+                       ;;
+       look|l)         obs=`echo $obs $hobs`
+                       hobs=
+                       if [ "$obs" ]
+                       then    echo 'The room contains:'
+                               ash_pr $obs
+                       else    echo 'The room is empty.'
+                       fi
+                       exs=`echo $exs $hexs`
+                       hexs=
+                       if [ "$exs" ]
+                       then    echo 'There are exits plainly labeled:'
+                               ash_pr $exs
+                               echo 'and a passage directly overhead.'
+                       else    echo 'The only exit is directly overhead.'
+                       fi
+                       ;;
+       magic)          if [ "$obj" = mode ]
+                       then    if sh -c $cha
+                               then    echo 'You had your chance and you blew it.'
+                               else    if ask 'Are you a wizard?'
+                                       then    echo -n 'Prove it!  Say the magic word: '
+                                               read obj
+                                               if [ "$obj" = armadillo ]
+                                               then    echo 'Yes, master!!'
+                                                       wiz=true
+                                               else    echo "Homie says: I don't think so"
+                                                       cha=true
+                                               fi
+                                       else    echo "I didn't think so."
+                                       fi
+                               fi
+                       else    echo 'Nice try.'
+                       fi
+                       ;;
+       open|read)      if [ "$obj" ]
+                       then    if ash_lk "$obs $hobs" "$obj"
+                               then    if [ -r $obj ]
+                                       then    if [ -s $obj ]
+                                               then    echo "Opening the $obj reveals:"
+                                                       $CAT < $obj
+                                                       if [ $? != 0 ]
+                                                       then    echo '-- oops, you lost the contents!'
+                                                       fi
+                                               else    echo "There is nothing inside the $obj."
+                                               fi
+                                       else    echo "You do not have the proper tools to open the $obj."
+                                       fi
+                               else    if ash_lk "$kn" "$obj"
+                                       then    echo 'You must drop it first.'
+                                               found=false
+                                       else    echo "I see no $obj here."
+                                       fi
+                               fi
+                       else    echo 'Open what?'
+                       fi
+                       ;;
+       quit|exit)      if ask 'Do you really want to quit now?'
+                       then    if [ "$kn" ]
+                               then    echo 'The contents of your knapsack will still be there next time.'
+                               fi
+                               rm -rf $HOME/$LIM
+                               echo 'See you later!'
+                               exit 0
+                       fi
+                       ;;
+       resurrect)      if [ "$obj" ]
+                       then    for it in $obj $x
+                               do      if ash_lk "$obs $hobs" "$it"
+                                       then    echo "The $it is already alive and well."
+                                       else    if mv $HOME/$LIM/$it $it <&- >&- 2>&-
+                                               then    echo "The $it staggers to his feet."
+                                                       obs=`echo $it $obs`
+                                               else    echo "There are sparks but no $it appears."
+                                               fi
+                                       fi
+                               done
+                       else    echo 'Resurrect what?'
+                       fi
+                       ;;
+       steal)          if [ "$obj" ]
+                       then    if ash_lk "$obs $hobs" "$obj"
+                               then    echo 'There is already one here.'
+                               else    set -- $x
+                                       case "$1" in
+                                       from)   if [ "$2" ]
+                                               then    shift
+                                                       if PATH=$OPATH $* >$obj 2>&-
+                                                       then    echo "The $1 monster drops the $obj."
+                                                               obs=`echo $obj $obs`
+                                                       else    echo "The $1 monster runs away as you approach."
+                                                               rm -f $obj >&- 2>&-
+                                                       fi
+                                               else    echo 'From what?'
+                                               fi
+                                               ;;
+                                       *)      echo "Steal $obj from what?"
+                                               ;;
+                                       esac
+                               fi
+                       else    echo 'Steal what?'
+                       fi
+                       ;;
+       throw)          if [ "$obj" ]
+                       then    if ash_lk "$obs $hobs" "$obj"
+                               then    set -- $x
+                                       case "$1" in
+                                       at)     case "$2" in
+                                               daemon) if sh -c "lpr -r $obj"
+                                                       then    echo "The daemon catches the $obj, turns it into paper,\nand leaves it in the basket."
+                                                               obs=`ash_rm "$obs" "$obj"`
+                                                       else    echo "The daemon is nowhere to be found."
+                                                       fi
+                                                       ;;
+                                               *)      echo 'At what?'
+                                                       ;;
+                                               esac
+                                               ;;
+                                       *)      echo "Throw $obj at what?"
+                                               ;;
+                                       esac
+                               else    if ash_lk "$kn" "$obj"
+                                       then    echo 'It is in your knapsack.'
+                                               found=false
+                                       else    echo "I see no $obj here."
+                                       fi
+                               fi
+                       else    echo 'Throw what?'
+                       fi
+                       ;;
+       u|up)           if cd ..
+                       then    echo 'You pull yourself up a level.'
+                       else    echo "You can't reach that high."
+                       fi
+                       ;;
+       wake)           if [ "$obj" ]
+                       then    echo "You awaken the $obj monster:"
+                               PATH=$OPATH $obj $x
+                               echo 'The monster slithers back into the darkness.'
+                       else    echo 'Wake what?'
+                       fi
+                       ;;
+       w|where)        echo "You are in $room."
+                       ;;
+       xyzzy)          if cd
+                       then    echo 'A strange feeling comes over you.'
+                       else    echo 'Your spell fizzles out.'
+                       fi
+                       ;;
+       *)              if [ "$verb" ]
+                       then    if sh -c $wiz
+                               then    PATH=$OPATH $verb $obj $x
+                               else    echo "I don't know how to \"$verb\"."
+                                       echo 'Type "help" for assistance.'
+                               fi
+                       else    echo 'Say something!'
+                       fi
+                       ;;
+       esac
+done
index e0ad5f756d8ad6ef180119ada52b3fc237f92a54..a4e2e6952da0e1c3c7bf0ffb7cf9422c74687c4c 100644 (file)
@@ -919,8 +919,19 @@ print_filename (to_print, full_pathname, prefix_bytes)
            extension_char = stat_char (new_full_pathname);
          else
 #endif
-         if (_rl_complete_mark_directories && path_isdir (new_full_pathname))
-           extension_char = '/';
+         if (_rl_complete_mark_directories)
+           {
+             dn = 0;
+             if (rl_directory_completion_hook == 0 && rl_filename_stat_hook)
+               {
+                 dn = savestring (new_full_pathname);
+                 (*rl_filename_stat_hook) (&dn);
+                 free (new_full_pathname);
+                 new_full_pathname = dn;
+               }
+             if (path_isdir (new_full_pathname))
+               extension_char = '/';
+           }
 
 #if defined (COLOR_SUPPORT)
          if (_rl_colored_stats)
@@ -2718,6 +2729,11 @@ rl_menu_complete (count, ignore)
              full_completion = 1;
              return (0);
            }
+         else if (_rl_menu_complete_prefix_first)
+           {
+             rl_ding ();
+             return (0);
+           }
        }
       else if (match_list_size <= 1)
        {
diff --git a/lib/readline/complete.c.save1 b/lib/readline/complete.c.save1
new file mode 100644 (file)
index 0000000..7ebb104
--- /dev/null
@@ -0,0 +1,2705 @@
+/* complete.c -- filename completion for readline. */
+
+/* Copyright (C) 1987-2011 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/>.
+*/
+
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <fcntl.h>
+#if defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif
+
+#include <signal.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined (HAVE_STDLIB_H)
+#  include <stdlib.h>
+#else
+#  include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include <stdio.h>
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if defined (HAVE_PWD_H)
+#include <pwd.h>
+#endif
+
+#include "posixdir.h"
+#include "posixstat.h"
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+#include "rlmbutil.h"
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "xmalloc.h"
+#include "rlprivate.h"
+
+#ifdef __STDC__
+typedef int QSFUNC (const void *, const void *);
+#else
+typedef int QSFUNC ();
+#endif
+
+#ifdef HAVE_LSTAT
+#  define LSTAT lstat
+#else
+#  define LSTAT stat
+#endif
+
+/* Unix version of a hidden file.  Could be different on other systems. */
+#define HIDDEN_FILE(fname)     ((fname)[0] == '.')
+
+/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
+   defined. */
+#if defined (HAVE_GETPWENT) && (!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE))
+extern struct passwd *getpwent PARAMS((void));
+#endif /* HAVE_GETPWENT && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */
+
+/* If non-zero, then this is the address of a function to call when
+   completing a word would normally display the list of possible matches.
+   This function is called instead of actually doing the display.
+   It takes three arguments: (char **matches, int num_matches, int max_length)
+   where MATCHES is the array of strings that matched, NUM_MATCHES is the
+   number of strings in that array, and MAX_LENGTH is the length of the
+   longest string in that array. */
+rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
+
+#if defined (VISIBLE_STATS)
+#  if !defined (X_OK)
+#    define X_OK 1
+#  endif
+static int stat_char PARAMS((char *));
+#endif
+
+static int path_isdir PARAMS((const char *));
+
+static char *rl_quote_filename PARAMS((char *, int, char *));
+
+static void _rl_complete_sigcleanup PARAMS((int, void *));
+
+static void set_completion_defaults PARAMS((int));
+static int get_y_or_n PARAMS((int));
+static int _rl_internal_pager PARAMS((int));
+static char *printable_part PARAMS((char *));
+static int fnwidth PARAMS((const char *));
+static int fnprint PARAMS((const char *, int));
+static int print_filename PARAMS((char *, char *, int));
+
+static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
+
+static char **remove_duplicate_matches PARAMS((char **));
+static void insert_match PARAMS((char *, int, int, char *));
+static int append_to_match PARAMS((char *, int, int, int));
+static void insert_all_matches PARAMS((char **, int, char *));
+static int complete_fncmp PARAMS((const char *, int, const char *, int));
+static void display_matches PARAMS((char **));
+static int compute_lcd_of_matches PARAMS((char **, int, const char *));
+static int postprocess_matches PARAMS((char ***, int));
+static int complete_get_screenwidth PARAMS((void));
+
+static char *make_quoted_replacement PARAMS((char *, int, char *));
+
+/* **************************************************************** */
+/*                                                                 */
+/*     Completion matching, from readline's point of view.         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Variables known only to the readline library. */
+
+/* If non-zero, non-unique completions always show the list of matches. */
+int _rl_complete_show_all = 0;
+
+/* If non-zero, non-unique completions show the list of matches, unless it
+   is not possible to do partial completion and modify the line. */
+int _rl_complete_show_unmodified = 0;
+
+/* If non-zero, completed directory names have a slash appended. */
+int _rl_complete_mark_directories = 1;
+
+/* If non-zero, the symlinked directory completion behavior introduced in
+   readline-4.2a is disabled, and symlinks that point to directories have
+   a slash appended (subject to the value of _rl_complete_mark_directories).
+   This is user-settable via the mark-symlinked-directories variable. */
+int _rl_complete_mark_symlink_dirs = 0;
+
+/* If non-zero, completions are printed horizontally in alphabetical order,
+   like `ls -x'. */
+int _rl_print_completions_horizontally;
+
+/* Non-zero means that case is not significant in filename completion. */
+#if defined (__MSDOS__) && !defined (__DJGPP__)
+int _rl_completion_case_fold = 1;
+#else
+int _rl_completion_case_fold = 0;
+#endif
+
+/* Non-zero means that `-' and `_' are equivalent when comparing filenames
+  for completion. */
+int _rl_completion_case_map = 0;
+
+/* If zero, don't match hidden files (filenames beginning with a `.' on
+   Unix) when doing filename completion. */
+int _rl_match_hidden_files = 1;
+
+/* Length in characters of a common prefix replaced with an ellipsis (`...')
+   when displaying completion matches.  Matches whose printable portion has
+   more than this number of displaying characters in common will have the common
+   display prefix replaced with an ellipsis. */
+int _rl_completion_prefix_display_length = 0;
+
+/* The readline-private number of screen columns to use when displaying
+   matches.  If < 0 or > _rl_screenwidth, it is ignored. */
+int _rl_completion_columns = -1;
+
+/* Global variables available to applications using readline. */
+
+#if defined (VISIBLE_STATS)
+/* Non-zero means add an additional character to each filename displayed
+   during listing completion iff rl_filename_completion_desired which helps
+   to indicate the type of file being listed. */
+int rl_visible_stats = 0;
+#endif /* VISIBLE_STATS */
+
+/* If non-zero, when completing in the middle of a word, don't insert
+   characters from the match that match characters following point in
+   the word.  This means, for instance, completing when the cursor is
+   after the `e' in `Makefile' won't result in `Makefilefile'. */
+int _rl_skip_completed_text = 0;
+
+/* If non-zero, menu completion displays the common prefix first in the
+   cycle of possible completions instead of the last. */
+int _rl_menu_complete_prefix_first = 0;
+
+/* If non-zero, then this is the address of a function to call when
+   completing on a directory name.  The function is called with
+   the address of a string (the current directory name) as an arg. */
+rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_filename_stat_hook = (rl_icppfunc_t *)NULL;
+
+/* If non-zero, this is the address of a function to call when reading
+   directory entries from the filesystem for completion and comparing
+   them to the partial word to be completed.  The function should
+   either return its first argument (if no conversion takes place) or
+   newly-allocated memory.  This can, for instance, convert filenames
+   between character sets for comparison against what's typed at the
+   keyboard.  The returned value is what is added to the list of
+   matches.  The second argument is the length of the filename to be
+   converted. */
+rl_dequote_func_t *rl_filename_rewrite_hook = (rl_dequote_func_t *)NULL;
+
+/* Non-zero means readline completion functions perform tilde expansion. */
+int rl_complete_with_tilde_expansion = 0;
+
+/* Pointer to the generator function for completion_matches ().
+   NULL means to use rl_filename_completion_function (), the default filename
+   completer. */
+rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
+
+/* Pointer to generator function for rl_menu_complete ().  NULL means to use
+   *rl_completion_entry_function (see above). */
+rl_compentry_func_t *rl_menu_completion_entry_function = (rl_compentry_func_t *)NULL;
+
+/* Pointer to alternative function to create matches.
+   Function is called with TEXT, START, and END.
+   START and END are indices in RL_LINE_BUFFER saying what the boundaries
+   of TEXT are.
+   If this function exists and returns NULL then call the value of
+   rl_completion_entry_function to try to match, otherwise use the
+   array of strings returned. */
+rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+
+/* Non-zero means to suppress normal filename completion after the
+   user-specified completion function has been called. */
+int rl_attempted_completion_over = 0;
+
+/* Set to a character indicating the type of completion being performed
+   by rl_complete_internal, available for use by application completion
+   functions. */
+int rl_completion_type = 0;
+
+/* Up to this many items will be displayed in response to a
+   possible-completions call.  After that, we ask the user if
+   she is sure she wants to see them all.  A negative value means
+   don't ask. */
+int rl_completion_query_items = 100;
+
+int _rl_page_completions = 1;
+
+/* The basic list of characters that signal a break between words for the
+   completer routine.  The contents of this variable is what breaks words
+   in the shell, i.e. " \t\n\"\\'`@$><=" */
+const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
+
+/* List of basic quoting characters. */
+const char *rl_basic_quote_characters = "\"'";
+
+/* The list of characters that signal a break between words for
+   rl_complete_internal.  The default list is the contents of
+   rl_basic_word_break_characters.  */
+/*const*/ char *rl_completer_word_break_characters = (/*const*/ char *)NULL;
+
+/* Hook function to allow an application to set the completion word
+   break characters before readline breaks up the line.  Allows
+   position-dependent word break characters. */
+rl_cpvfunc_t *rl_completion_word_break_hook = (rl_cpvfunc_t *)NULL;
+
+/* List of characters which can be used to quote a substring of the line.
+   Completion occurs on the entire substring, and within the substring
+   rl_completer_word_break_characters are treated as any other character,
+   unless they also appear within this list. */
+const char *rl_completer_quote_characters = (const char *)NULL;
+
+/* List of characters that should be quoted in filenames by the completer. */
+const char *rl_filename_quote_characters = (const char *)NULL;
+
+/* List of characters that are word break characters, but should be left
+   in TEXT when it is passed to the completion function.  The shell uses
+   this to help determine what kind of completing to do. */
+const char *rl_special_prefixes = (const char *)NULL;
+
+/* If non-zero, then disallow duplicates in the matches. */
+int rl_ignore_completion_duplicates = 1;
+
+/* Non-zero means that the results of the matches are to be treated
+   as filenames.  This is ALWAYS zero on entry, and can only be changed
+   within a completion entry finder function. */
+int rl_filename_completion_desired = 0;
+
+/* Non-zero means that the results of the matches are to be quoted using
+   double quotes (or an application-specific quoting mechanism) if the
+   filename contains any characters in rl_filename_quote_chars.  This is
+   ALWAYS non-zero on entry, and can only be changed within a completion
+   entry finder function. */
+int rl_filename_quoting_desired = 1;
+
+/* This function, if defined, is called by the completer when real
+   filename completion is done, after all the matching names have been
+   generated. It is passed a (char**) known as matches in the code below.
+   It consists of a NULL-terminated array of pointers to potential
+   matching strings.  The 1st element (matches[0]) is the maximal
+   substring that is common to all matches. This function can re-arrange
+   the list of matches as required, but all elements of the array must be
+   free()'d if they are deleted. The main intent of this function is
+   to implement FIGNORE a la SunOS csh. */
+rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
+
+/* Set to a function to quote a filename in an application-specific fashion.
+   Called with the text to quote, the type of match found (single or multiple)
+   and a pointer to the quoting character to be used, which the function can
+   reset if desired. */
+rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
+         
+/* Function to call to remove quoting characters from a filename.  Called
+   before completion is attempted, so the embedded quotes do not interfere
+   with matching names in the file system.  Readline doesn't do anything
+   with this; it's set only by applications. */
+rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
+
+/* Function to call to decide whether or not a word break character is
+   quoted.  If a character is quoted, it does not break words for the
+   completer. */
+rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
+
+/* If non-zero, the completion functions don't append anything except a
+   possible closing quote.  This is set to 0 by rl_complete_internal and
+   may be changed by an application-specific completion function. */
+int rl_completion_suppress_append = 0;
+
+/* Character appended to completed words when at the end of the line.  The
+   default is a space. */
+int rl_completion_append_character = ' ';
+
+/* If non-zero, the completion functions don't append any closing quote.
+   This is set to 0 by rl_complete_internal and may be changed by an
+   application-specific completion function. */
+int rl_completion_suppress_quote = 0;
+
+/* Set to any quote character readline thinks it finds before any application
+   completion function is called. */
+int rl_completion_quote_character;
+
+/* Set to a non-zero value if readline found quoting anywhere in the word to
+   be completed; set before any application completion function is called. */
+int rl_completion_found_quote;
+
+/* If non-zero, a slash will be appended to completed filenames that are
+   symbolic links to directory names, subject to the value of the
+   mark-directories variable (which is user-settable).  This exists so
+   that application completion functions can override the user's preference
+   (set via the mark-symlinked-directories variable) if appropriate.
+   It's set to the value of _rl_complete_mark_symlink_dirs in
+   rl_complete_internal before any application-specific completion
+   function is called, so without that function doing anything, the user's
+   preferences are honored. */
+int rl_completion_mark_symlink_dirs;
+
+/* If non-zero, inhibit completion (temporarily). */
+int rl_inhibit_completion;
+
+/* Set to the last key used to invoke one of the completion functions */
+int rl_completion_invoking_key;
+
+/* If non-zero, sort the completion matches.  On by default. */
+int rl_sort_completion_matches = 1;
+
+/* Variables local to this file. */
+
+/* Local variable states what happened during the last completion attempt. */
+static int completion_changed_buffer;
+
+/* The result of the query to the user about displaying completion matches */
+static int completion_y_or_n;
+
+/*************************************/
+/*                                  */
+/*    Bindable completion functions  */
+/*                                  */
+/*************************************/
+
+/* Complete the word at or before point.  You have supplied the function
+   that does the initial simple matching selection algorithm (see
+   rl_completion_matches ()).  The default is to do filename completion. */
+int
+rl_complete (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  rl_completion_invoking_key = invoking_key;
+
+  if (rl_inhibit_completion)
+    return (_rl_insert_char (ignore, invoking_key));
+  else if (rl_last_func == rl_complete && !completion_changed_buffer)
+    return (rl_complete_internal ('?'));
+  else if (_rl_complete_show_all)
+    return (rl_complete_internal ('!'));
+  else if (_rl_complete_show_unmodified)
+    return (rl_complete_internal ('@'));
+  else
+    return (rl_complete_internal (TAB));
+}
+
+/* List the possible completions.  See description of rl_complete (). */
+int
+rl_possible_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  rl_completion_invoking_key = invoking_key;
+  return (rl_complete_internal ('?'));
+}
+
+int
+rl_insert_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  rl_completion_invoking_key = invoking_key;
+  return (rl_complete_internal ('*'));
+}
+
+/* Return the correct value to pass to rl_complete_internal performing
+   the same tests as rl_complete.  This allows consecutive calls to an
+   application's completion function to list possible completions and for
+   an application-specific completion function to honor the
+   show-all-if-ambiguous readline variable. */
+int
+rl_completion_mode (cfunc)
+     rl_command_func_t *cfunc;
+{
+  if (rl_last_func == cfunc && !completion_changed_buffer)
+    return '?';
+  else if (_rl_complete_show_all)
+    return '!';
+  else if (_rl_complete_show_unmodified)
+    return '@';
+  else
+    return TAB;
+}
+
+/************************************/
+/*                                 */
+/*    Completion utility functions  */
+/*                                 */
+/************************************/
+
+/* Reset readline state on a signal or other event. */
+void
+_rl_reset_completion_state ()
+{
+  rl_completion_found_quote = 0;
+  rl_completion_quote_character = 0;
+}
+
+static void
+_rl_complete_sigcleanup (sig, ptr)
+     int sig;
+     void *ptr;
+{
+  if (sig == SIGINT)   /* XXX - for now */
+    _rl_free_match_list ((char **)ptr);
+}
+
+/* Set default values for readline word completion.  These are the variables
+   that application completion functions can change or inspect. */
+static void
+set_completion_defaults (what_to_do)
+     int what_to_do;
+{
+  /* Only the completion entry function can change these. */
+  rl_filename_completion_desired = 0;
+  rl_filename_quoting_desired = 1;
+  rl_completion_type = what_to_do;
+  rl_completion_suppress_append = rl_completion_suppress_quote = 0;
+  rl_completion_append_character = ' ';
+
+  /* The completion entry function may optionally change this. */
+  rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
+}
+
+/* The user must press "y" or "n". Non-zero return means "y" pressed. */
+static int
+get_y_or_n (for_pager)
+     int for_pager;
+{
+  int c;
+
+  /* For now, disable pager in callback mode, until we later convert to state
+     driven functions.  Have to wait until next major version to add new
+     state definition, since it will change value of RL_STATE_DONE. */
+#if defined (READLINE_CALLBACKS)
+  if (RL_ISSTATE (RL_STATE_CALLBACK))
+    return 1;
+#endif
+
+  for (;;)
+    {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+      if (c == 'y' || c == 'Y' || c == ' ')
+       return (1);
+      if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+      if (c == ABORT_CHAR || c < 0)
+       _rl_abort_internal ();
+      if (for_pager && (c == NEWLINE || c == RETURN))
+       return (2);
+      if (for_pager && (c == 'q' || c == 'Q'))
+       return (0);
+      rl_ding ();
+    }
+}
+
+static int
+_rl_internal_pager (lines)
+     int lines;
+{
+  int i;
+
+  fprintf (rl_outstream, "--More--");
+  fflush (rl_outstream);
+  i = get_y_or_n (1);
+  _rl_erase_entire_line ();
+  if (i == 0)
+    return -1;
+  else if (i == 2)
+    return (lines - 1);
+  else
+    return 0;
+}
+
+static int
+path_isdir (filename)
+     const char *filename;
+{
+  struct stat finfo;
+
+  return (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode));
+}
+
+#if defined (VISIBLE_STATS)
+/* Return the character which best describes FILENAME.
+     `@' for symbolic links
+     `/' for directories
+     `*' for executables
+     `=' for sockets
+     `|' for FIFOs
+     `%' for character special devices
+     `#' for block special devices */
+static int
+stat_char (filename)
+     char *filename;
+{
+  struct stat finfo;
+  int character, r;
+
+  /* Short-circuit a //server on cygwin, since that will always behave as
+     a directory. */
+#if __CYGWIN__
+  if (filename[0] == '/' && filename[1] == '/' && strchr (filename+2, '/') == 0)
+    return '/';
+#endif
+
+#if defined (HAVE_LSTAT) && defined (S_ISLNK)
+  r = lstat (filename, &finfo);
+#else
+  r = stat (filename, &finfo);
+#endif
+
+  if (r == -1)
+    return (0);
+
+  character = 0;
+  if (S_ISDIR (finfo.st_mode))
+    character = '/';
+#if defined (S_ISCHR)
+  else if (S_ISCHR (finfo.st_mode))
+    character = '%';
+#endif /* S_ISCHR */
+#if defined (S_ISBLK)
+  else if (S_ISBLK (finfo.st_mode))
+    character = '#';
+#endif /* S_ISBLK */
+#if defined (S_ISLNK)
+  else if (S_ISLNK (finfo.st_mode))
+    character = '@';
+#endif /* S_ISLNK */
+#if defined (S_ISSOCK)
+  else if (S_ISSOCK (finfo.st_mode))
+    character = '=';
+#endif /* S_ISSOCK */
+#if defined (S_ISFIFO)
+  else if (S_ISFIFO (finfo.st_mode))
+    character = '|';
+#endif
+  else if (S_ISREG (finfo.st_mode))
+    {
+      if (access (filename, X_OK) == 0)
+       character = '*';
+    }
+  return (character);
+}
+#endif /* VISIBLE_STATS */
+
+/* Return the portion of PATHNAME that should be output when listing
+   possible completions.  If we are hacking filename completion, we
+   are only interested in the basename, the portion following the
+   final slash.  Otherwise, we return what we were passed.  Since
+   printing empty strings is not very informative, if we're doing
+   filename completion, and the basename is the empty string, we look
+   for the previous slash and return the portion following that.  If
+   there's no previous slash, we just return what we were passed. */
+static char *
+printable_part (pathname)
+      char *pathname;
+{
+  char *temp, *x;
+
+  if (rl_filename_completion_desired == 0)     /* don't need to do anything */
+    return (pathname);
+
+  temp = strrchr (pathname, '/');
+#if defined (__MSDOS__)
+  if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
+    temp = pathname + 1;
+#endif
+
+  if (temp == 0 || *temp == '\0')
+    return (pathname);
+  /* If the basename is NULL, we might have a pathname like '/usr/src/'.
+     Look for a previous slash and, if one is found, return the portion
+     following that slash.  If there's no previous slash, just return the
+     pathname we were passed. */
+  else if (temp[1] == '\0')
+    {
+      for (x = temp - 1; x > pathname; x--)
+        if (*x == '/')
+          break;
+      return ((*x == '/') ? x + 1 : pathname);
+    }
+  else
+    return ++temp;
+}
+
+/* Compute width of STRING when displayed on screen by print_filename */
+static int
+fnwidth (string)
+     const char *string;
+{
+  int width, pos;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  int left, w;
+  size_t clen;
+  wchar_t wc;
+
+  left = strlen (string) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  width = pos = 0;
+  while (string[pos])
+    {
+      if (CTRL_CHAR (string[pos]) || string[pos] == RUBOUT)
+       {
+         width += 2;
+         pos++;
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         clen = mbrtowc (&wc, string + pos, left - pos, &ps);
+         if (MB_INVALIDCH (clen))
+           {
+             width++;
+             pos++;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (clen))
+           break;
+         else
+           {
+             pos += clen;
+             w = WCWIDTH (wc);
+             width += (w >= 0) ? w : 1;
+           }
+#else
+         width++;
+         pos++;
+#endif
+       }
+    }
+
+  return width;
+}
+
+#define ELLIPSIS_LEN   3
+
+static int
+fnprint (to_print, prefix_bytes)
+     const char *to_print;
+     int prefix_bytes;
+{
+  int printed_len, w;
+  const char *s;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  const char *end;
+  size_t tlen;
+  int width;
+  wchar_t wc;
+
+  end = to_print + strlen (to_print) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  printed_len = 0;
+
+  /* Don't print only the ellipsis if the common prefix is one of the
+     possible completions */
+  if (to_print[prefix_bytes] == '\0')
+    prefix_bytes = 0;
+
+  if (prefix_bytes)
+    {
+      char ellipsis;
+
+      ellipsis = (to_print[prefix_bytes] == '.') ? '_' : '.';
+      for (w = 0; w < ELLIPSIS_LEN; w++)
+       putc (ellipsis, rl_outstream);
+      printed_len = ELLIPSIS_LEN;
+    }
+
+  s = to_print + prefix_bytes;
+  while (*s)
+    {
+      if (CTRL_CHAR (*s))
+        {
+          putc ('^', rl_outstream);
+          putc (UNCTRL (*s), rl_outstream);
+          printed_len += 2;
+          s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+        }
+      else if (*s == RUBOUT)
+       {
+         putc ('^', rl_outstream);
+         putc ('?', rl_outstream);
+         printed_len += 2;
+         s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         tlen = mbrtowc (&wc, s, end - s, &ps);
+         if (MB_INVALIDCH (tlen))
+           {
+             tlen = 1;
+             width = 1;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (tlen))
+           break;
+         else
+           {
+             w = WCWIDTH (wc);
+             width = (w >= 0) ? w : 1;
+           }
+         fwrite (s, 1, tlen, rl_outstream);
+         s += tlen;
+         printed_len += width;
+#else
+         putc (*s, rl_outstream);
+         s++;
+         printed_len++;
+#endif
+       }
+    }
+
+  return printed_len;
+}
+
+/* Output TO_PRINT to rl_outstream.  If VISIBLE_STATS is defined and we
+   are using it, check for and output a single character for `special'
+   filenames.  Return the number of characters we output. */
+
+static int
+print_filename (to_print, full_pathname, prefix_bytes)
+     char *to_print, *full_pathname;
+     int prefix_bytes;
+{
+  int printed_len, extension_char, slen, tlen;
+  char *s, c, *new_full_pathname, *dn;
+
+  extension_char = 0;
+  printed_len = fnprint (to_print, prefix_bytes);
+
+#if defined (VISIBLE_STATS)
+ if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories))
+#else
+ if (rl_filename_completion_desired && _rl_complete_mark_directories)
+#endif
+    {
+      /* If to_print != full_pathname, to_print is the basename of the
+        path passed.  In this case, we try to expand the directory
+        name before checking for the stat character. */
+      if (to_print != full_pathname)
+       {
+         /* Terminate the directory name. */
+         c = to_print[-1];
+         to_print[-1] = '\0';
+
+         /* If setting the last slash in full_pathname to a NUL results in
+            full_pathname being the empty string, we are trying to complete
+            files in the root directory.  If we pass a null string to the
+            bash directory completion hook, for example, it will expand it
+            to the current directory.  We just want the `/'. */
+         if (full_pathname == 0 || *full_pathname == 0)
+           dn = "/";
+         else if (full_pathname[0] != '/')
+           dn = full_pathname;
+         else if (full_pathname[1] == 0)
+           dn = "//";          /* restore trailing slash to `//' */
+         else if (full_pathname[1] == '/' && full_pathname[2] == 0)
+           dn = "/";           /* don't turn /// into // */
+         else
+           dn = full_pathname;
+         s = tilde_expand (dn);
+         if (rl_directory_completion_hook)
+           (*rl_directory_completion_hook) (&s);
+
+         slen = strlen (s);
+         tlen = strlen (to_print);
+         new_full_pathname = (char *)xmalloc (slen + tlen + 2);
+         strcpy (new_full_pathname, s);
+         if (s[slen - 1] == '/')
+           slen--;
+         else
+           new_full_pathname[slen] = '/';
+         new_full_pathname[slen] = '/';
+         strcpy (new_full_pathname + slen + 1, to_print);
+
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (new_full_pathname);
+         else
+#endif
+         if (path_isdir (new_full_pathname))
+           extension_char = '/';
+
+         xfree (new_full_pathname);
+         to_print[-1] = c;
+       }
+      else
+       {
+         s = tilde_expand (full_pathname);
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (s);
+         else
+#endif
+           if (path_isdir (s))
+             extension_char = '/';
+       }
+
+      xfree (s);
+      if (extension_char)
+       {
+         putc (extension_char, rl_outstream);
+         printed_len++;
+       }
+    }
+
+  return printed_len;
+}
+
+static char *
+rl_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  char *r;
+
+  r = (char *)xmalloc (strlen (s) + 2);
+  *r = *rl_completer_quote_characters;
+  strcpy (r + 1, s);
+  if (qcp)
+    *qcp = *rl_completer_quote_characters;
+  return r;
+}
+
+/* Find the bounds of the current word for completion purposes, and leave
+   rl_point set to the end of the word.  This function skips quoted
+   substrings (characters between matched pairs of characters in
+   rl_completer_quote_characters).  First we try to find an unclosed
+   quoted substring on which to do matching.  If one is not found, we use
+   the word break characters to find the boundaries of the current word.
+   We call an application-specific function to decide whether or not a
+   particular word break character is quoted; if that function returns a
+   non-zero result, the character does not break a word.  This function
+   returns the opening quote character if we found an unclosed quoted
+   substring, '\0' otherwise.  FP, if non-null, is set to a value saying
+   which (shell-like) quote characters we found (single quote, double
+   quote, or backslash) anywhere in the string.  DP, if non-null, is set to
+   the value of the delimiter character that caused a word break. */
+
+char
+_rl_find_completion_word (fp, dp)
+     int *fp, *dp;
+{
+  int scan, end, found_quote, delimiter, pass_next, isbrk;
+  char quote_char, *brkchars;
+
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  brkchars = 0;
+  if (rl_completion_word_break_hook)
+    brkchars = (*rl_completion_word_break_hook) ();
+  if (brkchars == 0)
+    brkchars = rl_completer_word_break_characters;
+
+  if (rl_completer_quote_characters)
+    {
+      /* We have a list of characters which can be used in pairs to
+        quote substrings for the completer.  Try to find the start
+        of an unclosed quoted substring. */
+      /* FOUND_QUOTE is set so we know what kind of quotes we found. */
+      for (scan = pass_next = 0; scan < end; scan = MB_NEXTCHAR (rl_line_buffer, scan, 1, MB_FIND_ANY))
+       {
+         if (pass_next)
+           {
+             pass_next = 0;
+             continue;
+           }
+
+         /* Shell-like semantics for single quotes -- don't allow backslash
+            to quote anything in single quotes, especially not the closing
+            quote.  If you don't like this, take out the check on the value
+            of quote_char. */
+         if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
+           {
+             pass_next = 1;
+             found_quote |= RL_QF_BACKSLASH;
+             continue;
+           }
+
+         if (quote_char != '\0')
+           {
+             /* Ignore everything until the matching close quote char. */
+             if (rl_line_buffer[scan] == quote_char)
+               {
+                 /* Found matching close.  Abandon this substring. */
+                 quote_char = '\0';
+                 rl_point = end;
+               }
+           }
+         else if (strchr (rl_completer_quote_characters, rl_line_buffer[scan]))
+           {
+             /* Found start of a quoted substring. */
+             quote_char = rl_line_buffer[scan];
+             rl_point = scan + 1;
+             /* Shell-like quoting conventions. */
+             if (quote_char == '\'')
+               found_quote |= RL_QF_SINGLE_QUOTE;
+             else if (quote_char == '"')
+               found_quote |= RL_QF_DOUBLE_QUOTE;
+             else
+               found_quote |= RL_QF_OTHER_QUOTE;      
+           }
+       }
+    }
+
+  if (rl_point == end && quote_char == '\0')
+    {
+      /* We didn't find an unclosed quoted substring upon which to do
+         completion, so use the word break characters to find the
+         substring on which to complete. */
+      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
+       {
+         scan = rl_line_buffer[rl_point];
+
+         if (strchr (brkchars, scan) == 0)
+           continue;
+
+         /* Call the application-specific function to tell us whether
+            this word break character is quoted and should be skipped. */
+         if (rl_char_is_quoted_p && found_quote &&
+             (*rl_char_is_quoted_p) (rl_line_buffer, rl_point))
+           continue;
+
+         /* Convoluted code, but it avoids an n^2 algorithm with calls
+            to char_is_quoted. */
+         break;
+       }
+    }
+
+  /* If we are at an unquoted word break, then advance past it. */
+  scan = rl_line_buffer[rl_point];
+
+  /* If there is an application-specific function to say whether or not
+     a character is quoted and we found a quote character, let that
+     function decide whether or not a character is a word break, even
+     if it is found in rl_completer_word_break_characters.  Don't bother
+     if we're at the end of the line, though. */
+  if (scan)
+    {
+      if (rl_char_is_quoted_p)
+       isbrk = (found_quote == 0 ||
+               (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
+               strchr (brkchars, scan) != 0;
+      else
+       isbrk = strchr (brkchars, scan) != 0;
+
+      if (isbrk)
+       {
+         /* If the character that caused the word break was a quoting
+            character, then remember it as the delimiter. */
+         if (rl_basic_quote_characters &&
+             strchr (rl_basic_quote_characters, scan) &&
+             (end - rl_point) > 1)
+           delimiter = scan;
+
+         /* If the character isn't needed to determine something special
+            about what kind of completion to perform, then advance past it. */
+         if (rl_special_prefixes == 0 || strchr (rl_special_prefixes, scan) == 0)
+           rl_point++;
+       }
+    }
+
+  if (fp)
+    *fp = found_quote;
+  if (dp)
+    *dp = delimiter;
+
+  return (quote_char);
+}
+
+static char **
+gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
+     char *text;
+     int start, end;
+     rl_compentry_func_t *our_func;
+     int found_quote, quote_char;
+{
+  char **matches;
+
+  rl_completion_found_quote = found_quote;
+  rl_completion_quote_character = quote_char;
+
+  /* If the user wants to TRY to complete, but then wants to give
+     up and use the default completion function, they set the
+     variable rl_attempted_completion_function. */
+  if (rl_attempted_completion_function)
+    {
+      matches = (*rl_attempted_completion_function) (text, start, end);
+      if (RL_SIG_RECEIVED())
+       {
+         _rl_free_match_list (matches);
+         matches = 0;
+         RL_CHECK_SIGNALS ();
+       }
+
+      if (matches || rl_attempted_completion_over)
+       {
+         rl_attempted_completion_over = 0;
+         return (matches);
+       }
+    }
+
+  /* XXX -- filename dequoting moved into rl_filename_completion_function */
+
+  /* rl_completion_matches will check for signals as well to avoid a long
+     delay while reading a directory. */
+  matches = rl_completion_matches (text, our_func);
+  if (RL_SIG_RECEIVED())
+    {
+      _rl_free_match_list (matches);
+      matches = 0;
+      RL_CHECK_SIGNALS ();
+    }
+  return matches;  
+}
+
+/* Filter out duplicates in MATCHES.  This frees up the strings in
+   MATCHES. */
+static char **
+remove_duplicate_matches (matches)
+     char **matches;
+{
+  char *lowest_common;
+  int i, j, newlen;
+  char dead_slot;
+  char **temp_array;
+
+  /* Sort the items. */
+  for (i = 0; matches[i]; i++)
+    ;
+
+  /* Sort the array without matches[0], since we need it to
+     stay in place no matter what. */
+  if (i && rl_sort_completion_matches)
+    qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  /* Remember the lowest common denominator for it may be unique. */
+  lowest_common = savestring (matches[0]);
+
+  for (i = newlen = 0; matches[i + 1]; i++)
+    {
+      if (strcmp (matches[i], matches[i + 1]) == 0)
+       {
+         xfree (matches[i]);
+         matches[i] = (char *)&dead_slot;
+       }
+      else
+       newlen++;
+    }
+
+  /* We have marked all the dead slots with (char *)&dead_slot.
+     Copy all the non-dead entries into a new array. */
+  temp_array = (char **)xmalloc ((3 + newlen) * sizeof (char *));
+  for (i = j = 1; matches[i]; i++)
+    {
+      if (matches[i] != (char *)&dead_slot)
+       temp_array[j++] = matches[i];
+    }
+  temp_array[j] = (char *)NULL;
+
+  if (matches[0] != (char *)&dead_slot)
+    xfree (matches[0]);
+
+  /* Place the lowest common denominator back in [0]. */
+  temp_array[0] = lowest_common;
+
+  /* If there is one string left, and it is identical to the
+     lowest common denominator, then the LCD is the string to
+     insert. */
+  if (j == 2 && strcmp (temp_array[0], temp_array[1]) == 0)
+    {
+      xfree (temp_array[1]);
+      temp_array[1] = (char *)NULL;
+    }
+  return (temp_array);
+}
+
+/* Find the common prefix of the list of matches, and put it into
+   matches[0]. */
+static int
+compute_lcd_of_matches (match_list, matches, text)
+     char **match_list;
+     int matches;
+     const char *text;
+{
+  register int i, c1, c2, si;
+  int low;             /* Count of max-matched characters. */
+  char *dtext;         /* dequoted TEXT, if needed */
+#if defined (HANDLE_MULTIBYTE)
+  int v;
+  mbstate_t ps1, ps2;
+  wchar_t wc1, wc2;
+#endif
+
+  /* If only one match, just use that.  Otherwise, compare each
+     member of the list with the next, finding out where they
+     stop matching. */
+  if (matches == 1)
+    {
+      match_list[0] = match_list[1];
+      match_list[1] = (char *)NULL;
+      return 1;
+    }
+
+  for (i = 1, low = 100000; i < matches; i++)
+    {
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         memset (&ps1, 0, sizeof (mbstate_t));
+         memset (&ps2, 0, sizeof (mbstate_t));
+       }
+#endif
+      if (_rl_completion_case_fold)
+       {
+         for (si = 0;
+              (c1 = _rl_to_lower(match_list[i][si])) &&
+              (c2 = _rl_to_lower(match_list[i + 1][si]));
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
+               mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+               wc1 = towlower (wc1);
+               wc2 = towlower (wc2);
+               if (wc1 != wc2)
+                 break;
+               else if (v > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+      else
+       {
+         for (si = 0;
+              (c1 = match_list[i][si]) &&
+              (c2 = match_list[i + 1][si]);
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               mbstate_t ps_back;
+               ps_back = ps1;
+               if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
+                 break;
+               else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+
+      if (low > si)
+       low = si;
+    }
+
+  /* If there were multiple matches, but none matched up to even the
+     first character, and the user typed something, use that as the
+     value of matches[0]. */
+  if (low == 0 && text && *text)
+    {
+      match_list[0] = (char *)xmalloc (strlen (text) + 1);
+      strcpy (match_list[0], text);
+    }
+  else
+    {
+      match_list[0] = (char *)xmalloc (low + 1);
+
+      /* XXX - this might need changes in the presence of multibyte chars */
+
+      /* If we are ignoring case, try to preserve the case of the string
+        the user typed in the face of multiple matches differing in case. */
+      if (_rl_completion_case_fold)
+       {
+         /* We're making an assumption here:
+               IF we're completing filenames AND
+                  the application has defined a filename dequoting function AND
+                  we found a quote character AND
+                  the application has requested filename quoting
+               THEN
+                  we assume that TEXT was dequoted before checking against
+                  the file system and needs to be dequoted here before we
+                  check against the list of matches
+               FI */
+         dtext = (char *)NULL;
+         if (rl_filename_completion_desired &&
+             rl_filename_dequoting_function &&
+             rl_completion_found_quote &&
+             rl_filename_quoting_desired)
+           {
+             dtext = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+             text = dtext;
+           }
+
+         /* sort the list to get consistent answers. */
+         qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
+
+         si = strlen (text);
+         if (si <= low)
+           {
+             for (i = 1; i <= matches; i++)
+               if (strncmp (match_list[i], text, si) == 0)
+                 {
+                   strncpy (match_list[0], match_list[i], low);
+                   break;
+                 }
+             /* no casematch, use first entry */
+             if (i > matches)
+               strncpy (match_list[0], match_list[1], low);
+           }
+         else
+           /* otherwise, just use the text the user typed. */
+           strncpy (match_list[0], text, low);
+
+         FREE (dtext);
+       }
+      else
+        strncpy (match_list[0], match_list[1], low);
+
+      match_list[0][low] = '\0';
+    }
+
+  return matches;
+}
+
+static int
+postprocess_matches (matchesp, matching_filenames)
+     char ***matchesp;
+     int matching_filenames;
+{
+  char *t, **matches, **temp_matches;
+  int nmatch, i;
+
+  matches = *matchesp;
+
+  if (matches == 0)
+    return 0;
+
+  /* It seems to me that in all the cases we handle we would like
+     to ignore duplicate possiblilities.  Scan for the text to
+     insert being identical to the other completions. */
+  if (rl_ignore_completion_duplicates)
+    {
+      temp_matches = remove_duplicate_matches (matches);
+      xfree (matches);
+      matches = temp_matches;
+    }
+
+  /* If we are matching filenames, then here is our chance to
+     do clever processing by re-examining the list.  Call the
+     ignore function with the array as a parameter.  It can
+     munge the array, deleting matches as it desires. */
+  if (rl_ignore_some_completions_function && matching_filenames)
+    {
+      for (nmatch = 1; matches[nmatch]; nmatch++)
+       ;
+      (void)(*rl_ignore_some_completions_function) (matches);
+      if (matches == 0 || matches[0] == 0)
+       {
+         FREE (matches);
+         *matchesp = (char **)0;
+         return 0;
+        }
+      else
+       {
+         /* If we removed some matches, recompute the common prefix. */
+         for (i = 1; matches[i]; i++)
+           ;
+         if (i > 1 && i < nmatch)
+           {
+             t = matches[0];
+             compute_lcd_of_matches (matches, i - 1, t);
+             FREE (t);
+           }
+       }
+    }
+
+  *matchesp = matches;
+  return (1);
+}
+
+static int
+complete_get_screenwidth ()
+{
+  int cols;
+  char *envcols;
+
+  cols = _rl_completion_columns;
+  if (cols >= 0 && cols <= _rl_screenwidth)
+    return cols;
+  envcols = getenv ("COLUMNS");
+  if (envcols && *envcols)
+    cols = atoi (envcols);
+  if (cols >= 0 && cols <= _rl_screenwidth)
+    return cols;
+  return _rl_screenwidth;
+}
+
+/* A convenience function for displaying a list of strings in
+   columnar format on readline's output stream.  MATCHES is the list
+   of strings, in argv format, LEN is the number of strings in MATCHES,
+   and MAX is the length of the longest string in MATCHES. */
+void
+rl_display_match_list (matches, len, max)
+     char **matches;
+     int len, max;
+{
+  int count, limit, printed_len, lines, cols;
+  int i, j, k, l, common_length, sind;
+  char *temp, *t;
+
+  /* Find the length of the prefix common to all items: length as displayed
+     characters (common_length) and as a byte index into the matches (sind) */
+  common_length = sind = 0;
+  if (_rl_completion_prefix_display_length > 0)
+    {
+      t = printable_part (matches[0]);
+      temp = strrchr (t, '/');
+      common_length = temp ? fnwidth (temp) : fnwidth (t);
+      sind = temp ? strlen (temp) : strlen (t);
+
+      if (common_length > _rl_completion_prefix_display_length && common_length > ELLIPSIS_LEN)
+       max -= common_length - ELLIPSIS_LEN;
+      else
+       common_length = sind = 0;
+    }
+
+  /* How many items of MAX length can we fit in the screen window? */
+  cols = complete_get_screenwidth ();
+  max += 2;
+  limit = cols / max;
+  if (limit != 1 && (limit * max == cols))
+    limit--;
+
+  /* If cols == 0, limit will end up -1 */
+  if (cols < _rl_screenwidth && limit < 0)
+    limit = 1;
+
+  /* Avoid a possible floating exception.  If max > cols,
+     limit will be 0 and a divide-by-zero fault will result. */
+  if (limit == 0)
+    limit = 1;
+
+  /* How many iterations of the printing loop? */
+  count = (len + (limit - 1)) / limit;
+
+  /* Watch out for special case.  If LEN is less than LIMIT, then
+     just do the inner printing loop.
+          0 < len <= limit  implies  count = 1. */
+
+  /* Sort the items if they are not already sorted. */
+  if (rl_ignore_completion_duplicates == 0 && rl_sort_completion_matches)
+    qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  rl_crlf ();
+
+  lines = 0;
+  if (_rl_print_completions_horizontally == 0)
+    {
+      /* Print the sorted items, up-and-down alphabetically, like ls. */
+      for (i = 1; i <= count; i++)
+       {
+         for (j = 0, l = i; j < limit; j++)
+           {
+             if (l > len || matches[l] == 0)
+               break;
+             else
+               {
+                 temp = printable_part (matches[l]);
+                 printed_len = print_filename (temp, matches[l], sind);
+
+                 if (j + 1 < limit)
+                   for (k = 0; k < max - printed_len; k++)
+                     putc (' ', rl_outstream);
+               }
+             l += count;
+           }
+         rl_crlf ();
+         lines++;
+         if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
+           {
+             lines = _rl_internal_pager (lines);
+             if (lines < 0)
+               return;
+           }
+       }
+    }
+  else
+    {
+      /* Print the sorted items, across alphabetically, like ls -x. */
+      for (i = 1; matches[i]; i++)
+       {
+         temp = printable_part (matches[i]);
+         printed_len = print_filename (temp, matches[i], sind);
+         /* Have we reached the end of this line? */
+         if (matches[i+1])
+           {
+             if (i && (limit > 1) && (i % limit) == 0)
+               {
+                 rl_crlf ();
+                 lines++;
+                 if (_rl_page_completions && lines >= _rl_screenheight - 1)
+                   {
+                     lines = _rl_internal_pager (lines);
+                     if (lines < 0)
+                       return;
+                   }
+               }
+             else
+               for (k = 0; k < max - printed_len; k++)
+                 putc (' ', rl_outstream);
+           }
+       }
+      rl_crlf ();
+    }
+}
+
+/* Display MATCHES, a list of matching filenames in argv format.  This
+   handles the simple case -- a single match -- first.  If there is more
+   than one match, we compute the number of strings in the list and the
+   length of the longest string, which will be needed by the display
+   function.  If the application wants to handle displaying the list of
+   matches itself, it sets RL_COMPLETION_DISPLAY_MATCHES_HOOK to the
+   address of a function, and we just call it.  If we're handling the
+   display ourselves, we just call rl_display_match_list.  We also check
+   that the list of matches doesn't exceed the user-settable threshold,
+   and ask the user if he wants to see the list if there are more matches
+   than RL_COMPLETION_QUERY_ITEMS. */
+static void
+display_matches (matches)
+     char **matches;
+{
+  int len, max, i;
+  char *temp;
+
+  /* Move to the last visible line of a possibly-multiple-line command. */
+  _rl_move_vert (_rl_vis_botlin);
+
+  /* Handle simple case first.  What if there is only one answer? */
+  if (matches[1] == 0)
+    {
+      temp = printable_part (matches[0]);
+      rl_crlf ();
+      print_filename (temp, matches[0], 0);
+      rl_crlf ();
+
+      rl_forced_update_display ();
+      rl_display_fixed = 1;
+
+      return;
+    }
+
+  /* There is more than one answer.  Find out how many there are,
+     and find the maximum printed length of a single entry. */
+  for (max = 0, i = 1; matches[i]; i++)
+    {
+      temp = printable_part (matches[i]);
+      len = fnwidth (temp);
+
+      if (len > max)
+       max = len;
+    }
+
+  len = i - 1;
+
+  /* If the caller has defined a display hook, then call that now. */
+  if (rl_completion_display_matches_hook)
+    {
+      (*rl_completion_display_matches_hook) (matches, len, max);
+      return;
+    }
+       
+  /* If there are many items, then ask the user if she really wants to
+     see them all. */
+  if (rl_completion_query_items > 0 && len >= rl_completion_query_items)
+    {
+      rl_crlf ();
+      fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
+      fflush (rl_outstream);
+      if ((completion_y_or_n = get_y_or_n (0)) == 0)
+       {
+         rl_crlf ();
+
+         rl_forced_update_display ();
+         rl_display_fixed = 1;
+
+         return;
+       }
+    }
+
+  rl_display_match_list (matches, len, max);
+
+  rl_forced_update_display ();
+  rl_display_fixed = 1;
+}
+
+static char *
+make_quoted_replacement (match, mtype, qc)
+     char *match;
+     int mtype;
+     char *qc; /* Pointer to quoting character, if any */
+{
+  int should_quote, do_replace;
+  char *replacement;
+
+  /* If we are doing completion on quoted substrings, and any matches
+     contain any of the completer_word_break_characters, then auto-
+     matically prepend the substring with a quote character (just pick
+     the first one from the list of such) if it does not already begin
+     with a quote string.  FIXME: Need to remove any such automatically
+     inserted quote character when it no longer is necessary, such as
+     if we change the string we are completing on and the new set of
+     matches don't require a quoted substring. */
+  replacement = match;
+
+  should_quote = match && rl_completer_quote_characters &&
+                       rl_filename_completion_desired &&
+                       rl_filename_quoting_desired;
+
+  if (should_quote)
+    should_quote = should_quote && (!qc || !*qc ||
+                    (rl_completer_quote_characters && strchr (rl_completer_quote_characters, *qc)));
+
+  if (should_quote)
+    {
+      /* If there is a single match, see if we need to quote it.
+         This also checks whether the common prefix of several
+        matches needs to be quoted. */
+      should_quote = rl_filename_quote_characters
+                       ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
+                       : 0;
+
+      do_replace = should_quote ? mtype : NO_MATCH;
+      /* Quote the replacement, since we found an embedded
+        word break character in a potential match. */
+      if (do_replace != NO_MATCH && rl_filename_quoting_function)
+       replacement = (*rl_filename_quoting_function) (match, do_replace, qc);
+    }
+  return (replacement);
+}
+
+static void
+insert_match (match, start, mtype, qc)
+     char *match;
+     int start, mtype;
+     char *qc;
+{
+  char *replacement, *r;
+  char oqc;
+  int end, rlen;
+
+  oqc = qc ? *qc : '\0';
+  replacement = make_quoted_replacement (match, mtype, qc);
+
+  /* Now insert the match. */
+  if (replacement)
+    {
+      rlen = strlen (replacement);
+      /* Don't double an opening quote character. */
+      if (qc && *qc && start && rl_line_buffer[start - 1] == *qc &&
+           replacement[0] == *qc)
+       start--;
+      /* If make_quoted_replacement changed the quoting character, remove
+        the opening quote and insert the (fully-quoted) replacement. */
+      else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
+           replacement[0] != oqc)
+       start--;
+      end = rl_point - 1;
+      /* Don't double a closing quote character */
+      if (qc && *qc && end && rl_line_buffer[rl_point] == *qc && replacement[rlen - 1] == *qc)
+        end++;
+      if (_rl_skip_completed_text)
+       {
+         r = replacement;
+         while (start < rl_end && *r && rl_line_buffer[start] == *r)
+           {
+             start++;
+             r++;
+           }
+         if (start <= end || *r)
+           _rl_replace_text (r, start, end);
+         rl_point = start + strlen (r);
+       }
+      else
+       _rl_replace_text (replacement, start, end);
+      if (replacement != match)
+        xfree (replacement);
+    }
+}
+
+/* Append any necessary closing quote and a separator character to the
+   just-inserted match.  If the user has specified that directories
+   should be marked by a trailing `/', append one of those instead.  The
+   default trailing character is a space.  Returns the number of characters
+   appended.  If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
+   has them) and don't add a suffix for a symlink to a directory.  A
+   nontrivial match is one that actually adds to the word being completed.
+   The variable rl_completion_mark_symlink_dirs controls this behavior
+   (it's initially set to the what the user has chosen, indicated by the
+   value of _rl_complete_mark_symlink_dirs, but may be modified by an
+   application's completion function). */
+static int
+append_to_match (text, delimiter, quote_char, nontrivial_match)
+     char *text;
+     int delimiter, quote_char, nontrivial_match;
+{
+  char temp_string[4], *filename;
+  int temp_string_index, s;
+  struct stat finfo;
+
+  temp_string_index = 0;
+  if (quote_char && rl_point && rl_completion_suppress_quote == 0 &&
+      rl_line_buffer[rl_point - 1] != quote_char)
+    temp_string[temp_string_index++] = quote_char;
+
+  if (delimiter)
+    temp_string[temp_string_index++] = delimiter;
+  else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
+    temp_string[temp_string_index++] = rl_completion_append_character;
+
+  temp_string[temp_string_index++] = '\0';
+
+  if (rl_filename_completion_desired)
+    {
+      filename = tilde_expand (text);
+      if (rl_filename_stat_hook)
+       (*rl_filename_stat_hook) (&filename);
+      s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
+               ? LSTAT (filename, &finfo)
+               : stat (filename, &finfo);
+      if (s == 0 && S_ISDIR (finfo.st_mode))
+       {
+         if (_rl_complete_mark_directories /* && rl_completion_suppress_append == 0 */)
+           {
+             /* This is clumsy.  Avoid putting in a double slash if point
+                is at the end of the line and the previous character is a
+                slash. */
+             if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
+               ;
+             else if (rl_line_buffer[rl_point] != '/')
+               rl_insert_text ("/");
+           }
+       }
+#ifdef S_ISLNK
+      /* Don't add anything if the filename is a symlink and resolves to a
+        directory. */
+      else if (s == 0 && S_ISLNK (finfo.st_mode) && path_isdir (filename))
+       ;
+#endif
+      else
+       {
+         if (rl_point == rl_end && temp_string_index)
+           rl_insert_text (temp_string);
+       }
+      xfree (filename);
+    }
+  else
+    {
+      if (rl_point == rl_end && temp_string_index)
+       rl_insert_text (temp_string);
+    }
+
+  return (temp_string_index);
+}
+
+static void
+insert_all_matches (matches, point, qc)
+     char **matches;
+     int point;
+     char *qc;
+{
+  int i;
+  char *rp;
+
+  rl_begin_undo_group ();
+  /* remove any opening quote character; make_quoted_replacement will add
+     it back. */
+  if (qc && *qc && point && rl_line_buffer[point - 1] == *qc)
+    point--;
+  rl_delete_text (point, rl_point);
+  rl_point = point;
+
+  if (matches[1])
+    {
+      for (i = 1; matches[i]; i++)
+       {
+         rp = make_quoted_replacement (matches[i], SINGLE_MATCH, qc);
+         rl_insert_text (rp);
+         rl_insert_text (" ");
+         if (rp != matches[i])
+           xfree (rp);
+       }
+    }
+  else
+    {
+      rp = make_quoted_replacement (matches[0], SINGLE_MATCH, qc);
+      rl_insert_text (rp);
+      rl_insert_text (" ");
+      if (rp != matches[0])
+       xfree (rp);
+    }
+  rl_end_undo_group ();
+}
+
+void
+_rl_free_match_list (matches)
+     char **matches;
+{
+  register int i;
+
+  if (matches == 0)
+    return;
+
+  for (i = 0; matches[i]; i++)
+    xfree (matches[i]);
+  xfree (matches);
+}
+
+/* Complete the word at or before point.
+   WHAT_TO_DO says what to do with the completion.
+   `?' means list the possible completions.
+   TAB means do standard completion.
+   `*' means insert all of the possible completions.
+   `!' means to do standard completion, and list all possible completions if
+   there is more than one.
+   `@' means to do standard completion, and list all possible completions if
+   there is more than one and partial completion is not possible. */
+int
+rl_complete_internal (what_to_do)
+     int what_to_do;
+{
+  char **matches;
+  rl_compentry_func_t *our_func;
+  int start, end, delimiter, found_quote, i, nontrivial_lcd;
+  char *text, *saved_line_buffer;
+  char quote_char;
+#if 1
+  int tlen, mlen;
+#endif
+
+  RL_SETSTATE(RL_STATE_COMPLETING);
+
+  set_completion_defaults (what_to_do);
+
+  saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
+  our_func = rl_completion_entry_function
+               ? rl_completion_entry_function
+               : rl_filename_completion_function;
+  /* We now look backwards for the start of a filename/variable word. */
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  if (rl_point)
+    /* This (possibly) changes rl_point.  If it returns a non-zero char,
+       we know we have an open quote. */
+    quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+  start = rl_point;
+  rl_point = end;
+
+  text = rl_copy_text (start, end);
+  matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
+  /* nontrivial_lcd is set if the common prefix adds something to the word
+     being completed. */
+  nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+  if (what_to_do == '!' || what_to_do == '@')
+    tlen = strlen (text);
+  xfree (text);
+
+  if (matches == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      _rl_reset_completion_state ();
+      return (0);
+    }
+
+  /* If we are matching filenames, the attempted completion function will
+     have set rl_filename_completion_desired to a non-zero value.  The basic
+     rl_filename_completion_function does this. */
+  i = rl_filename_completion_desired;
+
+  if (postprocess_matches (&matches, i) == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      _rl_reset_completion_state ();
+      return (0);
+    }
+
+  switch (what_to_do)
+    {
+    case TAB:
+    case '!':
+    case '@':
+      /* Insert the first match with proper quoting. */
+      if (what_to_do == TAB)
+        {
+          if (*matches[0])
+           insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+        }
+      else if (*matches[0] && matches[1] == 0)
+       /* should we perform the check only if there are multiple matches? */
+       insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+      else if (*matches[0])    /* what_to_do != TAB && multiple matches */
+       {
+         mlen = *matches[0] ? strlen (matches[0]) : 0;
+         if (mlen >= tlen)
+           insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+       }
+
+      /* If there are more matches, ring the bell to indicate.
+        If we are in vi mode, Posix.2 says to not ring the bell.
+        If the `show-all-if-ambiguous' variable is set, display
+        all the matches immediately.  Otherwise, if this was the
+        only match, and we are hacking files, check the file to
+        see if it was a directory.  If so, and the `mark-directories'
+        variable is set, add a '/' to the name.  If not, and we
+        are at the end of the line, then add a space.  */
+      if (matches[1])
+       {
+         if (what_to_do == '!')
+           {
+             display_matches (matches);
+             break;
+           }
+         else if (what_to_do == '@')
+           {
+             if (nontrivial_lcd == 0)
+               display_matches (matches);
+             break;
+           }
+         else if (rl_editing_mode != vi_mode)
+           rl_ding (); /* There are other matches remaining. */
+       }
+      else
+       append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+
+      break;
+
+    case '*':
+      insert_all_matches (matches, start, &quote_char);
+      break;
+
+    case '?':
+      if (rl_completion_display_matches_hook == 0)
+       {
+         _rl_sigcleanup = _rl_complete_sigcleanup;
+         _rl_sigcleanarg = matches;
+       }
+      display_matches (matches);
+      _rl_sigcleanup = 0;
+      _rl_sigcleanarg = 0;
+      break;
+
+    default:
+      _rl_ttymsg ("bad value %d for what_to_do in rl_complete", what_to_do);
+      rl_ding ();
+      FREE (saved_line_buffer);
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      _rl_free_match_list (matches);
+      _rl_reset_completion_state ();
+      return 1;
+    }
+
+  _rl_free_match_list (matches);
+
+  /* Check to see if the line has changed through all of this manipulation. */
+  if (saved_line_buffer)
+    {
+      completion_changed_buffer = strcmp (rl_line_buffer, saved_line_buffer) != 0;
+      xfree (saved_line_buffer);
+    }
+
+  RL_UNSETSTATE(RL_STATE_COMPLETING);
+  _rl_reset_completion_state ();
+  return 0;
+}
+
+/***************************************************************/
+/*                                                            */
+/*  Application-callable completion match generator functions  */
+/*                                                            */
+/***************************************************************/
+
+/* Return an array of (char *) which is a list of completions for TEXT.
+   If there are no completions, return a NULL pointer.
+   The first entry in the returned array is the substitution for TEXT.
+   The remaining entries are the possible completions.
+   The array is terminated with a NULL pointer.
+
+   ENTRY_FUNCTION is a function of two args, and returns a (char *).
+     The first argument is TEXT.
+     The second is a state argument; it should be zero on the first call, and
+     non-zero on subsequent calls.  It returns a NULL pointer to the caller
+     when there are no more matches.
+ */
+char **
+rl_completion_matches (text, entry_function)
+     const char *text;
+     rl_compentry_func_t *entry_function;
+{
+  register int i;
+
+  /* Number of slots in match_list. */
+  int match_list_size;
+
+  /* The list of matches. */
+  char **match_list;
+
+  /* Number of matches actually found. */
+  int matches;
+
+  /* Temporary string binder. */
+  char *string;
+
+  matches = 0;
+  match_list_size = 10;
+  match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
+  match_list[1] = (char *)NULL;
+
+  while (string = (*entry_function) (text, matches))
+    {
+      if (RL_SIG_RECEIVED ())
+       {
+         /* Start at 1 because we don't set matches[0] in this function.
+            Only free the list members if we're building match list from
+            rl_filename_completion_function, since we know that doesn't
+            free the strings it returns. */
+         if (entry_function == rl_filename_completion_function)
+           {
+             for (i = 1; match_list[i]; i++)
+               xfree (match_list[i]);
+           }
+         xfree (match_list);
+         match_list = 0;
+         match_list_size = 0;
+         RL_CHECK_SIGNALS ();
+       }
+
+      if (matches + 1 == match_list_size)
+       match_list = (char **)xrealloc
+         (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
+
+      match_list[++matches] = string;
+      match_list[matches + 1] = (char *)NULL;
+    }
+
+  /* If there were any matches, then look through them finding out the
+     lowest common denominator.  That then becomes match_list[0]. */
+  if (matches)
+    compute_lcd_of_matches (match_list, matches, text);
+  else                         /* There were no matches. */
+    {
+      xfree (match_list);
+      match_list = (char **)NULL;
+    }
+  return (match_list);
+}
+
+/* A completion function for usernames.
+   TEXT contains a partial username preceded by a random
+   character (usually `~').  */
+char *
+rl_username_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT)
+  return (char *)NULL;
+#else /* !__WIN32__ && !__OPENNT) */
+  static char *username = (char *)NULL;
+  static struct passwd *entry;
+  static int namelen, first_char, first_char_loc;
+  char *value;
+
+  if (state == 0)
+    {
+      FREE (username);
+
+      first_char = *text;
+      first_char_loc = first_char == '~';
+
+      username = savestring (&text[first_char_loc]);
+      namelen = strlen (username);
+      setpwent ();
+    }
+
+#if defined (HAVE_GETPWENT)
+  while (entry = getpwent ())
+    {
+      /* Null usernames should result in all users as possible completions. */
+      if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
+       break;
+    }
+#endif
+
+  if (entry == 0)
+    {
+#if defined (HAVE_GETPWENT)
+      endpwent ();
+#endif
+      return ((char *)NULL);
+    }
+  else
+    {
+      value = (char *)xmalloc (2 + strlen (entry->pw_name));
+
+      *value = *text;
+
+      strcpy (value + first_char_loc, entry->pw_name);
+
+      if (first_char == '~')
+       rl_filename_completion_desired = 1;
+
+      return (value);
+    }
+#endif /* !__WIN32__ && !__OPENNT */
+}
+
+/* Return non-zero if CONVFN matches FILENAME up to the length of FILENAME
+   (FILENAME_LEN).  If _rl_completion_case_fold is set, compare without
+   regard to the alphabetic case of characters.  CONVFN is the possibly-
+   converted directory entry; FILENAME is what the user typed. */
+static int
+complete_fncmp (convfn, convlen, filename, filename_len)
+     const char *convfn;
+     int convlen;
+     const char *filename;
+     int filename_len;
+{
+  register char *s1, *s2;
+  int d, len;
+
+  /* Otherwise, if these match up to the length of filename, then
+     it is a match. */
+  if (_rl_completion_case_fold && _rl_completion_case_map)
+    {
+      /* Case-insensitive comparison treating _ and - as equivalent */
+      if (filename_len == 0)
+       return 1;
+      if (convlen < filename_len)
+       return 0;
+      s1 = (char *)convfn;
+      s2 = (char *)filename;
+      len = filename_len;
+      do
+       {
+         d = _rl_to_lower (*s1) - _rl_to_lower (*s2);
+         /* *s1 == [-_] && *s2 == [-_] */
+         if ((*s1 == '-' || *s1 == '_') && (*s2 == '-' || *s2 == '_'))
+           d = 0;
+         if (d != 0)
+           return 0;
+         s1++; s2++;   /* already checked convlen >= filename_len */
+       }
+      while (--len != 0);
+      return 1;
+    }
+  else if (_rl_completion_case_fold)
+    {
+      if ((_rl_to_lower (convfn[0]) == _rl_to_lower (filename[0])) &&
+         (convlen >= filename_len) &&
+         (_rl_strnicmp (filename, convfn, filename_len) == 0))
+       return 1;
+    }
+  else
+    {
+      if ((convfn[0] == filename[0]) &&
+         (convlen >= filename_len) &&
+         (strncmp (filename, convfn, filename_len) == 0))
+       return 1;
+    }
+  return 0;
+}
+
+/* Okay, now we write the entry_function for filename completion.  In the
+   general case.  Note that completion in the shell is a little different
+   because of all the pathnames that must be followed when looking up the
+   completion for a command. */
+char *
+rl_filename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static DIR *directory = (DIR *)NULL;
+  static char *filename = (char *)NULL;
+  static char *dirname = (char *)NULL;
+  static char *users_dirname = (char *)NULL;
+  static int filename_len;
+  char *temp, *dentry, *convfn;
+  int dirlen, dentlen, convlen;
+  struct dirent *entry;
+
+  /* If we don't have any state, then do some initialization. */
+  if (state == 0)
+    {
+      /* If we were interrupted before closing the directory or reading
+        all of its contents, close it. */
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      FREE (dirname);
+      FREE (filename);
+      FREE (users_dirname);
+
+      filename = savestring (text);
+      if (*text == 0)
+       text = ".";
+      dirname = savestring (text);
+
+      temp = strrchr (dirname, '/');
+
+#if defined (__MSDOS__)
+      /* special hack for //X/... */
+      if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
+        temp = strrchr (dirname + 3, '/');
+#endif
+
+      if (temp)
+       {
+         strcpy (filename, ++temp);
+         *temp = '\0';
+       }
+#if defined (__MSDOS__)
+      /* searches from current directory on the drive */
+      else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
+        {
+          strcpy (filename, dirname + 2);
+          dirname[2] = '\0';
+        }
+#endif
+      else
+       {
+         dirname[0] = '.';
+         dirname[1] = '\0';
+       }
+
+      /* We aren't done yet.  We also support the "~user" syntax. */
+
+      /* Save the version of the directory that the user typed, dequoting
+        it if necessary. */
+      if (rl_completion_found_quote && rl_filename_dequoting_function)
+       users_dirname = (*rl_filename_dequoting_function) (dirname, rl_completion_quote_character);
+      else
+       users_dirname = savestring (dirname);
+
+      if (*dirname == '~')
+       {
+         temp = tilde_expand (dirname);
+         xfree (dirname);
+         dirname = temp;
+       }
+
+      /* We have saved the possibly-dequoted version of the directory name
+        the user typed.  Now transform the directory name we're going to
+        pass to opendir(2).  The directory rewrite hook modifies only the
+        directory name; the directory completion hook modifies both the
+        directory name passed to opendir(2) and the version the user
+        typed.  Both the directory completion and rewrite hooks should perform
+        any necessary dequoting.  The hook functions return 1 if they modify
+        the directory name argument.  If either hook returns 0, it should
+        not modify the directory name pointer passed as an argument. */
+      if (rl_directory_rewrite_hook)
+       (*rl_directory_rewrite_hook) (&dirname);
+      else if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
+       {
+         xfree (users_dirname);
+         users_dirname = savestring (dirname);
+       }
+      else if (rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         xfree (dirname);
+         dirname = savestring (users_dirname);
+       }
+      directory = opendir (dirname);
+
+      /* Now dequote a non-null filename.  FILENAME will not be NULL, but may
+        be empty. */
+      if (*filename && rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character);
+         xfree (filename);
+         filename = temp;
+       }
+      filename_len = strlen (filename);
+
+      rl_filename_completion_desired = 1;
+    }
+
+  /* At this point we should entertain the possibility of hacking wildcarded
+     filenames, like /usr/man/man<WILD>/te<TAB>.  If the directory name
+     contains globbing characters, then build an array of directories, and
+     then map over that list while completing. */
+  /* *** UNIMPLEMENTED *** */
+
+  /* Now that we have some state, we can read the directory. */
+
+  entry = (struct dirent *)NULL;
+  while (directory && (entry = readdir (directory)))
+    {
+      convfn = dentry = entry->d_name;
+      convlen = dentlen = D_NAMLEN (entry);
+
+      if (rl_filename_rewrite_hook)
+       {
+         convfn = (*rl_filename_rewrite_hook) (dentry, dentlen);
+         convlen = (convfn == dentry) ? dentlen : strlen (convfn);
+       }
+
+      /* Special case for no filename.  If the user has disabled the
+         `match-hidden-files' variable, skip filenames beginning with `.'.
+        All other entries except "." and ".." match. */
+      if (filename_len == 0)
+       {
+         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
+           continue;
+
+         if (convfn[0] != '.' ||
+              (convfn[1] && (convfn[1] != '.' || convfn[2])))
+           break;
+       }
+      else
+       {
+         if (complete_fncmp (convfn, convlen, filename, filename_len))
+           break;
+       }
+    }
+
+  if (entry == 0)
+    {
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      if (dirname)
+       {
+         xfree (dirname);
+         dirname = (char *)NULL;
+       }
+      if (filename)
+       {
+         xfree (filename);
+         filename = (char *)NULL;
+       }
+      if (users_dirname)
+       {
+         xfree (users_dirname);
+         users_dirname = (char *)NULL;
+       }
+
+      return (char *)NULL;
+    }
+  else
+    {
+      /* dirname && (strcmp (dirname, ".") != 0) */
+      if (dirname && (dirname[0] != '.' || dirname[1]))
+       {
+         if (rl_complete_with_tilde_expansion && *users_dirname == '~')
+           {
+             dirlen = strlen (dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, dirname);
+             /* Canonicalization cuts off any final slash present.  We
+                may need to add it back. */
+             if (dirname[dirlen - 1] != '/')
+               {
+                 temp[dirlen++] = '/';
+                 temp[dirlen] = '\0';
+               }
+           }
+         else
+           {
+             dirlen = strlen (users_dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, users_dirname);
+             /* Make sure that temp has a trailing slash here. */
+             if (users_dirname[dirlen - 1] != '/')
+               temp[dirlen++] = '/';
+           }
+
+         strcpy (temp + dirlen, convfn);
+       }
+      else
+       temp = savestring (convfn);
+
+      if (convfn != dentry)
+       xfree (convfn);
+
+      return (temp);
+    }
+}
+
+/* An initial implementation of a menu completion function a la tcsh.  The
+   first time (if the last readline command was not rl_old_menu_complete), we
+   generate the list of matches.  This code is very similar to the code in
+   rl_complete_internal -- there should be a way to combine the two.  Then,
+   for each item in the list of matches, we insert the match in an undoable
+   fashion, with the appropriate character appended (this happens on the
+   second and subsequent consecutive calls to rl_old_menu_complete).  When we
+   hit the end of the match list, we restore the original unmatched text,
+   ring the bell, and reset the counter to zero. */
+int
+rl_old_menu_complete (count, invoking_key)
+     int count, invoking_key;
+{
+  rl_compentry_func_t *our_func;
+  int matching_filenames, found_quote;
+
+  static char *orig_text;
+  static char **matches = (char **)0;
+  static int match_list_index = 0;
+  static int match_list_size = 0;
+  static int orig_start, orig_end;
+  static char quote_char;
+  static int delimiter;
+
+  /* The first time through, we generate the list of matches and set things
+     up to insert them. */
+  if (rl_last_func != rl_old_menu_complete)
+    {
+      /* Clean up from previous call, if any. */
+      FREE (orig_text);
+      if (matches)
+       _rl_free_match_list (matches);
+
+      match_list_index = match_list_size = 0;
+      matches = (char **)NULL;
+
+      rl_completion_invoking_key = invoking_key;
+
+      RL_SETSTATE(RL_STATE_COMPLETING);
+
+      /* Only the completion entry function can change these. */
+      set_completion_defaults ('%');
+
+      our_func = rl_menu_completion_entry_function;
+      if (our_func == 0)
+       our_func = rl_completion_entry_function
+                       ? rl_completion_entry_function
+                       : rl_filename_completion_function;
+
+      /* We now look backwards for the start of a filename/variable word. */
+      orig_end = rl_point;
+      found_quote = delimiter = 0;
+      quote_char = '\0';
+
+      if (rl_point)
+       /* This (possibly) changes rl_point.  If it returns a non-zero char,
+          we know we have an open quote. */
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+      orig_start = rl_point;
+      rl_point = orig_end;
+
+      orig_text = rl_copy_text (orig_start, orig_end);
+      matches = gen_completion_matches (orig_text, orig_start, orig_end,
+                                       our_func, found_quote, quote_char);
+
+      /* If we are matching filenames, the attempted completion function will
+        have set rl_filename_completion_desired to a non-zero value.  The basic
+        rl_filename_completion_function does this. */
+      matching_filenames = rl_filename_completion_desired;
+
+      if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         FREE (orig_text);
+         orig_text = (char *)0;
+         completion_changed_buffer = 0;
+         RL_UNSETSTATE(RL_STATE_COMPLETING);
+         return (0);
+       }
+
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+
+      for (match_list_size = 0; matches[match_list_size]; match_list_size++)
+        ;
+      /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+        code below should take care of it. */
+
+      if (match_list_size > 1 && _rl_complete_show_all)
+       display_matches (matches);
+    }
+
+  /* Now we have the list of matches.  Replace the text between
+     rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+     matches[match_list_index], and add any necessary closing char. */
+
+  if (matches == 0 || match_list_size == 0) 
+    {
+      rl_ding ();
+      FREE (matches);
+      matches = (char **)0;
+      completion_changed_buffer = 0;
+      return (0);
+    }
+
+  match_list_index += count;
+  if (match_list_index < 0)
+    {
+      while (match_list_index < 0)
+       match_list_index += match_list_size;
+    }
+  else
+    match_list_index %= match_list_size;
+
+  if (match_list_index == 0 && match_list_size > 1)
+    {
+      rl_ding ();
+      insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
+    }
+  else
+    {
+      insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
+    }
+
+  completion_changed_buffer = 1;
+  return (0);
+}
+
+int
+rl_menu_complete (count, ignore)
+     int count, ignore;
+{
+  rl_compentry_func_t *our_func;
+  int matching_filenames, found_quote;
+
+  static char *orig_text;
+  static char **matches = (char **)0;
+  static int match_list_index = 0;
+  static int match_list_size = 0;
+  static int nontrivial_lcd = 0;
+  static int full_completion = 0;      /* set to 1 if menu completion should reinitialize on next call */
+  static int orig_start, orig_end;
+  static char quote_char;
+  static int delimiter, cstate;
+
+  /* The first time through, we generate the list of matches and set things
+     up to insert them. */
+  if ((rl_last_func != rl_menu_complete && rl_last_func != rl_backward_menu_complete) || full_completion)
+    {
+      /* Clean up from previous call, if any. */
+      FREE (orig_text);
+      if (matches)
+       _rl_free_match_list (matches);
+
+      match_list_index = match_list_size = 0;
+      matches = (char **)NULL;
+
+      full_completion = 0;
+
+      RL_SETSTATE(RL_STATE_COMPLETING);
+
+      /* Only the completion entry function can change these. */
+      set_completion_defaults ('%');
+
+      our_func = rl_menu_completion_entry_function;
+      if (our_func == 0)
+       our_func = rl_completion_entry_function
+                       ? rl_completion_entry_function
+                       : rl_filename_completion_function;
+
+      /* We now look backwards for the start of a filename/variable word. */
+      orig_end = rl_point;
+      found_quote = delimiter = 0;
+      quote_char = '\0';
+
+      if (rl_point)
+       /* This (possibly) changes rl_point.  If it returns a non-zero char,
+          we know we have an open quote. */
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+      orig_start = rl_point;
+      rl_point = orig_end;
+
+      orig_text = rl_copy_text (orig_start, orig_end);
+      matches = gen_completion_matches (orig_text, orig_start, orig_end,
+                                       our_func, found_quote, quote_char);
+
+      nontrivial_lcd = matches && strcmp (orig_text, matches[0]) != 0;
+
+      /* If we are matching filenames, the attempted completion function will
+        have set rl_filename_completion_desired to a non-zero value.  The basic
+        rl_filename_completion_function does this. */
+      matching_filenames = rl_filename_completion_desired;
+
+      if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         FREE (orig_text);
+         orig_text = (char *)0;
+         completion_changed_buffer = 0;
+         RL_UNSETSTATE(RL_STATE_COMPLETING);
+         return (0);
+       }
+
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+
+      for (match_list_size = 0; matches[match_list_size]; match_list_size++)
+        ;
+
+      if (match_list_size == 0) 
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         match_list_index = 0;
+         completion_changed_buffer = 0;
+         return (0);
+        }
+
+      /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+        code below should take care of it. */
+      if (*matches[0])
+       {
+         insert_match (matches[0], orig_start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+         orig_end = orig_start + strlen (matches[0]);
+         completion_changed_buffer = STREQ (orig_text, matches[0]) == 0;
+       }
+
+      if (match_list_size > 1 && _rl_complete_show_all)
+       {
+         display_matches (matches);
+         /* If there are so many matches that the user has to be asked
+            whether or not he wants to see the matches, menu completion
+            is unwieldy. */
+         if (rl_completion_query_items > 0 && match_list_size >= rl_completion_query_items)
+           {
+             rl_ding ();
+             FREE (matches);
+             matches = (char **)0;
+             full_completion = 1;
+             return (0);
+           }
+       }
+      else if (match_list_size <= 1)
+       {
+         append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+         full_completion = 1;
+         return (0);
+       }
+      else if (_rl_menu_complete_prefix_first && match_list_size > 1)
+       {
+         rl_ding ();
+         return (0);
+       }
+    }
+
+  /* Now we have the list of matches.  Replace the text between
+     rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+     matches[match_list_index], and add any necessary closing char. */
+
+  if (matches == 0 || match_list_size == 0) 
+    {
+      rl_ding ();
+      FREE (matches);
+      matches = (char **)0;
+      completion_changed_buffer = 0;
+      return (0);
+    }
+
+  match_list_index += count;
+  if (match_list_index < 0)
+    {
+      while (match_list_index < 0)
+       match_list_index += match_list_size;
+    }
+  else
+    match_list_index %= match_list_size;
+
+  if (match_list_index == 0 && match_list_size > 1)
+    {
+      rl_ding ();
+      insert_match (matches[0], orig_start, MULT_MATCH, &quote_char);
+    }
+  else
+    {
+      insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
+    }
+
+  completion_changed_buffer = 1;
+  return (0);
+}
+
+int
+rl_backward_menu_complete (count, key)
+     int count, key;
+{
+  /* Positive arguments to backward-menu-complete translate into negative
+     arguments for menu-complete, and vice versa. */
+  return (rl_menu_complete (-count, key));
+}
diff --git a/lib/readline/complete.c~ b/lib/readline/complete.c~
new file mode 100644 (file)
index 0000000..2b53bcb
--- /dev/null
@@ -0,0 +1,2796 @@
+/* complete.c -- filename completion for readline. */
+
+/* Copyright (C) 1987-2012 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/>.
+*/
+
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <fcntl.h>
+#if defined (HAVE_SYS_FILE_H)
+#  include <sys/file.h>
+#endif
+
+#include <signal.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#if defined (HAVE_STDLIB_H)
+#  include <stdlib.h>
+#else
+#  include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include <stdio.h>
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#if defined (HAVE_PWD_H)
+#include <pwd.h>
+#endif
+
+#include "posixdir.h"
+#include "posixstat.h"
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+#include "rlmbutil.h"
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "xmalloc.h"
+#include "rlprivate.h"
+
+#if defined (COLOR_SUPPORT)
+#  include "colors.h"
+#endif
+
+#ifdef __STDC__
+typedef int QSFUNC (const void *, const void *);
+#else
+typedef int QSFUNC ();
+#endif
+
+#ifdef HAVE_LSTAT
+#  define LSTAT lstat
+#else
+#  define LSTAT stat
+#endif
+
+/* Unix version of a hidden file.  Could be different on other systems. */
+#define HIDDEN_FILE(fname)     ((fname)[0] == '.')
+
+/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
+   defined. */
+#if defined (HAVE_GETPWENT) && (!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE))
+extern struct passwd *getpwent PARAMS((void));
+#endif /* HAVE_GETPWENT && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */
+
+/* If non-zero, then this is the address of a function to call when
+   completing a word would normally display the list of possible matches.
+   This function is called instead of actually doing the display.
+   It takes three arguments: (char **matches, int num_matches, int max_length)
+   where MATCHES is the array of strings that matched, NUM_MATCHES is the
+   number of strings in that array, and MAX_LENGTH is the length of the
+   longest string in that array. */
+rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
+
+#if defined (VISIBLE_STATS) || defined (COLOR_SUPPORT)
+#  if !defined (X_OK)
+#    define X_OK 1
+#  endif
+#endif
+
+#if defined (VISIBLE_STATS)
+static int stat_char PARAMS((char *));
+#endif
+
+#if defined (COLOR_SUPPORT)
+static int colored_stat_start PARAMS((char *));
+static void colored_stat_end PARAMS((void));
+#endif
+
+static int path_isdir PARAMS((const char *));
+
+static char *rl_quote_filename PARAMS((char *, int, char *));
+
+static void _rl_complete_sigcleanup PARAMS((int, void *));
+
+static void set_completion_defaults PARAMS((int));
+static int get_y_or_n PARAMS((int));
+static int _rl_internal_pager PARAMS((int));
+static char *printable_part PARAMS((char *));
+static int fnwidth PARAMS((const char *));
+static int fnprint PARAMS((const char *, int));
+static int print_filename PARAMS((char *, char *, int));
+
+static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
+
+static char **remove_duplicate_matches PARAMS((char **));
+static void insert_match PARAMS((char *, int, int, char *));
+static int append_to_match PARAMS((char *, int, int, int));
+static void insert_all_matches PARAMS((char **, int, char *));
+static int complete_fncmp PARAMS((const char *, int, const char *, int));
+static void display_matches PARAMS((char **));
+static int compute_lcd_of_matches PARAMS((char **, int, const char *));
+static int postprocess_matches PARAMS((char ***, int));
+static int complete_get_screenwidth PARAMS((void));
+
+static char *make_quoted_replacement PARAMS((char *, int, char *));
+
+/* **************************************************************** */
+/*                                                                 */
+/*     Completion matching, from readline's point of view.         */
+/*                                                                 */
+/* **************************************************************** */
+
+/* Variables known only to the readline library. */
+
+/* If non-zero, non-unique completions always show the list of matches. */
+int _rl_complete_show_all = 0;
+
+/* If non-zero, non-unique completions show the list of matches, unless it
+   is not possible to do partial completion and modify the line. */
+int _rl_complete_show_unmodified = 0;
+
+/* If non-zero, completed directory names have a slash appended. */
+int _rl_complete_mark_directories = 1;
+
+/* If non-zero, the symlinked directory completion behavior introduced in
+   readline-4.2a is disabled, and symlinks that point to directories have
+   a slash appended (subject to the value of _rl_complete_mark_directories).
+   This is user-settable via the mark-symlinked-directories variable. */
+int _rl_complete_mark_symlink_dirs = 0;
+
+/* If non-zero, completions are printed horizontally in alphabetical order,
+   like `ls -x'. */
+int _rl_print_completions_horizontally;
+
+/* Non-zero means that case is not significant in filename completion. */
+#if defined (__MSDOS__) && !defined (__DJGPP__)
+int _rl_completion_case_fold = 1;
+#else
+int _rl_completion_case_fold = 0;
+#endif
+
+/* Non-zero means that `-' and `_' are equivalent when comparing filenames
+  for completion. */
+int _rl_completion_case_map = 0;
+
+/* If zero, don't match hidden files (filenames beginning with a `.' on
+   Unix) when doing filename completion. */
+int _rl_match_hidden_files = 1;
+
+/* Length in characters of a common prefix replaced with an ellipsis (`...')
+   when displaying completion matches.  Matches whose printable portion has
+   more than this number of displaying characters in common will have the common
+   display prefix replaced with an ellipsis. */
+int _rl_completion_prefix_display_length = 0;
+
+/* The readline-private number of screen columns to use when displaying
+   matches.  If < 0 or > _rl_screenwidth, it is ignored. */
+int _rl_completion_columns = -1;
+
+/* Global variables available to applications using readline. */
+
+#if defined (VISIBLE_STATS)
+/* Non-zero means add an additional character to each filename displayed
+   during listing completion iff rl_filename_completion_desired which helps
+   to indicate the type of file being listed. */
+int rl_visible_stats = 0;
+#endif /* VISIBLE_STATS */
+
+#if defined (COLOR_SUPPORT)
+/* Non-zero means to use colors to indicate file type when listing possible
+   completions.  The colors used are taken from $LS_COLORS, if set. */
+int _rl_colored_stats = 1;
+#endif
+
+/* If non-zero, when completing in the middle of a word, don't insert
+   characters from the match that match characters following point in
+   the word.  This means, for instance, completing when the cursor is
+   after the `e' in `Makefile' won't result in `Makefilefile'. */
+int _rl_skip_completed_text = 0;
+
+/* If non-zero, menu completion displays the common prefix first in the
+   cycle of possible completions instead of the last. */
+int _rl_menu_complete_prefix_first = 0;
+
+/* If non-zero, then this is the address of a function to call when
+   completing on a directory name.  The function is called with
+   the address of a string (the current directory name) as an arg. */
+rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+
+rl_icppfunc_t *rl_filename_stat_hook = (rl_icppfunc_t *)NULL;
+
+/* If non-zero, this is the address of a function to call when reading
+   directory entries from the filesystem for completion and comparing
+   them to the partial word to be completed.  The function should
+   either return its first argument (if no conversion takes place) or
+   newly-allocated memory.  This can, for instance, convert filenames
+   between character sets for comparison against what's typed at the
+   keyboard.  The returned value is what is added to the list of
+   matches.  The second argument is the length of the filename to be
+   converted. */
+rl_dequote_func_t *rl_filename_rewrite_hook = (rl_dequote_func_t *)NULL;
+
+/* Non-zero means readline completion functions perform tilde expansion. */
+int rl_complete_with_tilde_expansion = 0;
+
+/* Pointer to the generator function for completion_matches ().
+   NULL means to use rl_filename_completion_function (), the default filename
+   completer. */
+rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
+
+/* Pointer to generator function for rl_menu_complete ().  NULL means to use
+   *rl_completion_entry_function (see above). */
+rl_compentry_func_t *rl_menu_completion_entry_function = (rl_compentry_func_t *)NULL;
+
+/* Pointer to alternative function to create matches.
+   Function is called with TEXT, START, and END.
+   START and END are indices in RL_LINE_BUFFER saying what the boundaries
+   of TEXT are.
+   If this function exists and returns NULL then call the value of
+   rl_completion_entry_function to try to match, otherwise use the
+   array of strings returned. */
+rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+
+/* Non-zero means to suppress normal filename completion after the
+   user-specified completion function has been called. */
+int rl_attempted_completion_over = 0;
+
+/* Set to a character indicating the type of completion being performed
+   by rl_complete_internal, available for use by application completion
+   functions. */
+int rl_completion_type = 0;
+
+/* Up to this many items will be displayed in response to a
+   possible-completions call.  After that, we ask the user if
+   she is sure she wants to see them all.  A negative value means
+   don't ask. */
+int rl_completion_query_items = 100;
+
+int _rl_page_completions = 1;
+
+/* The basic list of characters that signal a break between words for the
+   completer routine.  The contents of this variable is what breaks words
+   in the shell, i.e. " \t\n\"\\'`@$><=" */
+const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
+
+/* List of basic quoting characters. */
+const char *rl_basic_quote_characters = "\"'";
+
+/* The list of characters that signal a break between words for
+   rl_complete_internal.  The default list is the contents of
+   rl_basic_word_break_characters.  */
+/*const*/ char *rl_completer_word_break_characters = (/*const*/ char *)NULL;
+
+/* Hook function to allow an application to set the completion word
+   break characters before readline breaks up the line.  Allows
+   position-dependent word break characters. */
+rl_cpvfunc_t *rl_completion_word_break_hook = (rl_cpvfunc_t *)NULL;
+
+/* List of characters which can be used to quote a substring of the line.
+   Completion occurs on the entire substring, and within the substring
+   rl_completer_word_break_characters are treated as any other character,
+   unless they also appear within this list. */
+const char *rl_completer_quote_characters = (const char *)NULL;
+
+/* List of characters that should be quoted in filenames by the completer. */
+const char *rl_filename_quote_characters = (const char *)NULL;
+
+/* List of characters that are word break characters, but should be left
+   in TEXT when it is passed to the completion function.  The shell uses
+   this to help determine what kind of completing to do. */
+const char *rl_special_prefixes = (const char *)NULL;
+
+/* If non-zero, then disallow duplicates in the matches. */
+int rl_ignore_completion_duplicates = 1;
+
+/* Non-zero means that the results of the matches are to be treated
+   as filenames.  This is ALWAYS zero on entry, and can only be changed
+   within a completion entry finder function. */
+int rl_filename_completion_desired = 0;
+
+/* Non-zero means that the results of the matches are to be quoted using
+   double quotes (or an application-specific quoting mechanism) if the
+   filename contains any characters in rl_filename_quote_chars.  This is
+   ALWAYS non-zero on entry, and can only be changed within a completion
+   entry finder function. */
+int rl_filename_quoting_desired = 1;
+
+/* This function, if defined, is called by the completer when real
+   filename completion is done, after all the matching names have been
+   generated. It is passed a (char**) known as matches in the code below.
+   It consists of a NULL-terminated array of pointers to potential
+   matching strings.  The 1st element (matches[0]) is the maximal
+   substring that is common to all matches. This function can re-arrange
+   the list of matches as required, but all elements of the array must be
+   free()'d if they are deleted. The main intent of this function is
+   to implement FIGNORE a la SunOS csh. */
+rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
+
+/* Set to a function to quote a filename in an application-specific fashion.
+   Called with the text to quote, the type of match found (single or multiple)
+   and a pointer to the quoting character to be used, which the function can
+   reset if desired. */
+rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
+         
+/* Function to call to remove quoting characters from a filename.  Called
+   before completion is attempted, so the embedded quotes do not interfere
+   with matching names in the file system.  Readline doesn't do anything
+   with this; it's set only by applications. */
+rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
+
+/* Function to call to decide whether or not a word break character is
+   quoted.  If a character is quoted, it does not break words for the
+   completer. */
+rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
+
+/* If non-zero, the completion functions don't append anything except a
+   possible closing quote.  This is set to 0 by rl_complete_internal and
+   may be changed by an application-specific completion function. */
+int rl_completion_suppress_append = 0;
+
+/* Character appended to completed words when at the end of the line.  The
+   default is a space. */
+int rl_completion_append_character = ' ';
+
+/* If non-zero, the completion functions don't append any closing quote.
+   This is set to 0 by rl_complete_internal and may be changed by an
+   application-specific completion function. */
+int rl_completion_suppress_quote = 0;
+
+/* Set to any quote character readline thinks it finds before any application
+   completion function is called. */
+int rl_completion_quote_character;
+
+/* Set to a non-zero value if readline found quoting anywhere in the word to
+   be completed; set before any application completion function is called. */
+int rl_completion_found_quote;
+
+/* If non-zero, a slash will be appended to completed filenames that are
+   symbolic links to directory names, subject to the value of the
+   mark-directories variable (which is user-settable).  This exists so
+   that application completion functions can override the user's preference
+   (set via the mark-symlinked-directories variable) if appropriate.
+   It's set to the value of _rl_complete_mark_symlink_dirs in
+   rl_complete_internal before any application-specific completion
+   function is called, so without that function doing anything, the user's
+   preferences are honored. */
+int rl_completion_mark_symlink_dirs;
+
+/* If non-zero, inhibit completion (temporarily). */
+int rl_inhibit_completion;
+
+/* Set to the last key used to invoke one of the completion functions */
+int rl_completion_invoking_key;
+
+/* If non-zero, sort the completion matches.  On by default. */
+int rl_sort_completion_matches = 1;
+
+/* Variables local to this file. */
+
+/* Local variable states what happened during the last completion attempt. */
+static int completion_changed_buffer;
+
+/* The result of the query to the user about displaying completion matches */
+static int completion_y_or_n;
+
+/*************************************/
+/*                                  */
+/*    Bindable completion functions  */
+/*                                  */
+/*************************************/
+
+/* Complete the word at or before point.  You have supplied the function
+   that does the initial simple matching selection algorithm (see
+   rl_completion_matches ()).  The default is to do filename completion. */
+int
+rl_complete (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  rl_completion_invoking_key = invoking_key;
+
+  if (rl_inhibit_completion)
+    return (_rl_insert_char (ignore, invoking_key));
+  else if (rl_last_func == rl_complete && !completion_changed_buffer)
+    return (rl_complete_internal ('?'));
+  else if (_rl_complete_show_all)
+    return (rl_complete_internal ('!'));
+  else if (_rl_complete_show_unmodified)
+    return (rl_complete_internal ('@'));
+  else
+    return (rl_complete_internal (TAB));
+}
+
+/* List the possible completions.  See description of rl_complete (). */
+int
+rl_possible_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  rl_completion_invoking_key = invoking_key;
+  return (rl_complete_internal ('?'));
+}
+
+int
+rl_insert_completions (ignore, invoking_key)
+     int ignore, invoking_key;
+{
+  rl_completion_invoking_key = invoking_key;
+  return (rl_complete_internal ('*'));
+}
+
+/* Return the correct value to pass to rl_complete_internal performing
+   the same tests as rl_complete.  This allows consecutive calls to an
+   application's completion function to list possible completions and for
+   an application-specific completion function to honor the
+   show-all-if-ambiguous readline variable. */
+int
+rl_completion_mode (cfunc)
+     rl_command_func_t *cfunc;
+{
+  if (rl_last_func == cfunc && !completion_changed_buffer)
+    return '?';
+  else if (_rl_complete_show_all)
+    return '!';
+  else if (_rl_complete_show_unmodified)
+    return '@';
+  else
+    return TAB;
+}
+
+/************************************/
+/*                                 */
+/*    Completion utility functions  */
+/*                                 */
+/************************************/
+
+/* Reset readline state on a signal or other event. */
+void
+_rl_reset_completion_state ()
+{
+  rl_completion_found_quote = 0;
+  rl_completion_quote_character = 0;
+}
+
+static void
+_rl_complete_sigcleanup (sig, ptr)
+     int sig;
+     void *ptr;
+{
+  if (sig == SIGINT)   /* XXX - for now */
+    _rl_free_match_list ((char **)ptr);
+}
+
+/* Set default values for readline word completion.  These are the variables
+   that application completion functions can change or inspect. */
+static void
+set_completion_defaults (what_to_do)
+     int what_to_do;
+{
+  /* Only the completion entry function can change these. */
+  rl_filename_completion_desired = 0;
+  rl_filename_quoting_desired = 1;
+  rl_completion_type = what_to_do;
+  rl_completion_suppress_append = rl_completion_suppress_quote = 0;
+  rl_completion_append_character = ' ';
+
+  /* The completion entry function may optionally change this. */
+  rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
+}
+
+/* The user must press "y" or "n". Non-zero return means "y" pressed. */
+static int
+get_y_or_n (for_pager)
+     int for_pager;
+{
+  int c;
+
+  /* For now, disable pager in callback mode, until we later convert to state
+     driven functions.  Have to wait until next major version to add new
+     state definition, since it will change value of RL_STATE_DONE. */
+#if defined (READLINE_CALLBACKS)
+  if (RL_ISSTATE (RL_STATE_CALLBACK))
+    return 1;
+#endif
+
+  for (;;)
+    {
+      RL_SETSTATE(RL_STATE_MOREINPUT);
+      c = rl_read_key ();
+      RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+      if (c == 'y' || c == 'Y' || c == ' ')
+       return (1);
+      if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+      if (c == ABORT_CHAR || c < 0)
+       _rl_abort_internal ();
+      if (for_pager && (c == NEWLINE || c == RETURN))
+       return (2);
+      if (for_pager && (c == 'q' || c == 'Q'))
+       return (0);
+      rl_ding ();
+    }
+}
+
+static int
+_rl_internal_pager (lines)
+     int lines;
+{
+  int i;
+
+  fprintf (rl_outstream, "--More--");
+  fflush (rl_outstream);
+  i = get_y_or_n (1);
+  _rl_erase_entire_line ();
+  if (i == 0)
+    return -1;
+  else if (i == 2)
+    return (lines - 1);
+  else
+    return 0;
+}
+
+static int
+path_isdir (filename)
+     const char *filename;
+{
+  struct stat finfo;
+
+  return (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode));
+}
+
+#if defined (VISIBLE_STATS)
+/* Return the character which best describes FILENAME.
+     `@' for symbolic links
+     `/' for directories
+     `*' for executables
+     `=' for sockets
+     `|' for FIFOs
+     `%' for character special devices
+     `#' for block special devices */
+static int
+stat_char (filename)
+     char *filename;
+{
+  struct stat finfo;
+  int character, r;
+  char *f;
+  const char *fn;
+
+  /* Short-circuit a //server on cygwin, since that will always behave as
+     a directory. */
+#if __CYGWIN__
+  if (filename[0] == '/' && filename[1] == '/' && strchr (filename+2, '/') == 0)
+    return '/';
+#endif
+
+  f = 0;
+  if (rl_filename_stat_hook)
+    {
+      f = savestring (filename);
+      (*rl_filename_stat_hook) (&f);
+      fn = f;
+    }
+  else
+    fn = filename;
+    
+#if defined (HAVE_LSTAT) && defined (S_ISLNK)
+  r = lstat (fn, &finfo);
+#else
+  r = stat (fn, &finfo);
+#endif
+
+  if (r == -1)
+    return (0);
+
+  character = 0;
+  if (S_ISDIR (finfo.st_mode))
+    character = '/';
+#if defined (S_ISCHR)
+  else if (S_ISCHR (finfo.st_mode))
+    character = '%';
+#endif /* S_ISCHR */
+#if defined (S_ISBLK)
+  else if (S_ISBLK (finfo.st_mode))
+    character = '#';
+#endif /* S_ISBLK */
+#if defined (S_ISLNK)
+  else if (S_ISLNK (finfo.st_mode))
+    character = '@';
+#endif /* S_ISLNK */
+#if defined (S_ISSOCK)
+  else if (S_ISSOCK (finfo.st_mode))
+    character = '=';
+#endif /* S_ISSOCK */
+#if defined (S_ISFIFO)
+  else if (S_ISFIFO (finfo.st_mode))
+    character = '|';
+#endif
+  else if (S_ISREG (finfo.st_mode))
+    {
+      if (access (filename, X_OK) == 0)
+       character = '*';
+    }
+
+  free (f);
+  return (character);
+}
+#endif /* VISIBLE_STATS */
+
+#if defined (COLOR_SUPPORT)
+static int
+colored_stat_start (filename)
+     char *filename;
+{
+  _rl_set_normal_color ();
+  return (_rl_print_color_indicator (filename));
+}
+
+static void
+colored_stat_end ()
+{
+  _rl_prep_non_filename_text ();
+  _rl_put_indicator (&_rl_color_indicator[C_CLR_TO_EOL]);
+}
+#endif
+
+/* Return the portion of PATHNAME that should be output when listing
+   possible completions.  If we are hacking filename completion, we
+   are only interested in the basename, the portion following the
+   final slash.  Otherwise, we return what we were passed.  Since
+   printing empty strings is not very informative, if we're doing
+   filename completion, and the basename is the empty string, we look
+   for the previous slash and return the portion following that.  If
+   there's no previous slash, we just return what we were passed. */
+static char *
+printable_part (pathname)
+      char *pathname;
+{
+  char *temp, *x;
+
+  if (rl_filename_completion_desired == 0)     /* don't need to do anything */
+    return (pathname);
+
+  temp = strrchr (pathname, '/');
+#if defined (__MSDOS__)
+  if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
+    temp = pathname + 1;
+#endif
+
+  if (temp == 0 || *temp == '\0')
+    return (pathname);
+  /* If the basename is NULL, we might have a pathname like '/usr/src/'.
+     Look for a previous slash and, if one is found, return the portion
+     following that slash.  If there's no previous slash, just return the
+     pathname we were passed. */
+  else if (temp[1] == '\0')
+    {
+      for (x = temp - 1; x > pathname; x--)
+        if (*x == '/')
+          break;
+      return ((*x == '/') ? x + 1 : pathname);
+    }
+  else
+    return ++temp;
+}
+
+/* Compute width of STRING when displayed on screen by print_filename */
+static int
+fnwidth (string)
+     const char *string;
+{
+  int width, pos;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  int left, w;
+  size_t clen;
+  wchar_t wc;
+
+  left = strlen (string) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  width = pos = 0;
+  while (string[pos])
+    {
+      if (CTRL_CHAR (string[pos]) || string[pos] == RUBOUT)
+       {
+         width += 2;
+         pos++;
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         clen = mbrtowc (&wc, string + pos, left - pos, &ps);
+         if (MB_INVALIDCH (clen))
+           {
+             width++;
+             pos++;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (clen))
+           break;
+         else
+           {
+             pos += clen;
+             w = WCWIDTH (wc);
+             width += (w >= 0) ? w : 1;
+           }
+#else
+         width++;
+         pos++;
+#endif
+       }
+    }
+
+  return width;
+}
+
+#define ELLIPSIS_LEN   3
+
+static int
+fnprint (to_print, prefix_bytes)
+     const char *to_print;
+     int prefix_bytes;
+{
+  int printed_len, w;
+  const char *s;
+#if defined (HANDLE_MULTIBYTE)
+  mbstate_t ps;
+  const char *end;
+  size_t tlen;
+  int width;
+  wchar_t wc;
+
+  end = to_print + strlen (to_print) + 1;
+  memset (&ps, 0, sizeof (mbstate_t));
+#endif
+
+  printed_len = 0;
+
+  /* Don't print only the ellipsis if the common prefix is one of the
+     possible completions */
+  if (to_print[prefix_bytes] == '\0')
+    prefix_bytes = 0;
+
+  if (prefix_bytes)
+    {
+      char ellipsis;
+
+      ellipsis = (to_print[prefix_bytes] == '.') ? '_' : '.';
+      for (w = 0; w < ELLIPSIS_LEN; w++)
+       putc (ellipsis, rl_outstream);
+      printed_len = ELLIPSIS_LEN;
+    }
+
+  s = to_print + prefix_bytes;
+  while (*s)
+    {
+      if (CTRL_CHAR (*s))
+        {
+          putc ('^', rl_outstream);
+          putc (UNCTRL (*s), rl_outstream);
+          printed_len += 2;
+          s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+        }
+      else if (*s == RUBOUT)
+       {
+         putc ('^', rl_outstream);
+         putc ('?', rl_outstream);
+         printed_len += 2;
+         s++;
+#if defined (HANDLE_MULTIBYTE)
+         memset (&ps, 0, sizeof (mbstate_t));
+#endif
+       }
+      else
+       {
+#if defined (HANDLE_MULTIBYTE)
+         tlen = mbrtowc (&wc, s, end - s, &ps);
+         if (MB_INVALIDCH (tlen))
+           {
+             tlen = 1;
+             width = 1;
+             memset (&ps, 0, sizeof (mbstate_t));
+           }
+         else if (MB_NULLWCH (tlen))
+           break;
+         else
+           {
+             w = WCWIDTH (wc);
+             width = (w >= 0) ? w : 1;
+           }
+         fwrite (s, 1, tlen, rl_outstream);
+         s += tlen;
+         printed_len += width;
+#else
+         putc (*s, rl_outstream);
+         s++;
+         printed_len++;
+#endif
+       }
+    }
+
+  return printed_len;
+}
+
+/* Output TO_PRINT to rl_outstream.  If VISIBLE_STATS is defined and we
+   are using it, check for and output a single character for `special'
+   filenames.  Return the number of characters we output. */
+
+static int
+print_filename (to_print, full_pathname, prefix_bytes)
+     char *to_print, *full_pathname;
+     int prefix_bytes;
+{
+  int printed_len, extension_char, slen, tlen;
+  char *s, c, *new_full_pathname, *dn;
+
+  extension_char = 0;
+#if defined (COLOR_SUPPORT)
+  /* Defer printing if we want to prefix with a color indicator */
+  if (_rl_colored_stats == 0 || rl_filename_completion_desired == 0)
+#endif
+    printed_len = fnprint (to_print, prefix_bytes);
+
+  if (rl_filename_completion_desired && (
+#if defined (VISIBLE_STATS)
+     rl_visible_stats ||
+#endif
+#if defined (COLOR_SUPPORT)
+     _rl_colored_stats ||
+#endif
+     _rl_complete_mark_directories))
+    {
+      /* If to_print != full_pathname, to_print is the basename of the
+        path passed.  In this case, we try to expand the directory
+        name before checking for the stat character. */
+      if (to_print != full_pathname)
+       {
+         /* Terminate the directory name. */
+         c = to_print[-1];
+         to_print[-1] = '\0';
+
+         /* If setting the last slash in full_pathname to a NUL results in
+            full_pathname being the empty string, we are trying to complete
+            files in the root directory.  If we pass a null string to the
+            bash directory completion hook, for example, it will expand it
+            to the current directory.  We just want the `/'. */
+         if (full_pathname == 0 || *full_pathname == 0)
+           dn = "/";
+         else if (full_pathname[0] != '/')
+           dn = full_pathname;
+         else if (full_pathname[1] == 0)
+           dn = "//";          /* restore trailing slash to `//' */
+         else if (full_pathname[1] == '/' && full_pathname[2] == 0)
+           dn = "/";           /* don't turn /// into // */
+         else
+           dn = full_pathname;
+         s = tilde_expand (dn);
+         if (rl_directory_completion_hook)
+           (*rl_directory_completion_hook) (&s);
+
+         slen = strlen (s);
+         tlen = strlen (to_print);
+         new_full_pathname = (char *)xmalloc (slen + tlen + 2);
+         strcpy (new_full_pathname, s);
+         if (s[slen - 1] == '/')
+           slen--;
+         else
+           new_full_pathname[slen] = '/';
+         new_full_pathname[slen] = '/';
+         strcpy (new_full_pathname + slen + 1, to_print);
+
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (new_full_pathname);
+         else
+#endif
+         if (_rl_complete_mark_directories)
+           {
+             dn = 0;
+             if (rl_directory_completion_hook == 0 && rl_filename_stat_hook)
+               {
+                 dn = savestring (new_full_pathname);
+                 (*rl_filename_stat_hook) (&dn);
+                 free (new_full_pathname);
+                 new_full_pathname = dn;
+               }
+             if (path_isdir (new_full_pathname))
+               extension_char = '/';
+           }
+
+#if defined (COLOR_SUPPORT)
+         if (_rl_colored_stats)
+           {
+             colored_stat_start (new_full_pathname);
+             printed_len = fnprint (to_print, prefix_bytes);
+             colored_stat_end ();
+           }
+#endif
+
+         xfree (new_full_pathname);
+         to_print[-1] = c;
+       }
+      else
+       {
+         s = tilde_expand (full_pathname);
+#if defined (VISIBLE_STATS)
+         if (rl_visible_stats)
+           extension_char = stat_char (s);
+         else
+#endif
+           if (_rl_complete_mark_directories && path_isdir (s))
+             extension_char = '/';
+
+#if defined (COLOR_SUPPORT)
+         if (_rl_colored_stats)
+           {
+             colored_stat_start (s);
+             printed_len = fnprint (to_print, prefix_bytes);
+             colored_stat_end ();
+           }
+#endif
+
+       }
+
+      xfree (s);
+      if (extension_char)
+       {
+         putc (extension_char, rl_outstream);
+         printed_len++;
+       }
+    }
+
+  return printed_len;
+}
+
+static char *
+rl_quote_filename (s, rtype, qcp)
+     char *s;
+     int rtype;
+     char *qcp;
+{
+  char *r;
+
+  r = (char *)xmalloc (strlen (s) + 2);
+  *r = *rl_completer_quote_characters;
+  strcpy (r + 1, s);
+  if (qcp)
+    *qcp = *rl_completer_quote_characters;
+  return r;
+}
+
+/* Find the bounds of the current word for completion purposes, and leave
+   rl_point set to the end of the word.  This function skips quoted
+   substrings (characters between matched pairs of characters in
+   rl_completer_quote_characters).  First we try to find an unclosed
+   quoted substring on which to do matching.  If one is not found, we use
+   the word break characters to find the boundaries of the current word.
+   We call an application-specific function to decide whether or not a
+   particular word break character is quoted; if that function returns a
+   non-zero result, the character does not break a word.  This function
+   returns the opening quote character if we found an unclosed quoted
+   substring, '\0' otherwise.  FP, if non-null, is set to a value saying
+   which (shell-like) quote characters we found (single quote, double
+   quote, or backslash) anywhere in the string.  DP, if non-null, is set to
+   the value of the delimiter character that caused a word break. */
+
+char
+_rl_find_completion_word (fp, dp)
+     int *fp, *dp;
+{
+  int scan, end, found_quote, delimiter, pass_next, isbrk;
+  char quote_char, *brkchars;
+
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  brkchars = 0;
+  if (rl_completion_word_break_hook)
+    brkchars = (*rl_completion_word_break_hook) ();
+  if (brkchars == 0)
+    brkchars = rl_completer_word_break_characters;
+
+  if (rl_completer_quote_characters)
+    {
+      /* We have a list of characters which can be used in pairs to
+        quote substrings for the completer.  Try to find the start
+        of an unclosed quoted substring. */
+      /* FOUND_QUOTE is set so we know what kind of quotes we found. */
+      for (scan = pass_next = 0; scan < end; scan = MB_NEXTCHAR (rl_line_buffer, scan, 1, MB_FIND_ANY))
+       {
+         if (pass_next)
+           {
+             pass_next = 0;
+             continue;
+           }
+
+         /* Shell-like semantics for single quotes -- don't allow backslash
+            to quote anything in single quotes, especially not the closing
+            quote.  If you don't like this, take out the check on the value
+            of quote_char. */
+         if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
+           {
+             pass_next = 1;
+             found_quote |= RL_QF_BACKSLASH;
+             continue;
+           }
+
+         if (quote_char != '\0')
+           {
+             /* Ignore everything until the matching close quote char. */
+             if (rl_line_buffer[scan] == quote_char)
+               {
+                 /* Found matching close.  Abandon this substring. */
+                 quote_char = '\0';
+                 rl_point = end;
+               }
+           }
+         else if (strchr (rl_completer_quote_characters, rl_line_buffer[scan]))
+           {
+             /* Found start of a quoted substring. */
+             quote_char = rl_line_buffer[scan];
+             rl_point = scan + 1;
+             /* Shell-like quoting conventions. */
+             if (quote_char == '\'')
+               found_quote |= RL_QF_SINGLE_QUOTE;
+             else if (quote_char == '"')
+               found_quote |= RL_QF_DOUBLE_QUOTE;
+             else
+               found_quote |= RL_QF_OTHER_QUOTE;      
+           }
+       }
+    }
+
+  if (rl_point == end && quote_char == '\0')
+    {
+      /* We didn't find an unclosed quoted substring upon which to do
+         completion, so use the word break characters to find the
+         substring on which to complete. */
+      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
+       {
+         scan = rl_line_buffer[rl_point];
+
+         if (strchr (brkchars, scan) == 0)
+           continue;
+
+         /* Call the application-specific function to tell us whether
+            this word break character is quoted and should be skipped. */
+         if (rl_char_is_quoted_p && found_quote &&
+             (*rl_char_is_quoted_p) (rl_line_buffer, rl_point))
+           continue;
+
+         /* Convoluted code, but it avoids an n^2 algorithm with calls
+            to char_is_quoted. */
+         break;
+       }
+    }
+
+  /* If we are at an unquoted word break, then advance past it. */
+  scan = rl_line_buffer[rl_point];
+
+  /* If there is an application-specific function to say whether or not
+     a character is quoted and we found a quote character, let that
+     function decide whether or not a character is a word break, even
+     if it is found in rl_completer_word_break_characters.  Don't bother
+     if we're at the end of the line, though. */
+  if (scan)
+    {
+      if (rl_char_is_quoted_p)
+       isbrk = (found_quote == 0 ||
+               (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
+               strchr (brkchars, scan) != 0;
+      else
+       isbrk = strchr (brkchars, scan) != 0;
+
+      if (isbrk)
+       {
+         /* If the character that caused the word break was a quoting
+            character, then remember it as the delimiter. */
+         if (rl_basic_quote_characters &&
+             strchr (rl_basic_quote_characters, scan) &&
+             (end - rl_point) > 1)
+           delimiter = scan;
+
+         /* If the character isn't needed to determine something special
+            about what kind of completion to perform, then advance past it. */
+         if (rl_special_prefixes == 0 || strchr (rl_special_prefixes, scan) == 0)
+           rl_point++;
+       }
+    }
+
+  if (fp)
+    *fp = found_quote;
+  if (dp)
+    *dp = delimiter;
+
+  return (quote_char);
+}
+
+static char **
+gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
+     char *text;
+     int start, end;
+     rl_compentry_func_t *our_func;
+     int found_quote, quote_char;
+{
+  char **matches;
+
+  rl_completion_found_quote = found_quote;
+  rl_completion_quote_character = quote_char;
+
+  /* If the user wants to TRY to complete, but then wants to give
+     up and use the default completion function, they set the
+     variable rl_attempted_completion_function. */
+  if (rl_attempted_completion_function)
+    {
+      matches = (*rl_attempted_completion_function) (text, start, end);
+      if (RL_SIG_RECEIVED())
+       {
+         _rl_free_match_list (matches);
+         matches = 0;
+         RL_CHECK_SIGNALS ();
+       }
+
+      if (matches || rl_attempted_completion_over)
+       {
+         rl_attempted_completion_over = 0;
+         return (matches);
+       }
+    }
+
+  /* XXX -- filename dequoting moved into rl_filename_completion_function */
+
+  /* rl_completion_matches will check for signals as well to avoid a long
+     delay while reading a directory. */
+  matches = rl_completion_matches (text, our_func);
+  if (RL_SIG_RECEIVED())
+    {
+      _rl_free_match_list (matches);
+      matches = 0;
+      RL_CHECK_SIGNALS ();
+    }
+  return matches;  
+}
+
+/* Filter out duplicates in MATCHES.  This frees up the strings in
+   MATCHES. */
+static char **
+remove_duplicate_matches (matches)
+     char **matches;
+{
+  char *lowest_common;
+  int i, j, newlen;
+  char dead_slot;
+  char **temp_array;
+
+  /* Sort the items. */
+  for (i = 0; matches[i]; i++)
+    ;
+
+  /* Sort the array without matches[0], since we need it to
+     stay in place no matter what. */
+  if (i && rl_sort_completion_matches)
+    qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  /* Remember the lowest common denominator for it may be unique. */
+  lowest_common = savestring (matches[0]);
+
+  for (i = newlen = 0; matches[i + 1]; i++)
+    {
+      if (strcmp (matches[i], matches[i + 1]) == 0)
+       {
+         xfree (matches[i]);
+         matches[i] = (char *)&dead_slot;
+       }
+      else
+       newlen++;
+    }
+
+  /* We have marked all the dead slots with (char *)&dead_slot.
+     Copy all the non-dead entries into a new array. */
+  temp_array = (char **)xmalloc ((3 + newlen) * sizeof (char *));
+  for (i = j = 1; matches[i]; i++)
+    {
+      if (matches[i] != (char *)&dead_slot)
+       temp_array[j++] = matches[i];
+    }
+  temp_array[j] = (char *)NULL;
+
+  if (matches[0] != (char *)&dead_slot)
+    xfree (matches[0]);
+
+  /* Place the lowest common denominator back in [0]. */
+  temp_array[0] = lowest_common;
+
+  /* If there is one string left, and it is identical to the
+     lowest common denominator, then the LCD is the string to
+     insert. */
+  if (j == 2 && strcmp (temp_array[0], temp_array[1]) == 0)
+    {
+      xfree (temp_array[1]);
+      temp_array[1] = (char *)NULL;
+    }
+  return (temp_array);
+}
+
+/* Find the common prefix of the list of matches, and put it into
+   matches[0]. */
+static int
+compute_lcd_of_matches (match_list, matches, text)
+     char **match_list;
+     int matches;
+     const char *text;
+{
+  register int i, c1, c2, si;
+  int low;             /* Count of max-matched characters. */
+  int lx;
+  char *dtext;         /* dequoted TEXT, if needed */
+#if defined (HANDLE_MULTIBYTE)
+  int v;
+  mbstate_t ps1, ps2;
+  wchar_t wc1, wc2;
+#endif
+
+  /* If only one match, just use that.  Otherwise, compare each
+     member of the list with the next, finding out where they
+     stop matching. */
+  if (matches == 1)
+    {
+      match_list[0] = match_list[1];
+      match_list[1] = (char *)NULL;
+      return 1;
+    }
+
+  for (i = 1, low = 100000; i < matches; i++)
+    {
+#if defined (HANDLE_MULTIBYTE)
+      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+       {
+         memset (&ps1, 0, sizeof (mbstate_t));
+         memset (&ps2, 0, sizeof (mbstate_t));
+       }
+#endif
+      if (_rl_completion_case_fold)
+       {
+         for (si = 0;
+              (c1 = _rl_to_lower(match_list[i][si])) &&
+              (c2 = _rl_to_lower(match_list[i + 1][si]));
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
+               mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
+               wc1 = towlower (wc1);
+               wc2 = towlower (wc2);
+               if (wc1 != wc2)
+                 break;
+               else if (v > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+      else
+       {
+         for (si = 0;
+              (c1 = match_list[i][si]) &&
+              (c2 = match_list[i + 1][si]);
+              si++)
+#if defined (HANDLE_MULTIBYTE)
+           if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+             {
+               mbstate_t ps_back;
+               ps_back = ps1;
+               if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
+                 break;
+               else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
+                 si += v - 1;
+             }
+           else
+#endif
+           if (c1 != c2)
+             break;
+       }
+
+      if (low > si)
+       low = si;
+    }
+
+  /* If there were multiple matches, but none matched up to even the
+     first character, and the user typed something, use that as the
+     value of matches[0]. */
+  if (low == 0 && text && *text)
+    {
+      match_list[0] = (char *)xmalloc (strlen (text) + 1);
+      strcpy (match_list[0], text);
+    }
+  else
+    {
+      match_list[0] = (char *)xmalloc (low + 1);
+
+      /* XXX - this might need changes in the presence of multibyte chars */
+
+      /* If we are ignoring case, try to preserve the case of the string
+        the user typed in the face of multiple matches differing in case. */
+      if (_rl_completion_case_fold)
+       {
+         /* We're making an assumption here:
+               IF we're completing filenames AND
+                  the application has defined a filename dequoting function AND
+                  we found a quote character AND
+                  the application has requested filename quoting
+               THEN
+                  we assume that TEXT was dequoted before checking against
+                  the file system and needs to be dequoted here before we
+                  check against the list of matches
+               FI */
+         dtext = (char *)NULL;
+         if (rl_filename_completion_desired &&
+             rl_filename_dequoting_function &&
+             rl_completion_found_quote &&
+             rl_filename_quoting_desired)
+           {
+             dtext = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character);
+             text = dtext;
+           }
+
+         /* sort the list to get consistent answers. */
+         qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
+
+         si = strlen (text);
+         lx = (si <= low) ? si : low;  /* check shorter of text and matches */
+         /* Try to preserve the case of what the user typed in the presence of
+            multiple matches: check each match for something that matches
+            what the user typed taking case into account; use it up to common
+            length of matches if one is found.  If not, just use first match. */
+         for (i = 1; i <= matches; i++)
+           if (strncmp (match_list[i], text, lx) == 0)
+             {
+               strncpy (match_list[0], match_list[i], low);
+               break;
+             }
+         /* no casematch, use first entry */
+         if (i > matches)
+           strncpy (match_list[0], match_list[1], low);
+
+         FREE (dtext);
+       }
+      else
+        strncpy (match_list[0], match_list[1], low);
+
+      match_list[0][low] = '\0';
+    }
+
+  return matches;
+}
+
+static int
+postprocess_matches (matchesp, matching_filenames)
+     char ***matchesp;
+     int matching_filenames;
+{
+  char *t, **matches, **temp_matches;
+  int nmatch, i;
+
+  matches = *matchesp;
+
+  if (matches == 0)
+    return 0;
+
+  /* It seems to me that in all the cases we handle we would like
+     to ignore duplicate possiblilities.  Scan for the text to
+     insert being identical to the other completions. */
+  if (rl_ignore_completion_duplicates)
+    {
+      temp_matches = remove_duplicate_matches (matches);
+      xfree (matches);
+      matches = temp_matches;
+    }
+
+  /* If we are matching filenames, then here is our chance to
+     do clever processing by re-examining the list.  Call the
+     ignore function with the array as a parameter.  It can
+     munge the array, deleting matches as it desires. */
+  if (rl_ignore_some_completions_function && matching_filenames)
+    {
+      for (nmatch = 1; matches[nmatch]; nmatch++)
+       ;
+      (void)(*rl_ignore_some_completions_function) (matches);
+      if (matches == 0 || matches[0] == 0)
+       {
+         FREE (matches);
+         *matchesp = (char **)0;
+         return 0;
+        }
+      else
+       {
+         /* If we removed some matches, recompute the common prefix. */
+         for (i = 1; matches[i]; i++)
+           ;
+         if (i > 1 && i < nmatch)
+           {
+             t = matches[0];
+             compute_lcd_of_matches (matches, i - 1, t);
+             FREE (t);
+           }
+       }
+    }
+
+  *matchesp = matches;
+  return (1);
+}
+
+static int
+complete_get_screenwidth ()
+{
+  int cols;
+  char *envcols;
+
+  cols = _rl_completion_columns;
+  if (cols >= 0 && cols <= _rl_screenwidth)
+    return cols;
+  envcols = getenv ("COLUMNS");
+  if (envcols && *envcols)
+    cols = atoi (envcols);
+  if (cols >= 0 && cols <= _rl_screenwidth)
+    return cols;
+  return _rl_screenwidth;
+}
+
+/* A convenience function for displaying a list of strings in
+   columnar format on readline's output stream.  MATCHES is the list
+   of strings, in argv format, LEN is the number of strings in MATCHES,
+   and MAX is the length of the longest string in MATCHES. */
+void
+rl_display_match_list (matches, len, max)
+     char **matches;
+     int len, max;
+{
+  int count, limit, printed_len, lines, cols;
+  int i, j, k, l, common_length, sind;
+  char *temp, *t;
+
+  /* Find the length of the prefix common to all items: length as displayed
+     characters (common_length) and as a byte index into the matches (sind) */
+  common_length = sind = 0;
+  if (_rl_completion_prefix_display_length > 0)
+    {
+      t = printable_part (matches[0]);
+      temp = strrchr (t, '/');
+      common_length = temp ? fnwidth (temp) : fnwidth (t);
+      sind = temp ? strlen (temp) : strlen (t);
+
+      if (common_length > _rl_completion_prefix_display_length && common_length > ELLIPSIS_LEN)
+       max -= common_length - ELLIPSIS_LEN;
+      else
+       common_length = sind = 0;
+    }
+
+  /* How many items of MAX length can we fit in the screen window? */
+  cols = complete_get_screenwidth ();
+  max += 2;
+  limit = cols / max;
+  if (limit != 1 && (limit * max == cols))
+    limit--;
+
+  /* If cols == 0, limit will end up -1 */
+  if (cols < _rl_screenwidth && limit < 0)
+    limit = 1;
+
+  /* Avoid a possible floating exception.  If max > cols,
+     limit will be 0 and a divide-by-zero fault will result. */
+  if (limit == 0)
+    limit = 1;
+
+  /* How many iterations of the printing loop? */
+  count = (len + (limit - 1)) / limit;
+
+  /* Watch out for special case.  If LEN is less than LIMIT, then
+     just do the inner printing loop.
+          0 < len <= limit  implies  count = 1. */
+
+  /* Sort the items if they are not already sorted. */
+  if (rl_ignore_completion_duplicates == 0 && rl_sort_completion_matches)
+    qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
+
+  rl_crlf ();
+
+  lines = 0;
+  if (_rl_print_completions_horizontally == 0)
+    {
+      /* Print the sorted items, up-and-down alphabetically, like ls. */
+      for (i = 1; i <= count; i++)
+       {
+         for (j = 0, l = i; j < limit; j++)
+           {
+             if (l > len || matches[l] == 0)
+               break;
+             else
+               {
+                 temp = printable_part (matches[l]);
+                 printed_len = print_filename (temp, matches[l], sind);
+
+                 if (j + 1 < limit)
+                   for (k = 0; k < max - printed_len; k++)
+                     putc (' ', rl_outstream);
+               }
+             l += count;
+           }
+         rl_crlf ();
+         lines++;
+         if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
+           {
+             lines = _rl_internal_pager (lines);
+             if (lines < 0)
+               return;
+           }
+       }
+    }
+  else
+    {
+      /* Print the sorted items, across alphabetically, like ls -x. */
+      for (i = 1; matches[i]; i++)
+       {
+         temp = printable_part (matches[i]);
+         printed_len = print_filename (temp, matches[i], sind);
+         /* Have we reached the end of this line? */
+         if (matches[i+1])
+           {
+             if (i && (limit > 1) && (i % limit) == 0)
+               {
+                 rl_crlf ();
+                 lines++;
+                 if (_rl_page_completions && lines >= _rl_screenheight - 1)
+                   {
+                     lines = _rl_internal_pager (lines);
+                     if (lines < 0)
+                       return;
+                   }
+               }
+             else
+               for (k = 0; k < max - printed_len; k++)
+                 putc (' ', rl_outstream);
+           }
+       }
+      rl_crlf ();
+    }
+}
+
+/* Display MATCHES, a list of matching filenames in argv format.  This
+   handles the simple case -- a single match -- first.  If there is more
+   than one match, we compute the number of strings in the list and the
+   length of the longest string, which will be needed by the display
+   function.  If the application wants to handle displaying the list of
+   matches itself, it sets RL_COMPLETION_DISPLAY_MATCHES_HOOK to the
+   address of a function, and we just call it.  If we're handling the
+   display ourselves, we just call rl_display_match_list.  We also check
+   that the list of matches doesn't exceed the user-settable threshold,
+   and ask the user if he wants to see the list if there are more matches
+   than RL_COMPLETION_QUERY_ITEMS. */
+static void
+display_matches (matches)
+     char **matches;
+{
+  int len, max, i;
+  char *temp;
+
+  /* Move to the last visible line of a possibly-multiple-line command. */
+  _rl_move_vert (_rl_vis_botlin);
+
+  /* Handle simple case first.  What if there is only one answer? */
+  if (matches[1] == 0)
+    {
+      temp = printable_part (matches[0]);
+      rl_crlf ();
+      print_filename (temp, matches[0], 0);
+      rl_crlf ();
+
+      rl_forced_update_display ();
+      rl_display_fixed = 1;
+
+      return;
+    }
+
+  /* There is more than one answer.  Find out how many there are,
+     and find the maximum printed length of a single entry. */
+  for (max = 0, i = 1; matches[i]; i++)
+    {
+      temp = printable_part (matches[i]);
+      len = fnwidth (temp);
+
+      if (len > max)
+       max = len;
+    }
+
+  len = i - 1;
+
+  /* If the caller has defined a display hook, then call that now. */
+  if (rl_completion_display_matches_hook)
+    {
+      (*rl_completion_display_matches_hook) (matches, len, max);
+      return;
+    }
+       
+  /* If there are many items, then ask the user if she really wants to
+     see them all. */
+  if (rl_completion_query_items > 0 && len >= rl_completion_query_items)
+    {
+      rl_crlf ();
+      fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
+      fflush (rl_outstream);
+      if ((completion_y_or_n = get_y_or_n (0)) == 0)
+       {
+         rl_crlf ();
+
+         rl_forced_update_display ();
+         rl_display_fixed = 1;
+
+         return;
+       }
+    }
+
+  rl_display_match_list (matches, len, max);
+
+  rl_forced_update_display ();
+  rl_display_fixed = 1;
+}
+
+static char *
+make_quoted_replacement (match, mtype, qc)
+     char *match;
+     int mtype;
+     char *qc; /* Pointer to quoting character, if any */
+{
+  int should_quote, do_replace;
+  char *replacement;
+
+  /* If we are doing completion on quoted substrings, and any matches
+     contain any of the completer_word_break_characters, then auto-
+     matically prepend the substring with a quote character (just pick
+     the first one from the list of such) if it does not already begin
+     with a quote string.  FIXME: Need to remove any such automatically
+     inserted quote character when it no longer is necessary, such as
+     if we change the string we are completing on and the new set of
+     matches don't require a quoted substring. */
+  replacement = match;
+
+  should_quote = match && rl_completer_quote_characters &&
+                       rl_filename_completion_desired &&
+                       rl_filename_quoting_desired;
+
+  if (should_quote)
+    should_quote = should_quote && (!qc || !*qc ||
+                    (rl_completer_quote_characters && strchr (rl_completer_quote_characters, *qc)));
+
+  if (should_quote)
+    {
+      /* If there is a single match, see if we need to quote it.
+         This also checks whether the common prefix of several
+        matches needs to be quoted. */
+      should_quote = rl_filename_quote_characters
+                       ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
+                       : 0;
+
+      do_replace = should_quote ? mtype : NO_MATCH;
+      /* Quote the replacement, since we found an embedded
+        word break character in a potential match. */
+      if (do_replace != NO_MATCH && rl_filename_quoting_function)
+       replacement = (*rl_filename_quoting_function) (match, do_replace, qc);
+    }
+  return (replacement);
+}
+
+static void
+insert_match (match, start, mtype, qc)
+     char *match;
+     int start, mtype;
+     char *qc;
+{
+  char *replacement, *r;
+  char oqc;
+  int end, rlen;
+
+  oqc = qc ? *qc : '\0';
+  replacement = make_quoted_replacement (match, mtype, qc);
+
+  /* Now insert the match. */
+  if (replacement)
+    {
+      rlen = strlen (replacement);
+      /* Don't double an opening quote character. */
+      if (qc && *qc && start && rl_line_buffer[start - 1] == *qc &&
+           replacement[0] == *qc)
+       start--;
+      /* If make_quoted_replacement changed the quoting character, remove
+        the opening quote and insert the (fully-quoted) replacement. */
+      else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
+           replacement[0] != oqc)
+       start--;
+      end = rl_point - 1;
+      /* Don't double a closing quote character */
+      if (qc && *qc && end && rl_line_buffer[rl_point] == *qc && replacement[rlen - 1] == *qc)
+        end++;
+      if (_rl_skip_completed_text)
+       {
+         r = replacement;
+         while (start < rl_end && *r && rl_line_buffer[start] == *r)
+           {
+             start++;
+             r++;
+           }
+         if (start <= end || *r)
+           _rl_replace_text (r, start, end);
+         rl_point = start + strlen (r);
+       }
+      else
+       _rl_replace_text (replacement, start, end);
+      if (replacement != match)
+        xfree (replacement);
+    }
+}
+
+/* Append any necessary closing quote and a separator character to the
+   just-inserted match.  If the user has specified that directories
+   should be marked by a trailing `/', append one of those instead.  The
+   default trailing character is a space.  Returns the number of characters
+   appended.  If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
+   has them) and don't add a suffix for a symlink to a directory.  A
+   nontrivial match is one that actually adds to the word being completed.
+   The variable rl_completion_mark_symlink_dirs controls this behavior
+   (it's initially set to the what the user has chosen, indicated by the
+   value of _rl_complete_mark_symlink_dirs, but may be modified by an
+   application's completion function). */
+static int
+append_to_match (text, delimiter, quote_char, nontrivial_match)
+     char *text;
+     int delimiter, quote_char, nontrivial_match;
+{
+  char temp_string[4], *filename;
+  int temp_string_index, s;
+  struct stat finfo;
+
+  temp_string_index = 0;
+  if (quote_char && rl_point && rl_completion_suppress_quote == 0 &&
+      rl_line_buffer[rl_point - 1] != quote_char)
+    temp_string[temp_string_index++] = quote_char;
+
+  if (delimiter)
+    temp_string[temp_string_index++] = delimiter;
+  else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
+    temp_string[temp_string_index++] = rl_completion_append_character;
+
+  temp_string[temp_string_index++] = '\0';
+
+  if (rl_filename_completion_desired)
+    {
+      filename = tilde_expand (text);
+      if (rl_filename_stat_hook)
+       (*rl_filename_stat_hook) (&filename);
+      s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
+               ? LSTAT (filename, &finfo)
+               : stat (filename, &finfo);
+      if (s == 0 && S_ISDIR (finfo.st_mode))
+       {
+         if (_rl_complete_mark_directories /* && rl_completion_suppress_append == 0 */)
+           {
+             /* This is clumsy.  Avoid putting in a double slash if point
+                is at the end of the line and the previous character is a
+                slash. */
+             if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
+               ;
+             else if (rl_line_buffer[rl_point] != '/')
+               rl_insert_text ("/");
+           }
+       }
+#ifdef S_ISLNK
+      /* Don't add anything if the filename is a symlink and resolves to a
+        directory. */
+      else if (s == 0 && S_ISLNK (finfo.st_mode) && path_isdir (filename))
+       ;
+#endif
+      else
+       {
+         if (rl_point == rl_end && temp_string_index)
+           rl_insert_text (temp_string);
+       }
+      xfree (filename);
+    }
+  else
+    {
+      if (rl_point == rl_end && temp_string_index)
+       rl_insert_text (temp_string);
+    }
+
+  return (temp_string_index);
+}
+
+static void
+insert_all_matches (matches, point, qc)
+     char **matches;
+     int point;
+     char *qc;
+{
+  int i;
+  char *rp;
+
+  rl_begin_undo_group ();
+  /* remove any opening quote character; make_quoted_replacement will add
+     it back. */
+  if (qc && *qc && point && rl_line_buffer[point - 1] == *qc)
+    point--;
+  rl_delete_text (point, rl_point);
+  rl_point = point;
+
+  if (matches[1])
+    {
+      for (i = 1; matches[i]; i++)
+       {
+         rp = make_quoted_replacement (matches[i], SINGLE_MATCH, qc);
+         rl_insert_text (rp);
+         rl_insert_text (" ");
+         if (rp != matches[i])
+           xfree (rp);
+       }
+    }
+  else
+    {
+      rp = make_quoted_replacement (matches[0], SINGLE_MATCH, qc);
+      rl_insert_text (rp);
+      rl_insert_text (" ");
+      if (rp != matches[0])
+       xfree (rp);
+    }
+  rl_end_undo_group ();
+}
+
+void
+_rl_free_match_list (matches)
+     char **matches;
+{
+  register int i;
+
+  if (matches == 0)
+    return;
+
+  for (i = 0; matches[i]; i++)
+    xfree (matches[i]);
+  xfree (matches);
+}
+
+/* Complete the word at or before point.
+   WHAT_TO_DO says what to do with the completion.
+   `?' means list the possible completions.
+   TAB means do standard completion.
+   `*' means insert all of the possible completions.
+   `!' means to do standard completion, and list all possible completions if
+   there is more than one.
+   `@' means to do standard completion, and list all possible completions if
+   there is more than one and partial completion is not possible. */
+int
+rl_complete_internal (what_to_do)
+     int what_to_do;
+{
+  char **matches;
+  rl_compentry_func_t *our_func;
+  int start, end, delimiter, found_quote, i, nontrivial_lcd;
+  char *text, *saved_line_buffer;
+  char quote_char;
+#if 1
+  int tlen, mlen;
+#endif
+
+  RL_SETSTATE(RL_STATE_COMPLETING);
+
+  set_completion_defaults (what_to_do);
+
+  saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
+  our_func = rl_completion_entry_function
+               ? rl_completion_entry_function
+               : rl_filename_completion_function;
+  /* We now look backwards for the start of a filename/variable word. */
+  end = rl_point;
+  found_quote = delimiter = 0;
+  quote_char = '\0';
+
+  if (rl_point)
+    /* This (possibly) changes rl_point.  If it returns a non-zero char,
+       we know we have an open quote. */
+    quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+  start = rl_point;
+  rl_point = end;
+
+  text = rl_copy_text (start, end);
+  matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
+  /* nontrivial_lcd is set if the common prefix adds something to the word
+     being completed. */
+  nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
+  if (what_to_do == '!' || what_to_do == '@')
+    tlen = strlen (text);
+  xfree (text);
+
+  if (matches == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      _rl_reset_completion_state ();
+      return (0);
+    }
+
+  /* If we are matching filenames, the attempted completion function will
+     have set rl_filename_completion_desired to a non-zero value.  The basic
+     rl_filename_completion_function does this. */
+  i = rl_filename_completion_desired;
+
+  if (postprocess_matches (&matches, i) == 0)
+    {
+      rl_ding ();
+      FREE (saved_line_buffer);
+      completion_changed_buffer = 0;
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      _rl_reset_completion_state ();
+      return (0);
+    }
+
+  switch (what_to_do)
+    {
+    case TAB:
+    case '!':
+    case '@':
+      /* Insert the first match with proper quoting. */
+      if (what_to_do == TAB)
+        {
+          if (*matches[0])
+           insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+        }
+      else if (*matches[0] && matches[1] == 0)
+       /* should we perform the check only if there are multiple matches? */
+       insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+      else if (*matches[0])    /* what_to_do != TAB && multiple matches */
+       {
+         mlen = *matches[0] ? strlen (matches[0]) : 0;
+         if (mlen >= tlen)
+           insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+       }
+
+      /* If there are more matches, ring the bell to indicate.
+        If we are in vi mode, Posix.2 says to not ring the bell.
+        If the `show-all-if-ambiguous' variable is set, display
+        all the matches immediately.  Otherwise, if this was the
+        only match, and we are hacking files, check the file to
+        see if it was a directory.  If so, and the `mark-directories'
+        variable is set, add a '/' to the name.  If not, and we
+        are at the end of the line, then add a space.  */
+      if (matches[1])
+       {
+         if (what_to_do == '!')
+           {
+             display_matches (matches);
+             break;
+           }
+         else if (what_to_do == '@')
+           {
+             if (nontrivial_lcd == 0)
+               display_matches (matches);
+             break;
+           }
+         else if (rl_editing_mode != vi_mode)
+           rl_ding (); /* There are other matches remaining. */
+       }
+      else
+       append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+
+      break;
+
+    case '*':
+      insert_all_matches (matches, start, &quote_char);
+      break;
+
+    case '?':
+      if (rl_completion_display_matches_hook == 0)
+       {
+         _rl_sigcleanup = _rl_complete_sigcleanup;
+         _rl_sigcleanarg = matches;
+       }
+      display_matches (matches);
+      _rl_sigcleanup = 0;
+      _rl_sigcleanarg = 0;
+      break;
+
+    default:
+      _rl_ttymsg ("bad value %d for what_to_do in rl_complete", what_to_do);
+      rl_ding ();
+      FREE (saved_line_buffer);
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+      _rl_free_match_list (matches);
+      _rl_reset_completion_state ();
+      return 1;
+    }
+
+  _rl_free_match_list (matches);
+
+  /* Check to see if the line has changed through all of this manipulation. */
+  if (saved_line_buffer)
+    {
+      completion_changed_buffer = strcmp (rl_line_buffer, saved_line_buffer) != 0;
+      xfree (saved_line_buffer);
+    }
+
+  RL_UNSETSTATE(RL_STATE_COMPLETING);
+  _rl_reset_completion_state ();
+  return 0;
+}
+
+/***************************************************************/
+/*                                                            */
+/*  Application-callable completion match generator functions  */
+/*                                                            */
+/***************************************************************/
+
+/* Return an array of (char *) which is a list of completions for TEXT.
+   If there are no completions, return a NULL pointer.
+   The first entry in the returned array is the substitution for TEXT.
+   The remaining entries are the possible completions.
+   The array is terminated with a NULL pointer.
+
+   ENTRY_FUNCTION is a function of two args, and returns a (char *).
+     The first argument is TEXT.
+     The second is a state argument; it should be zero on the first call, and
+     non-zero on subsequent calls.  It returns a NULL pointer to the caller
+     when there are no more matches.
+ */
+char **
+rl_completion_matches (text, entry_function)
+     const char *text;
+     rl_compentry_func_t *entry_function;
+{
+  register int i;
+
+  /* Number of slots in match_list. */
+  int match_list_size;
+
+  /* The list of matches. */
+  char **match_list;
+
+  /* Number of matches actually found. */
+  int matches;
+
+  /* Temporary string binder. */
+  char *string;
+
+  matches = 0;
+  match_list_size = 10;
+  match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
+  match_list[1] = (char *)NULL;
+
+  while (string = (*entry_function) (text, matches))
+    {
+      if (RL_SIG_RECEIVED ())
+       {
+         /* Start at 1 because we don't set matches[0] in this function.
+            Only free the list members if we're building match list from
+            rl_filename_completion_function, since we know that doesn't
+            free the strings it returns. */
+         if (entry_function == rl_filename_completion_function)
+           {
+             for (i = 1; match_list[i]; i++)
+               xfree (match_list[i]);
+           }
+         xfree (match_list);
+         match_list = 0;
+         match_list_size = 0;
+         RL_CHECK_SIGNALS ();
+       }
+
+      if (matches + 1 == match_list_size)
+       match_list = (char **)xrealloc
+         (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
+
+      match_list[++matches] = string;
+      match_list[matches + 1] = (char *)NULL;
+    }
+
+  /* If there were any matches, then look through them finding out the
+     lowest common denominator.  That then becomes match_list[0]. */
+  if (matches)
+    compute_lcd_of_matches (match_list, matches, text);
+  else                         /* There were no matches. */
+    {
+      xfree (match_list);
+      match_list = (char **)NULL;
+    }
+  return (match_list);
+}
+
+/* A completion function for usernames.
+   TEXT contains a partial username preceded by a random
+   character (usually `~').  */
+char *
+rl_username_completion_function (text, state)
+     const char *text;
+     int state;
+{
+#if defined (__WIN32__) || defined (__OPENNT)
+  return (char *)NULL;
+#else /* !__WIN32__ && !__OPENNT) */
+  static char *username = (char *)NULL;
+  static struct passwd *entry;
+  static int namelen, first_char, first_char_loc;
+  char *value;
+
+  if (state == 0)
+    {
+      FREE (username);
+
+      first_char = *text;
+      first_char_loc = first_char == '~';
+
+      username = savestring (&text[first_char_loc]);
+      namelen = strlen (username);
+      setpwent ();
+    }
+
+#if defined (HAVE_GETPWENT)
+  while (entry = getpwent ())
+    {
+      /* Null usernames should result in all users as possible completions. */
+      if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
+       break;
+    }
+#endif
+
+  if (entry == 0)
+    {
+#if defined (HAVE_GETPWENT)
+      endpwent ();
+#endif
+      return ((char *)NULL);
+    }
+  else
+    {
+      value = (char *)xmalloc (2 + strlen (entry->pw_name));
+
+      *value = *text;
+
+      strcpy (value + first_char_loc, entry->pw_name);
+
+      if (first_char == '~')
+       rl_filename_completion_desired = 1;
+
+      return (value);
+    }
+#endif /* !__WIN32__ && !__OPENNT */
+}
+
+/* Return non-zero if CONVFN matches FILENAME up to the length of FILENAME
+   (FILENAME_LEN).  If _rl_completion_case_fold is set, compare without
+   regard to the alphabetic case of characters.  CONVFN is the possibly-
+   converted directory entry; FILENAME is what the user typed. */
+static int
+complete_fncmp (convfn, convlen, filename, filename_len)
+     const char *convfn;
+     int convlen;
+     const char *filename;
+     int filename_len;
+{
+  register char *s1, *s2;
+  int d, len;
+
+  /* Otherwise, if these match up to the length of filename, then
+     it is a match. */
+  if (_rl_completion_case_fold && _rl_completion_case_map)
+    {
+      /* Case-insensitive comparison treating _ and - as equivalent */
+      if (filename_len == 0)
+       return 1;
+      if (convlen < filename_len)
+       return 0;
+      s1 = (char *)convfn;
+      s2 = (char *)filename;
+      len = filename_len;
+      do
+       {
+         d = _rl_to_lower (*s1) - _rl_to_lower (*s2);
+         /* *s1 == [-_] && *s2 == [-_] */
+         if ((*s1 == '-' || *s1 == '_') && (*s2 == '-' || *s2 == '_'))
+           d = 0;
+         if (d != 0)
+           return 0;
+         s1++; s2++;   /* already checked convlen >= filename_len */
+       }
+      while (--len != 0);
+      return 1;
+    }
+  else if (_rl_completion_case_fold)
+    {
+      if ((_rl_to_lower (convfn[0]) == _rl_to_lower (filename[0])) &&
+         (convlen >= filename_len) &&
+         (_rl_strnicmp (filename, convfn, filename_len) == 0))
+       return 1;
+    }
+  else
+    {
+      if ((convfn[0] == filename[0]) &&
+         (convlen >= filename_len) &&
+         (strncmp (filename, convfn, filename_len) == 0))
+       return 1;
+    }
+  return 0;
+}
+
+/* Okay, now we write the entry_function for filename completion.  In the
+   general case.  Note that completion in the shell is a little different
+   because of all the pathnames that must be followed when looking up the
+   completion for a command. */
+char *
+rl_filename_completion_function (text, state)
+     const char *text;
+     int state;
+{
+  static DIR *directory = (DIR *)NULL;
+  static char *filename = (char *)NULL;
+  static char *dirname = (char *)NULL;
+  static char *users_dirname = (char *)NULL;
+  static int filename_len;
+  char *temp, *dentry, *convfn;
+  int dirlen, dentlen, convlen;
+  struct dirent *entry;
+
+  /* If we don't have any state, then do some initialization. */
+  if (state == 0)
+    {
+      /* If we were interrupted before closing the directory or reading
+        all of its contents, close it. */
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      FREE (dirname);
+      FREE (filename);
+      FREE (users_dirname);
+
+      filename = savestring (text);
+      if (*text == 0)
+       text = ".";
+      dirname = savestring (text);
+
+      temp = strrchr (dirname, '/');
+
+#if defined (__MSDOS__)
+      /* special hack for //X/... */
+      if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
+        temp = strrchr (dirname + 3, '/');
+#endif
+
+      if (temp)
+       {
+         strcpy (filename, ++temp);
+         *temp = '\0';
+       }
+#if defined (__MSDOS__)
+      /* searches from current directory on the drive */
+      else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
+        {
+          strcpy (filename, dirname + 2);
+          dirname[2] = '\0';
+        }
+#endif
+      else
+       {
+         dirname[0] = '.';
+         dirname[1] = '\0';
+       }
+
+      /* We aren't done yet.  We also support the "~user" syntax. */
+
+      /* Save the version of the directory that the user typed, dequoting
+        it if necessary. */
+      if (rl_completion_found_quote && rl_filename_dequoting_function)
+       users_dirname = (*rl_filename_dequoting_function) (dirname, rl_completion_quote_character);
+      else
+       users_dirname = savestring (dirname);
+
+      if (*dirname == '~')
+       {
+         temp = tilde_expand (dirname);
+         xfree (dirname);
+         dirname = temp;
+       }
+
+      /* We have saved the possibly-dequoted version of the directory name
+        the user typed.  Now transform the directory name we're going to
+        pass to opendir(2).  The directory rewrite hook modifies only the
+        directory name; the directory completion hook modifies both the
+        directory name passed to opendir(2) and the version the user
+        typed.  Both the directory completion and rewrite hooks should perform
+        any necessary dequoting.  The hook functions return 1 if they modify
+        the directory name argument.  If either hook returns 0, it should
+        not modify the directory name pointer passed as an argument. */
+      if (rl_directory_rewrite_hook)
+       (*rl_directory_rewrite_hook) (&dirname);
+      else if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
+       {
+         xfree (users_dirname);
+         users_dirname = savestring (dirname);
+       }
+      else if (rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         xfree (dirname);
+         dirname = savestring (users_dirname);
+       }
+      directory = opendir (dirname);
+
+      /* Now dequote a non-null filename.  FILENAME will not be NULL, but may
+        be empty. */
+      if (*filename && rl_completion_found_quote && rl_filename_dequoting_function)
+       {
+         /* delete single and double quotes */
+         temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character);
+         xfree (filename);
+         filename = temp;
+       }
+      filename_len = strlen (filename);
+
+      rl_filename_completion_desired = 1;
+    }
+
+  /* At this point we should entertain the possibility of hacking wildcarded
+     filenames, like /usr/man/man<WILD>/te<TAB>.  If the directory name
+     contains globbing characters, then build an array of directories, and
+     then map over that list while completing. */
+  /* *** UNIMPLEMENTED *** */
+
+  /* Now that we have some state, we can read the directory. */
+
+  entry = (struct dirent *)NULL;
+  while (directory && (entry = readdir (directory)))
+    {
+      convfn = dentry = entry->d_name;
+      convlen = dentlen = D_NAMLEN (entry);
+
+      if (rl_filename_rewrite_hook)
+       {
+         convfn = (*rl_filename_rewrite_hook) (dentry, dentlen);
+         convlen = (convfn == dentry) ? dentlen : strlen (convfn);
+       }
+
+      /* Special case for no filename.  If the user has disabled the
+         `match-hidden-files' variable, skip filenames beginning with `.'.
+        All other entries except "." and ".." match. */
+      if (filename_len == 0)
+       {
+         if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
+           continue;
+
+         if (convfn[0] != '.' ||
+              (convfn[1] && (convfn[1] != '.' || convfn[2])))
+           break;
+       }
+      else
+       {
+         if (complete_fncmp (convfn, convlen, filename, filename_len))
+           break;
+       }
+    }
+
+  if (entry == 0)
+    {
+      if (directory)
+       {
+         closedir (directory);
+         directory = (DIR *)NULL;
+       }
+      if (dirname)
+       {
+         xfree (dirname);
+         dirname = (char *)NULL;
+       }
+      if (filename)
+       {
+         xfree (filename);
+         filename = (char *)NULL;
+       }
+      if (users_dirname)
+       {
+         xfree (users_dirname);
+         users_dirname = (char *)NULL;
+       }
+
+      return (char *)NULL;
+    }
+  else
+    {
+      /* dirname && (strcmp (dirname, ".") != 0) */
+      if (dirname && (dirname[0] != '.' || dirname[1]))
+       {
+         if (rl_complete_with_tilde_expansion && *users_dirname == '~')
+           {
+             dirlen = strlen (dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, dirname);
+             /* Canonicalization cuts off any final slash present.  We
+                may need to add it back. */
+             if (dirname[dirlen - 1] != '/')
+               {
+                 temp[dirlen++] = '/';
+                 temp[dirlen] = '\0';
+               }
+           }
+         else
+           {
+             dirlen = strlen (users_dirname);
+             temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
+             strcpy (temp, users_dirname);
+             /* Make sure that temp has a trailing slash here. */
+             if (users_dirname[dirlen - 1] != '/')
+               temp[dirlen++] = '/';
+           }
+
+         strcpy (temp + dirlen, convfn);
+       }
+      else
+       temp = savestring (convfn);
+
+      if (convfn != dentry)
+       xfree (convfn);
+
+      return (temp);
+    }
+}
+
+/* An initial implementation of a menu completion function a la tcsh.  The
+   first time (if the last readline command was not rl_old_menu_complete), we
+   generate the list of matches.  This code is very similar to the code in
+   rl_complete_internal -- there should be a way to combine the two.  Then,
+   for each item in the list of matches, we insert the match in an undoable
+   fashion, with the appropriate character appended (this happens on the
+   second and subsequent consecutive calls to rl_old_menu_complete).  When we
+   hit the end of the match list, we restore the original unmatched text,
+   ring the bell, and reset the counter to zero. */
+int
+rl_old_menu_complete (count, invoking_key)
+     int count, invoking_key;
+{
+  rl_compentry_func_t *our_func;
+  int matching_filenames, found_quote;
+
+  static char *orig_text;
+  static char **matches = (char **)0;
+  static int match_list_index = 0;
+  static int match_list_size = 0;
+  static int orig_start, orig_end;
+  static char quote_char;
+  static int delimiter;
+
+  /* The first time through, we generate the list of matches and set things
+     up to insert them. */
+  if (rl_last_func != rl_old_menu_complete)
+    {
+      /* Clean up from previous call, if any. */
+      FREE (orig_text);
+      if (matches)
+       _rl_free_match_list (matches);
+
+      match_list_index = match_list_size = 0;
+      matches = (char **)NULL;
+
+      rl_completion_invoking_key = invoking_key;
+
+      RL_SETSTATE(RL_STATE_COMPLETING);
+
+      /* Only the completion entry function can change these. */
+      set_completion_defaults ('%');
+
+      our_func = rl_menu_completion_entry_function;
+      if (our_func == 0)
+       our_func = rl_completion_entry_function
+                       ? rl_completion_entry_function
+                       : rl_filename_completion_function;
+
+      /* We now look backwards for the start of a filename/variable word. */
+      orig_end = rl_point;
+      found_quote = delimiter = 0;
+      quote_char = '\0';
+
+      if (rl_point)
+       /* This (possibly) changes rl_point.  If it returns a non-zero char,
+          we know we have an open quote. */
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+      orig_start = rl_point;
+      rl_point = orig_end;
+
+      orig_text = rl_copy_text (orig_start, orig_end);
+      matches = gen_completion_matches (orig_text, orig_start, orig_end,
+                                       our_func, found_quote, quote_char);
+
+      /* If we are matching filenames, the attempted completion function will
+        have set rl_filename_completion_desired to a non-zero value.  The basic
+        rl_filename_completion_function does this. */
+      matching_filenames = rl_filename_completion_desired;
+
+      if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         FREE (orig_text);
+         orig_text = (char *)0;
+         completion_changed_buffer = 0;
+         RL_UNSETSTATE(RL_STATE_COMPLETING);
+         return (0);
+       }
+
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+
+      for (match_list_size = 0; matches[match_list_size]; match_list_size++)
+        ;
+      /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+        code below should take care of it. */
+
+      if (match_list_size > 1 && _rl_complete_show_all)
+       display_matches (matches);
+    }
+
+  /* Now we have the list of matches.  Replace the text between
+     rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+     matches[match_list_index], and add any necessary closing char. */
+
+  if (matches == 0 || match_list_size == 0) 
+    {
+      rl_ding ();
+      FREE (matches);
+      matches = (char **)0;
+      completion_changed_buffer = 0;
+      return (0);
+    }
+
+  match_list_index += count;
+  if (match_list_index < 0)
+    {
+      while (match_list_index < 0)
+       match_list_index += match_list_size;
+    }
+  else
+    match_list_index %= match_list_size;
+
+  if (match_list_index == 0 && match_list_size > 1)
+    {
+      rl_ding ();
+      insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
+    }
+  else
+    {
+      insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
+    }
+
+  completion_changed_buffer = 1;
+  return (0);
+}
+
+int
+rl_menu_complete (count, ignore)
+     int count, ignore;
+{
+  rl_compentry_func_t *our_func;
+  int matching_filenames, found_quote;
+
+  static char *orig_text;
+  static char **matches = (char **)0;
+  static int match_list_index = 0;
+  static int match_list_size = 0;
+  static int nontrivial_lcd = 0;
+  static int full_completion = 0;      /* set to 1 if menu completion should reinitialize on next call */
+  static int orig_start, orig_end;
+  static char quote_char;
+  static int delimiter, cstate;
+
+  /* The first time through, we generate the list of matches and set things
+     up to insert them. */
+  if ((rl_last_func != rl_menu_complete && rl_last_func != rl_backward_menu_complete) || full_completion)
+    {
+      /* Clean up from previous call, if any. */
+      FREE (orig_text);
+      if (matches)
+       _rl_free_match_list (matches);
+
+      match_list_index = match_list_size = 0;
+      matches = (char **)NULL;
+
+      full_completion = 0;
+
+      RL_SETSTATE(RL_STATE_COMPLETING);
+
+      /* Only the completion entry function can change these. */
+      set_completion_defaults ('%');
+
+      our_func = rl_menu_completion_entry_function;
+      if (our_func == 0)
+       our_func = rl_completion_entry_function
+                       ? rl_completion_entry_function
+                       : rl_filename_completion_function;
+
+      /* We now look backwards for the start of a filename/variable word. */
+      orig_end = rl_point;
+      found_quote = delimiter = 0;
+      quote_char = '\0';
+
+      if (rl_point)
+       /* This (possibly) changes rl_point.  If it returns a non-zero char,
+          we know we have an open quote. */
+       quote_char = _rl_find_completion_word (&found_quote, &delimiter);
+
+      orig_start = rl_point;
+      rl_point = orig_end;
+
+      orig_text = rl_copy_text (orig_start, orig_end);
+      matches = gen_completion_matches (orig_text, orig_start, orig_end,
+                                       our_func, found_quote, quote_char);
+
+      nontrivial_lcd = matches && strcmp (orig_text, matches[0]) != 0;
+
+      /* If we are matching filenames, the attempted completion function will
+        have set rl_filename_completion_desired to a non-zero value.  The basic
+        rl_filename_completion_function does this. */
+      matching_filenames = rl_filename_completion_desired;
+
+      if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         FREE (orig_text);
+         orig_text = (char *)0;
+         completion_changed_buffer = 0;
+         RL_UNSETSTATE(RL_STATE_COMPLETING);
+         return (0);
+       }
+
+      RL_UNSETSTATE(RL_STATE_COMPLETING);
+
+      for (match_list_size = 0; matches[match_list_size]; match_list_size++)
+        ;
+
+      if (match_list_size == 0) 
+       {
+         rl_ding ();
+         FREE (matches);
+         matches = (char **)0;
+         match_list_index = 0;
+         completion_changed_buffer = 0;
+         return (0);
+        }
+
+      /* matches[0] is lcd if match_list_size > 1, but the circular buffer
+        code below should take care of it. */
+      if (*matches[0])
+       {
+         insert_match (matches[0], orig_start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
+         orig_end = orig_start + strlen (matches[0]);
+         completion_changed_buffer = STREQ (orig_text, matches[0]) == 0;
+       }
+
+      if (match_list_size > 1 && _rl_complete_show_all)
+       {
+         display_matches (matches);
+         /* If there are so many matches that the user has to be asked
+            whether or not he wants to see the matches, menu completion
+            is unwieldy. */
+         if (rl_completion_query_items > 0 && match_list_size >= rl_completion_query_items)
+           {
+             rl_ding ();
+             FREE (matches);
+             matches = (char **)0;
+             full_completion = 1;
+             return (0);
+           }
+         else if (_rl_menu_complete_prefix_first)
+           {
+             rl_ding ();
+             exit (0);
+           }
+       }
+      else if (match_list_size <= 1)
+       {
+         append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
+         full_completion = 1;
+         return (0);
+       }
+      else if (_rl_menu_complete_prefix_first && match_list_size > 1)
+       {
+         rl_ding ();
+         return (0);
+       }
+    }
+
+  /* Now we have the list of matches.  Replace the text between
+     rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
+     matches[match_list_index], and add any necessary closing char. */
+
+  if (matches == 0 || match_list_size == 0) 
+    {
+      rl_ding ();
+      FREE (matches);
+      matches = (char **)0;
+      completion_changed_buffer = 0;
+      return (0);
+    }
+
+  match_list_index += count;
+  if (match_list_index < 0)
+    {
+      while (match_list_index < 0)
+       match_list_index += match_list_size;
+    }
+  else
+    match_list_index %= match_list_size;
+
+  if (match_list_index == 0 && match_list_size > 1)
+    {
+      rl_ding ();
+      insert_match (matches[0], orig_start, MULT_MATCH, &quote_char);
+    }
+  else
+    {
+      insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
+      append_to_match (matches[match_list_index], delimiter, quote_char,
+                      strcmp (orig_text, matches[match_list_index]));
+    }
+
+  completion_changed_buffer = 1;
+  return (0);
+}
+
+int
+rl_backward_menu_complete (count, key)
+     int count, key;
+{
+  /* Positive arguments to backward-menu-complete translate into negative
+     arguments for menu-complete, and vice versa. */
+  return (rl_menu_complete (-count, key));
+}
diff --git a/lib/readline/doc/Makefile.old b/lib/readline/doc/Makefile.old
new file mode 100644 (file)
index 0000000..58d4dd7
--- /dev/null
@@ -0,0 +1,76 @@
+# This makefile for Readline library documentation is in -*- text -*- mode.
+# Emacs likes it that way.
+RM = rm -f
+
+MAKEINFO    = makeinfo
+TEXI2DVI    = texi2dvi
+TEXI2HTML   = texi2html
+QUIETPS     = #set this to -q to shut up dvips
+DVIPS       = dvips -D 300 $(QUIETPS) -o $@     # tricky
+
+INSTALL_DATA = cp
+infodir = /usr/local/info
+
+RLSRC = rlman.texinfo rluser.texinfo rltech.texinfo
+HISTSRC = hist.texinfo hsuser.texinfo hstech.texinfo
+
+DVIOBJ = readline.dvi history.dvi
+INFOOBJ = readline.info history.info
+PSOBJ = readline.ps history.ps
+HTMLOBJ = readline.html history.html
+
+all: info dvi html ps
+nodvi: info html
+
+readline.dvi: $(RLSRC)
+       $(TEXI2DVI) rlman.texinfo
+       mv rlman.dvi readline.dvi
+
+readline.info: $(RLSRC)
+       $(MAKEINFO) --no-split -o $@ rlman.texinfo
+
+history.dvi: ${HISTSRC}
+       $(TEXI2DVI) hist.texinfo
+       mv hist.dvi history.dvi
+
+history.info: ${HISTSRC}
+       $(MAKEINFO) --no-split -o $@ hist.texinfo
+
+readline.ps:   readline.dvi
+       $(RM) $@
+       $(DVIPS) readline.dvi
+
+history.ps:    history.dvi
+       $(RM) $@
+       $(DVIPS) history.dvi
+
+readline.html: ${RLSRC}
+       $(TEXI2HTML) rlman.texinfo
+       sed -e 's:rlman.html:readline.html:' -e 's:rlman_toc.html:readline_toc.html:' rlman.html > readline.html
+       sed -e 's:rlman.html:readline.html:' -e 's:rlman_toc.html:readline_toc.html:' rlman_toc.html > readline_toc.html
+       $(RM) rlman.html rlman_toc.html
+
+history.html:  ${HISTSRC}
+       $(TEXI2HTML) hist.texinfo
+       sed -e 's:hist.html:history.html:' -e 's:hist_toc.html:history_toc.html:' hist.html > history.html
+       sed -e 's:hist.html:history.html:' -e 's:hist_toc.html:history_toc.html:' hist_toc.html > history_toc.html
+       $(RM) hist.html hist_toc.html
+
+info:  $(INFOOBJ)
+dvi:   $(DVIOBJ)
+ps:    $(PSOBJ)
+html:  $(HTMLOBJ)
+
+clean:
+       $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
+             *.fns *.kys *.tps *.vrs *.o core
+
+distclean: clean
+mostlyclean: clean
+
+maintainer-clean: clean
+       $(RM) *.dvi *.info *.info-* *.ps *.html
+
+install:       info
+       ${INSTALL_DATA} readline.info $(infodir)/readline.info
+       ${INSTALL_DATA} history.info $(infodir)/history.info
diff --git a/lib/sh/zread.c~ b/lib/sh/zread.c~
new file mode 100644 (file)
index 0000000..939f9ee
--- /dev/null
@@ -0,0 +1,174 @@
+/* zread - read data from file descriptor into buffer with retries */
+
+/* Copyright (C) 1999-2002 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 <sys/types.h>
+
+#if defined (HAVE_UNISTD_H)
+#  include <unistd.h>
+#endif
+
+#include <errno.h>
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+#ifndef SEEK_CUR
+#  define SEEK_CUR 1
+#endif
+
+/* Read LEN bytes from FD into BUF.  Retry the read on EINTR.  Any other
+   error causes the loop to break. */
+ssize_t
+zread (fd, buf, len)
+     int fd;
+     char *buf;
+     size_t len;
+{
+  ssize_t r;
+
+  while ((r = read (fd, buf, len)) < 0 && errno == EINTR)
+    ;
+  return r;
+}
+
+/* Read LEN bytes from FD into BUF.  Retry the read on EINTR, up to three
+   interrupts.  Any other error causes the loop to break. */
+
+#ifdef NUM_INTR
+#  undef NUM_INTR
+#endif
+#define NUM_INTR 3
+
+ssize_t
+zreadretry (fd, buf, len)
+     int fd;
+     char *buf;
+     size_t len;
+{
+  ssize_t r;
+  int nintr;
+
+  for (nintr = 0; ; )
+    {
+      r = read (fd, buf, len);
+      if (r >= 0)
+       return r;
+      if (r == -1 && errno == EINTR)
+       {
+         if (++nintr >= NUM_INTR)
+           return -1;
+         continue;
+       }
+      return r;
+    }
+}
+
+/* Call read(2) and allow it to be interrupted.  Just a stub for now. */
+ssize_t
+zreadintr (fd, buf, len)
+     int fd;
+     char *buf;
+     size_t len;
+{
+  return (read (fd, buf, len));
+}
+
+/* Read one character from FD and return it in CP.  Return values are as
+   in read(2).  This does some local buffering to avoid many one-character
+   calls to read(2), like those the `read' builtin performs. */
+
+static char lbuf[128];
+static size_t lind, lused;
+
+ssize_t
+zreadc (fd, cp)
+     int fd;
+     char *cp;
+{
+  ssize_t nr;
+
+  if (lind == lused || lused == 0)
+    {
+      nr = zread (fd, lbuf, sizeof (lbuf));
+      lind = 0;
+      if (nr <= 0)
+       {
+         lused = 0;
+         return nr;
+       }
+      lused = nr;
+    }
+  if (cp)
+    *cp = lbuf[lind++];
+  return 1;
+}
+
+/* Don't mix calls to zreadc and zreadcintr in the same function, since they
+   use the same local buffer. */
+ssize_t
+zreadcintr (fd, cp)
+     int fd;
+     char *cp;
+{
+  ssize_t nr;
+
+  if (lind == lused || lused == 0)
+    {
+      nr = zreadintr (fd, lbuf, sizeof (lbuf));
+      lind = 0;
+      if (nr <= 0)
+       {
+         lused = 0;
+         return nr;
+       }
+      lused = nr;
+    }
+  if (cp)
+    *cp = lbuf[lind++];
+  return 1;
+}
+
+void
+zreset ()
+{
+  lind = lused = 0;
+}
+
+/* Sync the seek pointer for FD so that the kernel's idea of the last char
+   read is the last char returned by zreadc. */
+void
+zsyncfd (fd)
+     int fd;
+{
+  off_t off, r;
+
+  off = lused - lind;
+  r = 0;
+  if (off > 0)
+    r = lseek (fd, -off, SEEK_CUR);
+if (r < 0)
+  itrace("zsyncfd: lseek (-%d) returns < 0: %s", off, strerror (errno));
+
+  if (r != -1)
+    lused = lind = 0;
+}
index 338cbdd723cd20f35b443f02d60a20bcf1595859..39edcaeb0ed66c0ff7e394294840cc471842f976 100644 (file)
Binary files a/po/af.gmo and b/po/af.gmo differ
index a15e987d3080222824519b10870dd1c0254577a8..d3a2f47152782ea5cf885eb3b6e6883735db75a2 100644 (file)
--- a/po/af.po
+++ b/po/af.po
@@ -6,59 +6,60 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2004-03-17 13:48+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
+"Language: af\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 #, fuzzy
 msgid "bad array subscript"
 msgstr "Os/2 Biskaart Skikking"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: illegal option -- %c\n"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr ""
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: kan nie %s skep nie"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -68,36 +69,36 @@ msgstr ""
 msgid "`%s': invalid alias name"
 msgstr "%s: illegal option -- %c\n"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, fuzzy, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: kan nie %s skep nie"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, fuzzy, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: bevel nie gevind nie"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, fuzzy, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: leesalleen-funksie"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr ""
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr ""
@@ -118,11 +119,16 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+#, fuzzy
+msgid "too many arguments"
+msgstr "te veel parameters"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr ""
 
@@ -131,7 +137,7 @@ msgstr ""
 msgid "line %d: "
 msgstr "3d modus"
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "besig om te skryf"
@@ -141,12 +147,7 @@ msgstr "besig om te skryf"
 msgid "%s: usage: "
 msgstr ""
 
-#: builtins/common.c:166 test.c:832
-#, fuzzy
-msgid "too many arguments"
-msgstr "te veel parameters"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, fuzzy, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: option `%s' requires an argument\n"
@@ -161,7 +162,7 @@ msgstr ""
 msgid "%s: not found"
 msgstr "%s: bevel nie gevind nie"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, fuzzy, c-format
 msgid "%s: invalid option"
 msgstr "%s: illegal option -- %c\n"
@@ -171,7 +172,7 @@ msgstr "%s: illegal option -- %c\n"
 msgid "%s: invalid option name"
 msgstr "%s: illegal option -- %c\n"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, fuzzy, c-format
 msgid "`%s': not a valid identifier"
 msgstr "Die datum is nie geldige!"
@@ -186,7 +187,7 @@ msgstr "Die sein nommer wat was gevang het"
 msgid "invalid hex number"
 msgstr "Die sein nommer wat was gevang het"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 #, fuzzy
 msgid "invalid number"
 msgstr "Die sein nommer wat was gevang het"
@@ -201,7 +202,7 @@ msgstr ""
 msgid "`%s': not a pid or valid job spec"
 msgstr ""
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, fuzzy, c-format
 msgid "%s: readonly variable"
 msgstr "Veranderlike boom"
@@ -278,26 +279,26 @@ msgstr ""
 msgid "%s: ambiguous job spec"
 msgstr "%s: dubbelsinnige herroetering"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -309,7 +310,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: leesalleen-funksie"
@@ -319,7 +320,7 @@ msgstr "%s: leesalleen-funksie"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -348,8 +349,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: kan nie %s skep nie"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: is 'n gids"
@@ -364,8 +365,7 @@ msgstr "%s: kan nie 'n bin
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kan nie 'n binêre lêer uitvoer nie"
@@ -479,7 +479,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, fuzzy, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: heelgetal-uitdrukking is verwag\n"
@@ -503,7 +503,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr "Onbekende fout %d"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 #, fuzzy
 msgid "expression expected"
 msgstr "Bools uitdrukking verwag"
@@ -513,12 +513,12 @@ msgstr "Bools uitdrukking verwag"
 msgid "%s: not an indexed array"
 msgstr "Veranderlike boom"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -547,31 +547,31 @@ msgstr "Veranderlike boom"
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: illegal option -- %c\n"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr ""
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -665,17 +665,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, fuzzy, c-format
 msgid "read error: %d: %s"
 msgstr "pypfout: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -683,17 +683,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, fuzzy, c-format
 msgid "%s: cannot unset"
 msgstr "%s: kan nie %s skep nie"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, fuzzy, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: kan nie %s skep nie"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, fuzzy, c-format
 msgid "%s: not an array variable"
 msgstr "Veranderlike boom"
@@ -708,11 +708,11 @@ msgstr "%s: leesalleen-funksie"
 msgid "shift count"
 msgstr "Shift"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -755,7 +755,7 @@ msgstr "%s: leesalleen-funksie"
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -765,27 +765,27 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, fuzzy, c-format
 msgid "`%c': bad command"
 msgstr "%s: illegal option -- %c\n"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, fuzzy, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: kan nie %s skep nie"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 #, fuzzy
 msgid "limit"
 msgstr "Filter beperk:"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, fuzzy, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: kan nie %s skep nie"
@@ -805,7 +805,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -819,27 +819,27 @@ msgstr "Bevelre
 msgid "Aborting..."
 msgstr ""
 
-#: error.c:406
+#: error.c:410
 #, fuzzy
 msgid "unknown command error"
 msgstr "Onbekende fout %d"
 
-#: error.c:407
+#: error.c:411
 #, fuzzy
 msgid "bad command type"
 msgstr "bevelnaam"
 
-#: error.c:408
+#: error.c:412
 #, fuzzy
 msgid "bad connector"
 msgstr "foutiewe verbinder`%d'"
 
-#: error.c:409
+#: error.c:413
 #, fuzzy
 msgid "bad jump"
 msgstr "Spring na:"
 
-#: error.c:447
+#: error.c:451
 #, fuzzy, c-format
 msgid "%s: unbound variable"
 msgstr "Veranderlike boom"
@@ -854,111 +854,126 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "pypfout: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: bevel nie gevind nie"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: is 'n gids"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kan nie 'n binêre lêer uitvoer nie"
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5296
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "kan nie fd %d na fd 0 dupliseer nie: %s"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr ""
 
-#: expr.c:280
+#: expr.c:282
 #, fuzzy
 msgid "recursion stack underflow"
 msgstr "Stapel grootte verhoog"
 
-#: expr.c:422
+#: expr.c:430
 #, fuzzy
 msgid "syntax error in expression"
 msgstr "Sintaks fout in patroon"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr ""
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 #, fuzzy
 msgid "division by 0"
 msgstr "devisie by nul."
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:564
+#: expr.c:589
 #, fuzzy
 msgid "`:' expected for conditional expression"
 msgstr "Soek die lêer vir 'n uitdrukking"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 #, fuzzy
 msgid "missing `)'"
 msgstr "Ontbrekende '>'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 #, fuzzy
 msgid "syntax error: operand expected"
 msgstr "Onverwagte einde van lêer tydens inlees van hulpbron."
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, fuzzy, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 "Hierdie is die fout boodskap van %1:\n"
 "%2"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "waarde te groot vir basis"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "%s: heelgetal-uitdrukking is verwag\n"
@@ -968,167 +983,167 @@ msgstr "%s: heelgetal-uitdrukking is verwag\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "Kan nie die program uitvoer nie:"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, fuzzy, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "kan nie fd %d na fd 0 dupliseer nie: %s"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "E108: Geen veranderlike: \"%s\""
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Sein kwaliteit:"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Klaar"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 #, fuzzy
 msgid "Stopped"
 msgstr "Op gehou"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Op gehou"
 
-#: jobs.c:1472
+#: jobs.c:1474
 #, fuzzy
 msgid "Running"
 msgstr "aktief"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Klaar(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Verlaat %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Onbekende status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, fuzzy, c-format
 msgid "(core dumped) "
 msgstr "Kern Ontwikkelaar"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "Aktiveer nou dadelik"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "Fout in die skryf van %s"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, fuzzy, c-format
 msgid "%s: job has terminated"
 msgstr "Die bediener beëindig Die verbinding."
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "3d modus"
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, fuzzy, c-format
 msgid " (core dumped)"
 msgstr "Kern Ontwikkelaar"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, fuzzy, c-format
 msgid "(wd now: %s)\n"
 msgstr "Aktiveer nou dadelik"
 
-#: jobs.c:3609
+#: jobs.c:3642
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "Inisialisering van OpenGL het misluk."
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "Inisialisering van OpenGL het misluk."
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "geen taakbeheer in hierdie dop nie"
 
@@ -1196,7 +1211,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1219,22 +1234,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr ""
@@ -1269,122 +1284,122 @@ msgstr "Onverwagte einde van l
 msgid "syntax error: `((%s))'"
 msgstr "sintaksfout"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr ""
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4034
+#: parse.y:4047
 #, fuzzy
 msgid "syntax error in conditional expression"
 msgstr "Sintaks fout in patroon"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 #, fuzzy
 msgid "expected `)'"
 msgstr "')' is verwag\n"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, fuzzy, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "%s: binêre operator is verwag\n"
 
-#: parse.y:4198
+#: parse.y:4211
 #, fuzzy
 msgid "conditional binary operator expected"
 msgstr "%s: binêre operator is verwag\n"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, fuzzy, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "Soek die lêer vir 'n uitdrukking"
 
-#: parse.y:4238
+#: parse.y:4251
 #, fuzzy, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "Soek die lêer vir 'n uitdrukking"
 
-#: parse.y:4242
+#: parse.y:4255
 #, fuzzy, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "Soek die lêer vir 'n uitdrukking"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:5584
+#: parse.y:5608
 #, fuzzy, c-format
 msgid "syntax error near `%s'"
 msgstr "Sintaks fout in patroon"
 
-#: parse.y:5594
+#: parse.y:5618
 #, fuzzy
 msgid "syntax error: unexpected end of file"
 msgstr "Onverwagte einde van lêer tydens inlees van hulpbron."
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "sintaksfout"
 
-#: parse.y:5656
+#: parse.y:5680
 #, fuzzy, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Gebruik Kaart na Los Tronk"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1394,26 +1409,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1451,77 +1466,77 @@ msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 #, fuzzy
 msgid "redirection error: cannot duplicate fd"
 msgstr "Pypfout.\n"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr ""
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr ""
 
-#: shell.c:884
+#: shell.c:888
 #, fuzzy, c-format
 msgid "%c%c: invalid option"
 msgstr "%s: illegal option -- %c\n"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Ek het nie 'n naam nie!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, fuzzy, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "bedryfstelselkernweergawe"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
 
-#: shell.c:1798
+#: shell.c:1810
 #, fuzzy
 msgid "GNU long options:\n"
 msgstr "Gnu C Saamsteller Opsies"
 
-#: shell.c:1802
+#: shell.c:1814
 #, fuzzy
 msgid "Shell options:\n"
 msgstr "opneem opsies"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 
-#: shell.c:1818
+#: shell.c:1830
 #, fuzzy, c-format
 msgid "\t-%s or -o option\n"
 msgstr ""
 "Gebruik so: %s LÊER \n"
 "   of:  %s OPSIE\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1727,87 +1742,87 @@ msgstr "Sein kwaliteit:"
 msgid "Unknown Signal #%d"
 msgstr "Sein kwaliteit:"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, fuzzy, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "--Geen reëls in buffer--"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 #, fuzzy
 msgid "cannot make pipe for process substitution"
 msgstr "Woord Substitusie"
 
-#: subst.c:5027
+#: subst.c:5039
 #, fuzzy
 msgid "cannot make child for process substitution"
 msgstr "Woord Substitusie"
 
-#: subst.c:5072
+#: subst.c:5084
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "Kan nie oopmaak vir skrip-afvoer nie: \""
 
-#: subst.c:5074
+#: subst.c:5086
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "Kan nie oopmaak vir skrip-afvoer nie: \""
 
-#: subst.c:5092
+#: subst.c:5104
 #, fuzzy, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "Kan nie oopmaak vir skrip-afvoer nie: \""
 
-#: subst.c:5284
+#: subst.c:5296
 #, fuzzy
 msgid "cannot make pipe for command substitution"
 msgstr "Woord Substitusie"
 
-#: subst.c:5322
+#: subst.c:5334
 #, fuzzy
 msgid "cannot make child for command substitution"
 msgstr "Woord Substitusie"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr ""
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, fuzzy, c-format
 msgid "%s: substring expression < 0"
 msgstr "ongeldige uitdrukking"
 
-#: subst.c:7271
+#: subst.c:7284
 #, fuzzy, c-format
 msgid "%s: bad substitution"
 msgstr "Woord Substitusie"
 
-#: subst.c:7347
+#: subst.c:7361
 #, fuzzy, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "Kan nie soek 'n handtekening in hierdie boodskap!"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "--Geen reëls in buffer--"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1847,78 +1862,78 @@ msgstr "%s: bin
 msgid "missing `]'"
 msgstr "Ontbrekende '>'"
 
-#: trap.c:207
+#: trap.c:209
 #, fuzzy
 msgid "invalid signal number"
 msgstr "Die sein nommer wat was gevang het"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr ""
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: kan nie %s skep nie"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1992,7 +2007,7 @@ msgstr "Volle Naam:"
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2222,7 +2237,7 @@ msgstr "Tipe die naam van die %1 speler."
 
 #: builtins.c:169
 #, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "Grootte beperk (Kb):"
 
 #: builtins.c:172
@@ -2232,7 +2247,7 @@ msgstr "Belmetode"
 
 #: builtins.c:175
 #, fuzzy
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr "Wag:"
 
 #: builtins.c:179
@@ -2424,12 +2439,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2440,7 +2457,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2451,7 +2468,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2465,7 +2482,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2481,7 +2498,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2504,13 +2521,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2518,7 +2540,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2534,7 +2556,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2544,7 +2566,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2552,7 +2574,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2560,7 +2582,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2579,7 +2601,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2617,14 +2639,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2639,11 +2661,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2655,6 +2679,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2670,7 +2695,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2683,7 +2708,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2710,7 +2735,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2722,7 +2747,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2763,7 +2788,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2786,7 +2811,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2794,7 +2819,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2803,7 +2828,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2833,7 +2858,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2845,7 +2870,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2859,7 +2884,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2883,7 +2908,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2905,7 +2930,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2939,7 +2964,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2963,7 +2988,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2980,7 +3005,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3002,7 +3027,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3047,7 +3072,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3084,18 +3109,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3107,7 +3135,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3173,7 +3201,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3192,7 +3220,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3212,7 +3240,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3231,7 +3259,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3251,7 +3279,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3262,7 +3290,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3276,7 +3304,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3290,7 +3318,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3371,7 +3399,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3379,7 +3407,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3391,7 +3419,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3435,7 +3463,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3465,7 +3493,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3494,6 +3522,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3509,7 +3540,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3527,24 +3558,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3558,7 +3589,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3571,7 +3602,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3588,7 +3619,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3608,7 +3639,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3624,7 +3655,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3635,7 +3666,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3656,7 +3687,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3667,7 +3698,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3678,7 +3709,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3691,7 +3722,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3705,7 +3736,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3716,7 +3747,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3730,7 +3761,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3741,7 +3772,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3769,7 +3800,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3823,7 +3854,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3854,7 +3885,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3881,7 +3912,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3910,7 +3941,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3931,7 +3962,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3949,8 +3980,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3964,7 +3995,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3991,7 +4022,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -4004,7 +4035,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4035,7 +4066,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4076,7 +4107,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index e54dabd4b5586a20d962f8d8b7fa03b911447e9c..cc8efa3a7a308e15a4cb7d452e8cfbbb0cca3556 100644 (file)
@@ -8,59 +8,60 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr ""
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr ""
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr ""
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr ""
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -70,36 +71,36 @@ msgstr ""
 msgid "`%s': invalid alias name"
 msgstr ""
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr ""
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr ""
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr ""
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr ""
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr ""
@@ -119,11 +120,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr ""
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr ""
 
@@ -132,7 +137,7 @@ msgstr ""
 msgid "line %d: "
 msgstr ""
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr ""
@@ -142,11 +147,7 @@ msgstr ""
 msgid "%s: usage: "
 msgstr ""
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr ""
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr ""
@@ -161,7 +162,7 @@ msgstr ""
 msgid "%s: not found"
 msgstr ""
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr ""
@@ -171,7 +172,7 @@ msgstr ""
 msgid "%s: invalid option name"
 msgstr ""
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr ""
@@ -184,7 +185,7 @@ msgstr ""
 msgid "invalid hex number"
 msgstr ""
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr ""
 
@@ -198,7 +199,7 @@ msgstr ""
 msgid "`%s': not a pid or valid job spec"
 msgstr ""
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr ""
@@ -270,26 +271,26 @@ msgstr ""
 msgid "%s: ambiguous job spec"
 msgstr ""
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -301,7 +302,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr ""
@@ -311,7 +312,7 @@ msgstr ""
 msgid "%s: cannot destroy array variables in this way"
 msgstr ""
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -340,8 +341,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr ""
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr ""
@@ -356,8 +357,7 @@ msgstr ""
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr ""
@@ -470,7 +470,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr ""
@@ -493,7 +493,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr ""
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr ""
 
@@ -502,12 +502,12 @@ msgstr ""
 msgid "%s: not an indexed array"
 msgstr ""
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -535,31 +535,31 @@ msgstr ""
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr ""
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr ""
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -650,17 +650,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr ""
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -668,17 +668,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr ""
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr ""
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr ""
@@ -692,11 +692,11 @@ msgstr ""
 msgid "shift count"
 msgstr ""
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -738,7 +738,7 @@ msgstr ""
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -748,26 +748,26 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr ""
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr ""
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr ""
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr ""
@@ -786,7 +786,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -800,23 +800,23 @@ msgstr ""
 msgid "Aborting..."
 msgstr ""
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr ""
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr ""
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr ""
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr ""
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr ""
@@ -831,102 +831,117 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr ""
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr ""
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr ""
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr ""
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr ""
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr ""
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr ""
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr ""
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr ""
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr ""
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr ""
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr ""
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr ""
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr ""
@@ -935,163 +950,163 @@ msgstr ""
 msgid "getcwd: cannot access parent directories"
 msgstr ""
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr ""
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1158,7 +1173,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1181,22 +1196,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr ""
@@ -1227,118 +1242,118 @@ msgstr ""
 msgid "syntax error: `((%s))'"
 msgstr ""
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr ""
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr ""
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr ""
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr ""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr ""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr ""
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr ""
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1348,26 +1363,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1405,72 +1420,72 @@ msgstr ""
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr ""
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr ""
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr ""
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr ""
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr ""
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr ""
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr ""
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr ""
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr ""
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1644,83 +1659,83 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr ""
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr ""
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr ""
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1757,77 +1772,77 @@ msgstr ""
 msgid "missing `]'"
 msgstr ""
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr ""
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr ""
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr ""
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1899,7 +1914,7 @@ msgstr ""
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2094,7 +2109,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2102,7 +2117,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2284,12 +2299,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2300,7 +2317,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2311,7 +2328,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2325,7 +2342,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2341,7 +2358,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2364,13 +2381,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2378,7 +2400,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2394,7 +2416,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2404,7 +2426,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2412,7 +2434,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2420,7 +2442,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2439,7 +2461,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2477,14 +2499,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2499,11 +2521,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2515,6 +2539,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2530,7 +2555,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2543,7 +2568,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2570,7 +2595,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2582,7 +2607,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2623,7 +2648,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2646,7 +2671,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2654,7 +2679,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2663,7 +2688,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2693,7 +2718,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2705,7 +2730,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2719,7 +2744,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2743,7 +2768,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2765,7 +2790,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2799,7 +2824,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2823,7 +2848,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2840,7 +2865,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2862,7 +2887,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2907,7 +2932,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2944,18 +2969,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2967,7 +2995,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3033,7 +3061,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3052,7 +3080,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3072,7 +3100,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3091,7 +3119,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3111,7 +3139,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3122,7 +3150,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3136,7 +3164,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3150,7 +3178,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3231,7 +3259,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3239,7 +3267,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3251,7 +3279,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3295,7 +3323,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3325,7 +3353,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3354,6 +3382,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3369,7 +3400,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3387,24 +3418,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3418,7 +3449,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3431,7 +3462,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3448,7 +3479,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3468,7 +3499,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3484,7 +3515,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3495,7 +3526,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3516,7 +3547,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3527,7 +3558,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3538,7 +3569,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3551,7 +3582,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3565,7 +3596,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3576,7 +3607,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3590,7 +3621,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3601,7 +3632,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3629,7 +3660,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3683,7 +3714,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3714,7 +3745,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3741,7 +3772,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3770,7 +3801,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3791,7 +3822,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3809,8 +3840,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3824,7 +3855,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3851,7 +3882,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3864,7 +3895,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3895,7 +3926,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -3936,7 +3967,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index d6a7faf6373e6f88bd3b7aace79857d49910b786..692ca52f5579e76e0ea020139da10bd792b12e1b 100644 (file)
Binary files a/po/bg.gmo and b/po/bg.gmo differ
index 757a0343d56b552d7329e40255ca75548a7f1803..9e3a77ce21a0c0f86b39397dbc51d8209ac4fa90 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,61 +7,62 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2007-07-26 07:18+0300\n"
 "Last-Translator: Alexander Shopov <ash@contact.bg>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"Language: bg\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "неправилен индекс на масив"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: грешно име на действие"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: не може да се присвоява на нецифров индекс"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: не може да се създаде: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 "изпълнение на команда на Юникс от bash: не може да се открие подредбата на\n"
 "функциите на клавишите за командата"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: първият непразен знак не е „\"“"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "в %2$s липсва затварящ знак „%1$c“"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: разделителят двоеточие липсва"
@@ -71,36 +72,36 @@ msgstr "%s: разделителят двоеточие липсва"
 msgid "`%s': invalid alias name"
 msgstr "„%s“: грешно име на подредбата на функциите на клавишите"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s“: грешно име на подредбата на функциите на клавишите"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: не може да се прочете: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "„%s“: не може да се премахне присвояване"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "„%s“: непознато име на функция"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s не може да се зададе на никой клавиш.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s може да се извика чрез "
@@ -121,11 +122,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr "Връща контекста на текущото извикване на подпрограма."
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "Променливата $HOME не зададена"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "прекалено много аргументи"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "Променливата $OLDPWD не е зададена"
 
@@ -134,7 +139,7 @@ msgstr "Променливата $OLDPWD не е зададена"
 msgid "line %d: "
 msgstr ""
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "%s: предупреждение: "
@@ -144,11 +149,7 @@ msgstr "%s: предупреждение: "
 msgid "%s: usage: "
 msgstr "%s: предупреждение: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "прекалено много аргументи"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: опцията изисква аргумент"
@@ -163,7 +164,7 @@ msgstr "%s: изисква се числов аргумент"
 msgid "%s: not found"
 msgstr "%s: не е открит"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: грешна опция"
@@ -173,7 +174,7 @@ msgstr "%s: грешна опция"
 msgid "%s: invalid option name"
 msgstr "%s: грешно име на опция"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "„%s“: грешен идентификатор"
@@ -188,7 +189,7 @@ msgstr "неправилен номер на сигнал"
 msgid "invalid hex number"
 msgstr "грешно число"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "грешно число"
 
@@ -202,7 +203,7 @@ msgstr "%s: грешно указване на сигнал"
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s“: неправилен идентификатор на процес или задача"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: променлива с права само за четене"
@@ -274,26 +275,26 @@ msgstr "%s: грешка при получаването на текущата 
 msgid "%s: ambiguous job spec"
 msgstr "%s: нееднозначно указана задача"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: грешно име на действие"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: не е указано дописване"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "предупреждение: опцията „-F“ може да не работи според очакванията ви"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "предупреждение: опцията „-C“ може да не работи според очакванията ви"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -305,7 +306,7 @@ msgstr "може да се използва само във функция"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f“ не може да се използва за създаването на функции"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: функция с права само за четене"
@@ -315,7 +316,7 @@ msgstr "%s: функция с права само за четене"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: променливите за масиви не могат да се унищожават така"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -344,8 +345,8 @@ msgstr "%s: не е зареден динамично"
 msgid "%s: cannot delete: %s"
 msgstr "%s: не може да се изтрие: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: е директория"
@@ -360,8 +361,7 @@ msgstr "%s: не е обикновен файл"
 msgid "%s: file is too large"
 msgstr "%s: файлът е прекалено голям"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: двоичният файл не може да бъде изпълнен"
@@ -485,7 +485,7 @@ msgstr "не може да се ползва едновременно повеч
 msgid "history position"
 msgstr "позиция в историята"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: неуспешно заместване чрез историята"
@@ -508,7 +508,7 @@ msgstr "%s: аргументите трябва да са идентификат
 msgid "Unknown error"
 msgstr "Неизвестна грешка"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "очаква се израз"
 
@@ -517,12 +517,12 @@ msgstr "очаква се израз"
 msgid "%s: not an indexed array"
 msgstr "%s: не е променлива за масив"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: грешно указване на файловия дескриптор"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: грешен файлов дескриптор: %s"
@@ -551,31 +551,31 @@ msgstr "%s: не е променлива за масив"
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s“: липсва форматиращ знак"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: грешно указване на изтичането на времето"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c“: грешен форматиращ знак"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, fuzzy, c-format
 msgid "warning: %s: %s"
 msgstr "%s: предупреждение: "
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "липсва шестнадесетична цифра за \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "липсва шестнадесетична цифра за \\x"
@@ -728,17 +728,17 @@ msgstr ""
 "\n"
 "    Стекът с директориите се визуализира с командата „dirs“."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: грешно указване на изтичането на времето"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "грешка при четене: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 "„return“ е възможен само от функция или изпълнен в текущата обвивка скрипт"
@@ -748,17 +748,17 @@ msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 "не може едновременно да се премахват задаванията на функция и променлива"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: не може да се премахне"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: не може да се премахне: %s е само за четене"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: не е променлива за масив"
@@ -772,12 +772,12 @@ msgstr "%s: не е функция"
 msgid "shift count"
 msgstr "брой на преместванията"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 "не може едновременно да се задават и да се премахват опции на обвивката"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: грешно име на опция на обвивката"
@@ -819,7 +819,7 @@ msgstr "%s е функция\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s е вградена команда в обвивката\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s е %s\n"
@@ -829,26 +829,26 @@ msgstr "%s е %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s е хеширан (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: неправилен аргумент за ограничение"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "„%c“: неправилна команда"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: ограничението не може да бъде получено: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr ""
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: ограничението не може да бъде променено: %s"
@@ -867,7 +867,7 @@ msgstr "„%c“: неправилен оператор за описателе
 msgid "`%c': invalid symbolic mode character"
 msgstr "„%c“: неправилен знак за описателен режим"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -881,23 +881,23 @@ msgstr "последна команда: %s\n"
 msgid "Aborting..."
 msgstr "Преустановяване…"
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "неизвестна грешка в команда"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "неправилен вид команда"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "лоша връзка"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "неправилен преход"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: променлива без стойност"
@@ -914,105 +914,120 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "стандартният вход от /dev/null не може да бъде пренасочен: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "в променливата $TIMEFORMAT: „%c“: грешен форматиращ знак"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "грешка при запис: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 "%s: ограничение: в имената на командите не може да присъства знакът „/“"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: командата не е открита"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s е %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: лош интерпретатор"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: двоичният файл не може да бъде изпълнен"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s е вградена команда в обвивката\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "файловият дескриптор %d не може да се дублира като дескриптор %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "максималният брой нива за рекурсия в израз бяха преминати"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "отрицателно препълване на стека за рекурсии"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "синтактична грешка в израз"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "опит за присвояване на стойност на нещо, което не е променлива"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "деление на 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "програмна грешка: неправилна лексема за присвояване на израз"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "за условен израз се изисква „:“"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "степента е по-малка от 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "очаква се идентификатор след предварително увеличаване или намаляване"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "липсва „)“"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "синтактична грешка: очаква се оператор"
 
-#: expr.c:1284
+#: expr.c:1353
 #, fuzzy
 msgid "syntax error: invalid arithmetic operator"
 msgstr "синтактична грешка: изисква се аритметичен израз"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "грешна аритметична основа на бройна система"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "стойността е прекалено голяма за основата"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "%s: очаква се целочислен израз"
@@ -1021,167 +1036,167 @@ msgstr "%s: очаква се целочислен израз"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: родителските директории не могат да бъдат достъпени"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "не може да се изчисти режимът без забавяне на файловия дескриптор %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "не може да се задели нов файлов дескриптор за вход на bash от дескриптор %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 "запазване на входа на bash: вече съществува буфер за новия файлов дескриптор "
 "%d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "изтриване на спряната задача %d в групата процеси %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 "описателен идентификатор на процес: %ld: няма такъв идентификатор на процес"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "изчакване: процесът с идентификатор %ld не е дъщерен на тази обвивка"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "изчакване: липсват данни за процес с идентификатор %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "изчакване на задача: задачата %d е спряна"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: задачата е приключила"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: задача %d вече е във фонов режим"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: предупреждение: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "в тази обвивка няма управление на задачите"
 
@@ -1259,7 +1274,7 @@ msgstr "регистриране на презаделяне: %p вече е в
 msgid "register_free: %p already in table as free?\n"
 msgstr "регистриране на свободни: %p вече е в таблицата като свободен?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "грешна основа на бройна система"
 
@@ -1282,22 +1297,22 @@ msgstr "%s: неправилно указан мрежов път"
 msgid "network operations not supported"
 msgstr "не се поддържат мрежови операции"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "презаделяне на памет: %s:%d: %lu байта не могат да се заделят"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "презаделяне на памет: %s:%d: %lu байта не могат да се заделят"
@@ -1328,120 +1343,120 @@ msgstr "синтактична грешка: неочакван знак „;“
 msgid "syntax error: `((%s))'"
 msgstr "синтактична грешка: „((%s))“"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "вътрешен документ с „<<“: неправилен вид инструкция %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 "пренасочване: инструкцията за пренасочване „%d“ е извън допустимия диапазон"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 "неочакван знак за край на файл „EOF“, а се очакваше съответстващ знак „%c“"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "неочакван знак за край на файл „EOF“, а се очакваше „]]“"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "синтактична грешка в условен израз: неочаквана лексема „%s“"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "синтактична грешка в условен израз"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "неочаквана лексема „%s“, а се очакваше знакът „)“"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "очакваше се „)“"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "неочакван аргумент „%s“ за унарен условен оператор"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "неочакван аргумент за унарен условен оператор"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "неочаквана лексема „%s“, очакваше се бинарен условен оператор"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "очакваше се бинарен условен оператор"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "неочакван аргумент „%s“ за бинарен условен оператор"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "неочакван аргумент за бинарен условен оператор"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "неочаквана лексема „%c“ в условна команда"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "неочаквана лексема „%s“ в условна команда"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "неочаквана лексема %d в условна команда"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "синтактична грешка в близост до неочакваната лексема „%s“"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "синтактична грешка в близост до „%s“"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "синтактична грешка: неочакван край на файл"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "синтактична грешка"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Използвайте „%s“, за да излезете от обвивката.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "неочакван знак за край на файл „EOF“, очакваше се знакът „)“"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "дописване: функцията „%s“ не е открита"
@@ -1452,26 +1467,26 @@ msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 "вмъкване на завършване на команда: %s указване на команда, което е NULL"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "команда за печат: лош конектор „%d“"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: грешен файлов дескриптор: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "отпечатване: „%c“: неправилен форматиращ знак"
@@ -1509,33 +1524,33 @@ msgstr "%s: на член от масив не може да се присвои
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port не се поддържа, ако няма поддръжка на мрежа"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "грешка при пренасочване: файловият дескриптор не може да бъде дублиран"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "не е открита директорията /tmp. Създайте я!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp трябва да е директория"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: неправилна опция"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Не може да се получи името на текущия потребител!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr ""
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1544,43 +1559,43 @@ msgstr ""
 "Употреба:    %s [дълга опция на GNU] [опция] …\n"
 "             %s [дълга опция на GNU] [опция] файл-скрипт …\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Дълги опции на GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Опции на обвивката:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 "    -irsD или -c команда, или -O къса_опция        (само при стартиране)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "    -%s или -o опция\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "За повече информация за опциите на обвивката въведете „%s -c \"help set\"“.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "За повече информация за вградените в обвивката команди въведете „%s -c "
 "help“.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "За да докладвате грешки използвайте командата „bashbug“.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "маска за обработката на сигнали: %d: невалидна операция"
@@ -1756,85 +1771,85 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "лошо заместване: липсва затварящ знак „%s“ в %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: на член от масив не може да се присвои списък"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "не може да се създаде програмен канал за заместване на процеси"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "не може да се създаде дъщерен процес за заместване на процеси"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "именуваният програмен канал %s не може да се отвори за четене"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "именуваният програмен канал %s не може да се отвори за запис"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 "именуваният програмен канал %s не може да се\n"
 "дублира като файловия дескриптор %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "не може да се създаде програмен канал за заместване на команди"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "не може да се създаде дъщерен процес за заместване на команди"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "заместване на команди: каналът не може да се дублира като fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: аргументът е null или не е зададен"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: изразът от подниза е < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: лошо заместване"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: не може да се задава по този начин"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "лошо заместване: липсва затварящ знак „%s“ в %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "няма съвпадение: %s"
@@ -1871,17 +1886,17 @@ msgstr "%s: очаква се бинарен оператор"
 msgid "missing `]'"
 msgstr "липсва „]“"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "неправилен номер на сигнал"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 "стартиране на предстоящите капани: неправилна стойност в trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1889,75 +1904,75 @@ msgstr ""
 "стартиране на предстоящите капани: обработката на сигнали е SIG_DFL.\n"
 "%d (%s) е преизпратено на текущата обвивка"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "обработка на капани: неправилен сигнал %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "грешка при внасянето на дефиницията на функция за „%s“"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "нивото на обвивката (%d) е прекалено голямо. Задава се да е 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 "създаване на локална променлива: липсва контекст на функция в текущата "
 "област\n"
 "на видимост"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 "всички локални променливи: липсва контекст на функция в текущата област на\n"
 "видимост"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: аргументът е null или не е зададен"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "неправилен знак на позиция %d в низа за изнасяне за %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "липсва „=“ в низа за изнасяне за %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 "изваждане на контекст на променливи: в началото на структурата за променливи "
 "на\n"
 "обвивката (shell_variables) е нещо, което не е контекст на функция"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 "изваждане на контекст на променливи: липсва контекст за глобални променливи\n"
 "(global_variables)"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 "изваждане на област: последният елемент структурата за променливи на "
 "обвивката\n"
 "(shell_variables) не е временна област в обкръжението"
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: не може да се отвори: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: грешен файлов дескриптор: %s"
@@ -2034,7 +2049,7 @@ msgstr ""
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2232,7 +2247,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2240,7 +2255,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2438,6 +2453,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2488,7 +2505,7 @@ msgstr ""
 "се\n"
 "                           използва за вход."
 
-#: builtins.c:326
+#: builtins.c:328
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2502,7 +2519,7 @@ msgstr ""
 " Продължение със следващата итерация от цикъл ползващ FOR, WHILE или UNTIL.\n"
 "    Ако е указан N, се продължава от N-тия обхващащ цикъл."
 
-#: builtins.c:338
+#: builtins.c:340
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2516,7 +2533,7 @@ msgstr ""
 " Продължение със следващата итерация от цикъл ползващ FOR, WHILE или UNTIL.\n"
 "    Ако е указан N, се продължава от N-тия обхващащ цикъл."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2530,7 +2547,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2556,7 +2573,7 @@ msgstr ""
 "изведе\n"
 "    информация.  Най-горната рамка е 0."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2580,13 +2597,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2608,7 +2630,7 @@ msgstr ""
 "    фактическата подредба на директориите, вместо да се следват символните\n"
 "    връзки.  Опцията „-L“ налага следването на символните връзки."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2624,7 +2646,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2635,7 +2657,7 @@ msgid ""
 "    Always succeeds."
 msgstr " Без ефект - командата нищо не прави.  Връща се изходен код 0."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2643,7 +2665,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2651,7 +2673,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2670,7 +2692,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2739,14 +2761,14 @@ msgstr ""
 "    функция ИМЕната стават локални, както при използването на командата "
 "„local“."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2761,12 +2783,14 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2778,6 +2802,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2812,7 +2837,7 @@ msgstr ""
 "    Можете изрично да спрете интерпретирането на горните знаци с опцията „-"
 "E“."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2825,7 +2850,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2852,7 +2877,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2864,7 +2889,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2947,7 +2972,7 @@ msgstr ""
 "са\n"
 "    дадени повече аргументи, те биват анализирани вместо това."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2970,7 +2995,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2981,7 +3006,7 @@ msgstr ""
 " Изход от обвивката с код N.  Ако N е изпуснат, то изходният код е този на\n"
 "     последната изпълнена команда."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2990,7 +3015,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -3046,7 +3071,7 @@ msgstr ""
 "когато\n"
 "    се въведе само „-r“, ще се изпълни последната команда."
 
-#: builtins.c:743
+#: builtins.c:751
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -3061,7 +3086,7 @@ msgstr ""
 " Изважда ЗАДАЧА от фонов режим и я прави текуща задача.  Ако липсва\n"
 "    аргумент ЗАДАЧА, се използва текущата задача според обвивката."
 
-#: builtins.c:758
+#: builtins.c:766
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -3078,7 +3103,7 @@ msgstr ""
 " Поставя всяка ЗАДАЧА във фонов режим, все едно е била стартирана с „&“.\n"
 "    Ако липсва аргумент ЗАДАЧА, се използва текущата задача според обвивката."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3102,7 +3127,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3124,7 +3149,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3192,7 +3217,7 @@ msgstr ""
 "времето не\n"
 "    се записва."
 
-#: builtins.c:857
+#: builtins.c:865
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3233,7 +3258,7 @@ msgstr ""
 "като\n"
 "    аргументи, се заменят с идентификатора на водача на групата процеси."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3250,7 +3275,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3282,7 +3307,7 @@ msgstr ""
 "    за вас брой процеси, няма да ви се налага да пуснете още един процес,\n"
 "    за да убиете друг."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3366,7 +3391,7 @@ msgstr ""
 "    Ако последният АРГУМЕНТ се изчислява като 0, „let“ връща 1. В\n"
 "    противен случай - връща 0."
 
-#: builtins.c:971
+#: builtins.c:979
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3404,14 +3429,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 " От стандартния вход или от файловия дескриптор ФД, ако е използвана опцията "
@@ -3450,7 +3478,7 @@ msgstr ""
 "    ИНТЕРВАЛът за въвеждане или е зададен неправилен файлов дескриптор като\n"
 "    аргумент на „-u“."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3462,7 +3490,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3529,7 +3557,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3634,7 +3662,7 @@ msgstr ""
 "    съответно на $1, $2,… $n.  Ако не са зададени АРГументи, се извеждат\n"
 "    всички променливи на средата."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3654,7 +3682,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3673,7 +3701,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3693,7 +3721,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3704,7 +3732,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3725,7 +3753,7 @@ msgstr ""
 "    са зададени АРГУМЕНТИ, те се превръщат в позиционни аргументи при\n"
 "    изпълнението на ФАЙЛа."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3739,7 +3767,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3894,7 +3922,7 @@ msgstr ""
 "                                    „-eq“ (=),  „-ne“ (!=), „-lt“ (<),\n"
 "                                    „-le“ (<=), „-gt“ (>) , „-ge“ (>=)."
 
-#: builtins.c:1311
+#: builtins.c:1321
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3906,7 +3934,7 @@ msgstr ""
 "    задължително да е знакът „]“, който да съответства на отварящата скоба "
 "„[“."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3918,7 +3946,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3982,7 +4010,7 @@ msgstr ""
 "на\n"
 "    обвивката с командата „kill -signal $$“."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4012,7 +4040,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -4042,6 +4070,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4091,7 +4122,7 @@ msgstr ""
 "        - опцията „-t“, при която стойността е в секунди;\n"
 "        - опцията „-u“, при която стойността е точният брой процеси."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4109,24 +4140,32 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
+" Изчакване на указания процес и докладване за изходния код.  Ако не е "
+"зададен N,\n"
+"    всички текущо активни дъщерни процеси се изчакват и изходният код е 0.  "
+"N\n"
+"    може да е идентификатор на процес или задача.  Ако е задача, изчакват "
+"се\n"
+"    всички процеси в програмния канал на задачата."
 
-#: builtins.c:1482
+#: builtins.c:1495
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -4148,7 +4187,7 @@ msgstr ""
 "се\n"
 "    всички процеси в програмния канал на задачата."
 
-#: builtins.c:1497
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4168,7 +4207,7 @@ msgstr ""
 "    всеки елемент в ДУМИте, ИМЕто се задава да е елементът и се изпълняват\n"
 "    КОМАНДИте."
 
-#: builtins.c:1511
+#: builtins.c:1524
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -4195,7 +4234,7 @@ msgstr ""
 "се\n"
 "    изчислява да е 1."
 
-#: builtins.c:1529
+#: builtins.c:1542
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4233,7 +4272,7 @@ msgstr ""
 "    изпълняват след всеки избор до изпълняването на команда за прекъсване\n"
 "    (break)."
 
-#: builtins.c:1550
+#: builtins.c:1563
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4257,7 +4296,7 @@ msgstr ""
 "според\n"
 "    стойността на променливата на средата $TIMEFORMAT."
 
-#: builtins.c:1567
+#: builtins.c:1580
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4271,7 +4310,7 @@ msgstr ""
 " Избирателно се изпълняват КОМАНДИ на база ДУМА, която напасва на ШАБЛОН.\n"
 "    Шаблоните се разделят със знака „|“."
 
-#: builtins.c:1579
+#: builtins.c:1592
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4308,7 +4347,7 @@ msgstr ""
 "ако\n"
 "    никое тестово условие, не се е оценило като истина."
 
-#: builtins.c:1596
+#: builtins.c:1609
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4323,7 +4362,7 @@ msgstr ""
 "„while“\n"
 "    е с изходен код, който е 0."
 
-#: builtins.c:1608
+#: builtins.c:1621
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4338,7 +4377,7 @@ msgstr ""
 "„until“\n"
 "    е с изходен код, който не е 0."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4351,7 +4390,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4365,7 +4404,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4380,7 +4419,7 @@ msgstr ""
 "се\n"
 "    цял набор от команди."
 
-#: builtins.c:1660
+#: builtins.c:1673
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4400,7 +4439,7 @@ msgstr ""
 "    се изпълнява във фонов режим, все едно е била подадена като аргумент\n"
 "    на командата „bg“."
 
-#: builtins.c:1675
+#: builtins.c:1688
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4414,7 +4453,7 @@ msgstr ""
 " ИЗРАЗът се изчислява според правилата на аритметичното оценяване.\n"
 "    Еквивалентно на „let ИЗРАЗ“."
 
-#: builtins.c:1687
+#: builtins.c:1700
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4464,7 +4503,7 @@ msgstr ""
 "    „&&“ и „||“ не оценят ИЗРАЗ2, ако ИЗРАЗ1 е достатъчен за определяне на\n"
 "    стойността на израза."
 
-#: builtins.c:1713
+#: builtins.c:1726
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4593,7 +4632,7 @@ msgstr ""
 "кои\n"
 "                        команди да не се запазват в историята.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4644,7 +4683,7 @@ msgstr ""
 "    \n"
 "    Можете да изведете стека на директорията с командата „dirs“."
 
-#: builtins.c:1804
+#: builtins.c:1817
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4689,7 +4728,7 @@ msgstr ""
 "\n"
 "    Стекът с директориите се визуализира с командата „dirs“."
 
-#: builtins.c:1834
+#: builtins.c:1847
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4741,7 +4780,7 @@ msgstr ""
 "    -N  показва N-тия елемент отдясно в списъка показван от\n"
 "        командата „dirs“, когато е стартирана без опции.  Брои се от 0."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4762,7 +4801,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4781,8 +4820,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -4805,14 +4844,14 @@ msgstr ""
 "стандартните\n"
 "    форматирания описани в ръководството на printf, „%b“ предизвиква "
 "заместването\n"
-"    на екраниранията с обратно наклонени черти в съответния аргумент, а „%"
-"q“\n"
+"    на екраниранията с обратно наклонени черти в съответния аргумент, а "
+"„%q“\n"
 "    предизвиква цитирането на аргумента, така че да може да бъде използван "
 "като\n"
 "    вход за обвивката. Ако е включена опцията „-v“, изходът се поставя в\n"
 "    променливата на обвивката VAR, вместо да се извежда на стандартния изход."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4839,7 +4878,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4860,7 +4899,7 @@ msgstr ""
 "с\n"
 "    него."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4891,7 +4930,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4932,7 +4971,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 2e1552b4aed058c3ed05d6a81c442fe9a5fe118b..31ab04e966555239c07de13eacf078416b74be05 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index a707980ec225a3fb33942e0dab8007487ad41409..75c41c2af8ade41767925d2075090ad04d0c9cdc 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,58 +7,59 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2003-12-28 19:59+0100\n"
 "Last-Translator: Montxo Vicente i Sempere <montxo@alacant.com>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
+"Language: ca\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "la matriu est? mal composta"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%c%c: opci? inv?lida"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: no es pot assignar a un ?ndex que no ?s num?ric"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: no es pot crear: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -68,36 +69,36 @@ msgstr ""
 msgid "`%s': invalid alias name"
 msgstr "%c%c: opci? inv?lida"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, fuzzy, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: no es pot crear: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, fuzzy, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: no s'ha trobat l'ordre"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, fuzzy, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: funci? nom?s de lectura"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr ""
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr ""
@@ -118,11 +119,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "nombre excessiu de par?metres"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr ""
 
@@ -131,7 +136,7 @@ msgstr ""
 msgid "line %d: "
 msgstr "encaix %3d:"
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "s'est? escrivint"
@@ -141,11 +146,7 @@ msgstr "s'est? escrivint"
 msgid "%s: usage: "
 msgstr ""
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "nombre excessiu de par?metres"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, fuzzy, c-format
 msgid "%s: option requires an argument"
 msgstr "cal un par?metre per a l'opci?: -"
@@ -160,7 +161,7 @@ msgstr ""
 msgid "%s: not found"
 msgstr "%s: no s'ha trobat l'ordre"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, fuzzy, c-format
 msgid "%s: invalid option"
 msgstr "%c%c: opci? inv?lida"
@@ -170,7 +171,7 @@ msgstr "%c%c: opci? inv?lida"
 msgid "%s: invalid option name"
 msgstr "%c%c: opci? inv?lida"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, fuzzy, c-format
 msgid "`%s': not a valid identifier"
 msgstr "'%s' no ?s un identificador v?lid"
@@ -185,7 +186,7 @@ msgstr "n?mero inv?lid de senyal"
 msgid "invalid hex number"
 msgstr "n?mero inv?lid de senyal"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 #, fuzzy
 msgid "invalid number"
 msgstr "n?mero inv?lid de senyal"
@@ -200,7 +201,7 @@ msgstr ""
 msgid "`%s': not a pid or valid job spec"
 msgstr ""
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: ?s una variable nom?s de lectura"
@@ -275,26 +276,26 @@ msgstr ""
 msgid "%s: ambiguous job spec"
 msgstr "%s: Redirecci? ambigua"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -308,7 +309,7 @@ msgstr ""
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funci? nom?s de lectura"
@@ -318,7 +319,7 @@ msgstr "%s: funci? nom?s de lectura"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "$%s: no es pot assignar d'aquesta manera"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -347,8 +348,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: no es pot crear: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: ?s un directori"
@@ -363,8 +364,7 @@ msgstr "%s: no es pot executar el fitxer binari"
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: no es pot executar el fitxer binari"
@@ -478,7 +478,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, fuzzy, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: s'esperava una expressi? de nombre enter"
@@ -502,7 +502,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr "Error desconegut %d"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "s'esperava una expressi?"
 
@@ -511,12 +511,12 @@ msgstr "s'esperava una expressi?"
 msgid "%s: not an indexed array"
 msgstr "%s: variable sense vincle"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -545,31 +545,31 @@ msgstr "%s: variable sense vincle"
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%c%c: opci? inv?lida"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr ""
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -663,17 +663,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, fuzzy, c-format
 msgid "read error: %d: %s"
 msgstr "error del conducte: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -683,17 +683,17 @@ msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 "servir LOCAL dins d'una funci?; a?? restringir? la magnitud visible de la"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, fuzzy, c-format
 msgid "%s: cannot unset"
 msgstr "%s: no es pot crear: %s"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, fuzzy, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: no es pot crear: %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, fuzzy, c-format
 msgid "%s: not an array variable"
 msgstr "%s: variable sense vincle"
@@ -708,11 +708,11 @@ msgstr "%s: funci? nom?s de lectura"
 msgid "shift count"
 msgstr "shift [n]"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -755,7 +755,7 @@ msgstr "%s: funci? nom?s de lectura"
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -765,27 +765,27 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, fuzzy, c-format
 msgid "`%c': bad command"
 msgstr "%c%c: opci? inv?lida"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, fuzzy, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: no es pot crear: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 #, fuzzy
 msgid "limit"
 msgstr "L?mit de la UCP"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, fuzzy, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: no es pot crear: %s"
@@ -805,7 +805,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -819,27 +819,27 @@ msgstr "si s'escriu \"r\" s'executar? la darrera ordre."
 msgid "Aborting..."
 msgstr ""
 
-#: error.c:406
+#: error.c:410
 #, fuzzy
 msgid "unknown command error"
 msgstr "Error desconegut %d"
 
-#: error.c:407
+#: error.c:411
 #, fuzzy
 msgid "bad command type"
 msgstr "un nom d'una ordre."
 
-#: error.c:408
+#: error.c:412
 #, fuzzy
 msgid "bad connector"
 msgstr "connector inv?lid '%d'"
 
-#: error.c:409
+#: error.c:413
 #, fuzzy
 msgid "bad jump"
 msgstr "Salt incorrecte %d"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variable sense vincle"
@@ -855,107 +855,122 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "error del conducte: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: no s'ha trobat l'ordre"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: ?s un directori"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: no es pot executar el fitxer binari"
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5296
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 "no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 0: %s"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "s'ha excedit el nivell de recursivitat de l'expressi?"
 
-#: expr.c:280
+#: expr.c:282
 #, fuzzy
 msgid "recursion stack underflow"
 msgstr "S'ha desbordat la base de la pila."
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "error de sintaxi a l'expressi?"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "s'ha intentat assignar una variable inexistent"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "divisi? per 0"
 
-#: expr.c:517
+#: expr.c:540
 #, fuzzy
 msgid "bug: bad expassign token"
 msgstr "error de programaci?: pas incorrecte del senyal %d per a expassing()."
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "s'esperava ':' per a l'expressi? condicional"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "falta algun ')'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 #, fuzzy
 msgid "syntax error: operand expected"
 msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, fuzzy, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s: %s: %s (la prova d'error ?s \"%s\")\n"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valor massa gran per a la base de numeraci?"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "%s: s'esperava una expressi? de nombre enter"
@@ -965,13 +980,13 @@ msgstr "%s: s'esperava una expressi? de nombre enter"
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd: no s'ha pogut accedir als directoris pares"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, fuzzy, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 "no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 0: %s"
 
-#: input.c:260
+#: input.c:265
 #, fuzzy, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
@@ -979,159 +994,159 @@ msgstr ""
 "bash\n"
 "a partir del descriptor de fitxer %d: %s"
 
-#: input.c:268
+#: input.c:273
 #, fuzzy, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 "check_bash_input: ja hi existeix mem?ria interm?dia per a la nova\n"
 "descripci? de fitxer %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: L'identificador de proc?s (pid) no existeix (%d)!\n"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Senyal desconeguda #%d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Fet"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Aturat"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Aturat"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "S'est? executant"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Fet (%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Fi d'execuci? amb l'estat %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Estat desconegut"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(la imatge del nucli ha estat bolcada) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd ara: %s)\n"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "error en l'execuci? de setpgid (%d a %d) en el proc?s fill %d: %s\n"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 "wait: l'identificador del proc?s (pid) %d no ?s un fill d'aquest int?rpret"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: s'ha finalitzat la tasca"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "encaix %3d:"
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (bolcat de la imatge del nucli)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd ara: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp ha fallat: %s"
 
-#: jobs.c:3669
+#: jobs.c:3703
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplina de l?nia: %s"
 
-#: jobs.c:3679
+#: jobs.c:3713
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp ha fallat: %s"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "no hi ha cap tasca de control dins d'aquest int?rpret"
 
@@ -1199,7 +1214,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1222,22 +1237,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)"
@@ -1270,129 +1285,129 @@ msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer"
 msgid "syntax error: `((%s))'"
 msgstr "error de sintaxi"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: el tipus d'instrucci? %d ?s incorrecte"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, fuzzy, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n"
 "es buscava per '%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 #, fuzzy
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n"
 "es buscava per '%c'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, fuzzy, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 #, fuzzy
 msgid "syntax error in conditional expression"
 msgstr "error de sintaxi a l'expressi?"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 #, fuzzy
 msgid "expected `)'"
 msgstr "s'esperava ')'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, fuzzy, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "%s: s'esperava un operador binari"
 
-#: parse.y:4198
+#: parse.y:4211
 #, fuzzy
 msgid "conditional binary operator expected"
 msgstr "%s: s'esperava un operador binari"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, fuzzy, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "s'esperava ':' per a l'expressi? condicional"
 
-#: parse.y:4238
+#: parse.y:4251
 #, fuzzy, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "s'esperava ':' per a l'expressi? condicional"
 
-#: parse.y:4242
+#: parse.y:4255
 #, fuzzy, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "s'esperava ':' per a l'expressi? condicional"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, fuzzy, c-format
 msgid "syntax error near `%s'"
 msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "error de sintaxi"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Utilitzeu ?%s? per a eixir de l'int?rpret d'ordres.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 #, fuzzy
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 "s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n"
 "es buscava per '%c'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1402,26 +1417,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: el connector '%d' ?s incorrecte"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1460,34 +1475,34 @@ msgstr "%s: no es pot assignar la llista a un element de la matriu"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 #, fuzzy
 msgid "redirection error: cannot duplicate fd"
 msgstr "error de redirecci?"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr ""
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr ""
 
-#: shell.c:884
+#: shell.c:888
 #, fuzzy, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opci? inv?lida"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "No tinc cap nom d'usuari!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, fuzzy, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU %s, versi? %s\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1496,44 +1511,44 @@ msgstr ""
 "Sintaxi:\t%s [opci?-format-llarg GNU] [opci?] ...\n"
 "\t%s [opci?-format-llarg GNU] [opci?] fitxer_de_seq??ncies ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "opcions de formes llargues de GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opcions de l'int?rpret d'ordres:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 #, fuzzy
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD o -c ordre\t\t(nom?s per a invocar)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s o -o opci?\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Per a obtindre m?s informaci? sobre les opcions de l'int?rpret\n"
 "d'ordres, teclegeu ?%s -c \"help set\"?.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Per a obtindre m?s informaci? sobre les ordres integrades de l'int?rpret,\n"
 "teclegeu '%s -c help' .\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1713,92 +1728,92 @@ msgstr "Senyal desconeguda #"
 msgid "Unknown Signal #%d"
 msgstr "Senyal desconeguda #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, fuzzy, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "substituci? inv?lida: no existeix '%s' en %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: no es pot assignar la llista a un element de la matriu"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 #, fuzzy
 msgid "cannot make pipe for process substitution"
 msgstr "no es pot establir un conducte per a la substituci? del proc?s: %s"
 
-#: subst.c:5027
+#: subst.c:5039
 #, fuzzy
 msgid "cannot make child for process substitution"
 msgstr "no es pot establir un proc?s fill per a la substituci? del proc?s: %s"
 
-#: subst.c:5072
+#: subst.c:5084
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "no es pot obrir el conducte anomenat %s per a %s: %s"
 
-#: subst.c:5074
+#: subst.c:5086
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "no es pot obrir el conducte anomenat %s per a %s: %s"
 
-#: subst.c:5092
+#: subst.c:5104
 #, fuzzy, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 "no es pot duplicar el conducte anomenat %s\n"
 "com a descripci? de fitxer %d: %s"
 
-#: subst.c:5284
+#: subst.c:5296
 #, fuzzy
 msgid "cannot make pipe for command substitution"
 msgstr "no es poden establir conductes per a la substituci? de l'ordre: %s"
 
-#: subst.c:5322
+#: subst.c:5334
 #, fuzzy
 msgid "cannot make child for command substitution"
 msgstr "no es pot crear un proc?s fill per a la substituci? del proc?s: %s"
 
-#: subst.c:5339
+#: subst.c:5351
 #, fuzzy
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 "command_substitute(): el coducte no es pot duplicar\n"
 "com a descripci? de fitxer 1: %s"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: par?metre nul o no ajustat"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: la sub-cadena de l'expressi? ?s < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: substituci? inv?lida"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: no es pot assignar d'aquesta manera"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituci? inv?lida: no existeix '%s' en %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1835,78 +1850,78 @@ msgstr "%s: s'esperava un operador binari"
 msgid "missing `]'"
 msgstr "s'ha perdut algun ']'"
 
-#: trap.c:207
+#: trap.c:209
 #, fuzzy
 msgid "invalid signal number"
 msgstr "n?mero inv?lid de senyal"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, fuzzy, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Senyal inv?lida %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "'%s': error en importar la definici? de la funci?"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: par?metre nul o no ajustat"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: no es pot crear: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1980,7 +1995,7 @@ msgstr "unalias [-a] [nom ...]"
 #: builtins.c:51
 #, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m keymap] [-f fitxer] [-q nom] [-r keyseq] [keyseq:funci?-"
@@ -2224,7 +2239,7 @@ msgstr "type [-apt] nom [nom ...]"
 
 #: builtins.c:169
 #, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdfmstpnuv] [l?mit]"
 
 #: builtins.c:172
@@ -2234,7 +2249,7 @@ msgstr "umask [-S] [mode]"
 
 #: builtins.c:175
 #, fuzzy
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr "wait [n]"
 
 #: builtins.c:179
@@ -2432,12 +2447,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2449,7 +2466,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Repr?n la seg?ent iteraci? del bucle envoltant FOR, WHILE, o UNTIL."
 
-#: builtins.c:338
+#: builtins.c:340
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2461,7 +2478,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Repr?n la seg?ent iteraci? del bucle envoltant FOR, WHILE, o UNTIL."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2475,7 +2492,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2491,7 +2508,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2514,13 +2531,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2528,7 +2550,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2544,7 +2566,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2555,7 +2577,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Cap efecte; no es fa res.  Es retorna amb el codi zero com a eixida."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2563,7 +2585,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2571,7 +2593,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2590,7 +2612,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2628,14 +2650,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2650,11 +2672,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2666,6 +2690,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2681,7 +2706,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2694,7 +2719,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2721,7 +2746,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2733,7 +2758,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2774,7 +2799,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2797,7 +2822,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2806,7 +2831,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Finalitza l'int?rpret d'ordres amb l'estat d'N. Si s'ometeix N,"
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2815,7 +2840,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2845,7 +2870,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2858,7 +2883,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr "Ubica la ID_TASCA en primer pla, i l'activa com a la tasca actual."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2872,7 +2897,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2896,7 +2921,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2918,7 +2943,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2952,7 +2977,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2976,7 +3001,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2993,7 +3018,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3015,7 +3040,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3060,7 +3085,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3097,18 +3122,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3120,7 +3148,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3186,7 +3214,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3205,7 +3233,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3225,7 +3253,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3244,7 +3272,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3264,7 +3292,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3275,7 +3303,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3289,7 +3317,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3303,7 +3331,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3384,7 +3412,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3395,7 +3423,7 @@ msgstr ""
 "par?metre ha de ser el signe \"]\" perqu? es puga tancar l'expressi? que\n"
 "comen?a pel signe \"[\"."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3407,7 +3435,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3451,7 +3479,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3481,7 +3509,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3510,6 +3538,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3525,7 +3556,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3543,24 +3574,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3574,7 +3605,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3587,7 +3618,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3604,7 +3635,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3624,7 +3655,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3640,7 +3671,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -3652,7 +3683,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Executa selectivament les ordres especificades en ORDRES seguint una "
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3673,7 +3704,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3687,7 +3718,7 @@ msgstr ""
 "Expandeix i executa les ordres especificades en ORDRES i els executa\n"
 "de tal manera que la darrera ordre"
 
-#: builtins.c:1608
+#: builtins.c:1621
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3701,7 +3732,7 @@ msgstr ""
 "Expandeix i executa les ordres especificades en ORDRES i els executa\n"
 "de tal manera que la darrera ordre"
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3714,7 +3745,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3728,7 +3759,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3740,7 +3771,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Executa un conjunt d'ordres en un grup.  A?? ?s una manera de"
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3754,7 +3785,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3765,7 +3796,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3793,7 +3824,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3847,7 +3878,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3878,7 +3909,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3905,7 +3936,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3934,7 +3965,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3955,7 +3986,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3973,8 +4004,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3988,7 +4019,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4015,7 +4046,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -4028,7 +4059,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4059,7 +4090,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4100,7 +4131,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -4383,8 +4414,8 @@ msgstr ""
 
 #~ msgid "cannot duplicate fd %d to fd 1: %s"
 #~ msgstr ""
-#~ "no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 1: %"
-#~ "s"
+#~ "no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 1: "
+#~ "%s"
 
 #~ msgid "%s: output redirection restricted"
 #~ msgstr "%s: redirecci? d'eixida restringida"
index b2d64a085b33a6c35fec622fcb45cb3168ea85e7..a208ed92bf6168584c1c7b5fea75960058af3045 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index 623d25cf96f6e07031c6aa976bc57bbc2e91c570..0ee346a15b44c43f3131b7308549d3f97af1cede 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2012-01-23 21:10+0100\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -23,50 +23,50 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "chybný podskript pole"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: číslované pole nezle převést na pole asociativní"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: neplatný klíč asociativního pole"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: přes nečíselný indexu nelze dosadit"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podskript"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nelze vytvořit: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: pro příkaz nelze nalézt klávesovou mapu "
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: první nebílý znak není „\"“"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ne zavírající „%c“ v %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: chybí dvojtečkový oddělovač"
@@ -76,36 +76,36 @@ msgstr "%s: chybí dvojtečkový oddělovač"
 msgid "`%s': invalid alias name"
 msgstr "„%s“: chybný název aliasu"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "upravování řádku není povoleno"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s“: chybný název klávesové mapy"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nelze číst: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "„%s“: nelze zrušit vazbu"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "„%s“: neznámé jméno funkce"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s není svázán s žádnou klávesou.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s lze vyvolat přes "
@@ -128,11 +128,15 @@ msgstr ""
 "    \n"
 "    Bez VÝRAZU vrátí "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "není nestavena HOME"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "příliš mnoho argumentů"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "není nastaveno OLDPWD"
 
@@ -141,7 +145,7 @@ msgstr "není nastaveno OLDPWD"
 msgid "line %d: "
 msgstr "řádek %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "varování: "
@@ -151,11 +155,7 @@ msgstr "varování: "
 msgid "%s: usage: "
 msgstr "%s: užití: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "příliš mnoho argumentů"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: přepínač vyžaduje argument"
@@ -170,7 +170,7 @@ msgstr "%s: vyžadován číselný argument"
 msgid "%s: not found"
 msgstr "%s: nenalezeno"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: chybný přepínač"
@@ -180,7 +180,7 @@ msgstr "%s: chybný přepínač"
 msgid "%s: invalid option name"
 msgstr "%s: chybný název přepínače"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "„%s“: není platným identifikátorem"
@@ -193,7 +193,7 @@ msgstr "neplatné osmičkové číslo"
 msgid "invalid hex number"
 msgstr "chybné šestnáctkové číslo"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "chybné číslo"
 
@@ -207,7 +207,7 @@ msgstr "%s: chybné určení signálu"
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s“: není PID ani platným označením úlohy"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: proměnná pouze pro čtení"
@@ -279,26 +279,26 @@ msgstr "%s: chyba při zjišťování současného adresáře: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: nejednoznačné určení úlohy"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: neplatný název akce"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: žádné doplňování neurčeno"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "varování: přepínač -F možná nebude dělat, co jste čekali"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "varování: přepínač -C možná nebude dělat, co jste čekali"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "doplňovací funkce se právě nevykonává"
 
@@ -310,7 +310,7 @@ msgstr "může být použito jen ve funkci"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f“ nezle použít na výrobu funkce"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkce jen pro čtení"
@@ -320,7 +320,7 @@ msgstr "%s: funkce jen pro čtení"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: takto nelze likvidovat pole"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: asociativní pole nelze převést na číslované pole"
@@ -349,8 +349,8 @@ msgstr "%s: není dynamicky nahráno"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nelze smazat: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: je adresářem"
@@ -365,8 +365,7 @@ msgstr "%s: není obyčejný soubor"
 msgid "%s: file is too large"
 msgstr "%s: soubor je příliš velký"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: binární soubor nelze spustit"
@@ -453,8 +452,11 @@ msgstr[2] "Příkazy shellu shodující se s klíčovými slovy „"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "žádné téma nápovědy se nehodí pro „%s“. Zkuste „help help“ nebo „man -k %s“ nebo „info %s“."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"žádné téma nápovědy se nehodí pro „%s“. Zkuste „help help“ nebo „man -k %s“ "
+"nebo „info %s“."
 
 #: builtins/help.def:185
 #, c-format
@@ -489,7 +491,7 @@ msgstr "nelze použít více jak jeden z -anrw"
 msgid "history position"
 msgstr "místo v historii"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: expanze historie selhala"
@@ -512,7 +514,7 @@ msgstr "%s: argumenty musí být proces nebo identifikátor úlohy"
 msgid "Unknown error"
 msgstr "Neznámá chyba"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "očekáván výraz"
 
@@ -521,12 +523,12 @@ msgstr "očekáván výraz"
 msgid "%s: not an indexed array"
 msgstr "%s: není (proměnnou typu) indexované pole"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: chybné určení deskriptoru souboru"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: neplatný deskriptor souboru: %s"
@@ -554,31 +556,31 @@ msgstr "prázdný název proměnné typu pole"
 msgid "array variable support required"
 msgstr "je vyžadována podpora proměnných typu pole"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s“: postrádám formátovací znak"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "„%c“: chybné určení časového limitu"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c“: neplatný formátovací znak"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "varování: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "u \\x chybí šestnáctková číslovka"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "u \\%c chybí unikódová číslovka"
@@ -614,10 +616,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Zobrazí seznam právě zapamatovaných adresářů. Adresáře si najdou svoji\n"
@@ -716,23 +720,24 @@ msgstr ""
 "    \t„dirs“, počínaje nulou. Na příklad: „popd +0“ odstraní první\n"
 "    \tadresář, „popd -1“ druhý.\n"
 "    \n"
-"      -N\tOdstraní N. položku počítáno zprava na seznamu zobrazovaném pomocí\n"
+"      -N\tOdstraní N. položku počítáno zprava na seznamu zobrazovaném "
+"pomocí\n"
 "    \t„dirs“, počínaje nulou. Na příklad: „popd -0“ odstraní poslední\n"
 "    \tadresář, „popd -1“ další vedle posledního.\n"
 "    \n"
 "    Zásobník adresářů si můžete prohlédnout příkazem „dirs“."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: chybné určení časového limitu"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "chyba čtení: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "„return“ lze provést jen z funkce nebo skriptu načteného přes „source“"
 
@@ -740,17 +745,17 @@ msgstr "„return“ lze provést jen z funkce nebo skriptu načteného přes 
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "funkci i proměnnou nelze rušit současně"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: nelze zrušit"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: nelze zrušit: %s jen pro čtení"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: není (proměnnou typu) pole"
@@ -764,11 +769,11 @@ msgstr "%s: není funkcí"
 msgid "shift count"
 msgstr "počet shiftů"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "přepínač shellu nelze zároveň nastavit a zrušit"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: chybný název přepínače shellu"
@@ -810,7 +815,7 @@ msgstr "%s je funkce\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s je součást shellu\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s je %s\n"
@@ -820,26 +825,26 @@ msgstr "%s je %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s je zahashován (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: chybný argument s limitou"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "„%c“: chybný příkaz"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: limit nelze zjistit: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limit"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: limit nelze změnit: %s"
@@ -858,7 +863,7 @@ msgstr "„%c“: chybný operátor symbolických práv"
 msgid "`%c': invalid symbolic mode character"
 msgstr "„%c“: chybný znak symbolický práv "
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " řádek "
 
@@ -872,23 +877,23 @@ msgstr "poslední příkaz: %s\n"
 msgid "Aborting..."
 msgstr "Ukončuji…"
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "chyba neznámého příkazu"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "chybný druh příkazu"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "chybný konektor"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "chybný skok"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: nevázaná proměnná"
@@ -903,102 +908,117 @@ msgstr "\ačasový limit pro čekání na vstup vypršel: automatické odhláše
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "standardní vstup nelze přesměrovat z /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: chybný formátovací znak"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "chyba v rouře"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: omezeno: v názvu příkazu nesmí být „/“"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: příkaz nenalezen"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: chybný interpretr"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: binární soubor nelze spustit"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s je součást shellu\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "deskriptor souboru %d nelze duplikovat na deskriptor %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "úroveň rekurze výrazu byla překročena"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "zásobník rekurze podtekl"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntaktická chyba ve výrazu"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "pokus o přiřazení do ne-proměnné"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "dělení nulou"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "chyba: chybný expassing token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "v podmíněném výrazu očekávána „:“"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "mocnitel menší než 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "po přednostním zvýšení nebo snížení očekáván identifikátor"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "postrádám „)“"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntaktická chyba: očekáván operand"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntaktická chyba: chybný aritmetický operátor"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (chybný token je „%s“)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "chybný aritmetický základ"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "hodnot je pro základ příliš velká"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: chyba výrazu\n"
@@ -1007,165 +1027,165 @@ msgstr "%s: chyba výrazu\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: rodičovské adresáře nejsou přístupné"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "na deskriptoru %d nelze resetovat režim nodelay"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "nový deskriptor souboru pro vstup bashe z deskr. %d nelze alokovat"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer již pro nový deskriptor %d existuje"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp roury"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forknutý PID %d se objevil v běžící úloze %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "mažu pozastavenou úlohu %d se skupinou procesů %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) do the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: PID %5ld (%s) označen za stále živého"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: žádný takový PID"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signál %d"
 
 # XXX: (úloha) dokončna. Používat ženský rod i unásledujících. Jedná se
 # o výpis úloh.
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Dokončena"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Pozastavena"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Pozastavena (%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Běží"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Dokončena (%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Ukončena %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Stav neznámý"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped [obraz paměti uložen]) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (cwd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid na potomku (z %ld na %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: PID %ld není potomkem tohoto shellu"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Žádný záznam o procesu %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: úloha %d je pozastavena"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: úloha skončila"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: úloha %d je již na pozadí"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: zapíná se WNOHANG, aby se zabránilo neurčitému zablokování"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: řádek %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped [obraz paměti uložen])"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(cwd nyní: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp selhalo"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: disciplína linky"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nelze nastavit skupinu procesů terminálu (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "žádná správa úloh v tomto shellu"
 
@@ -1234,7 +1254,7 @@ msgstr "register_alloc: %p již obsažen v tabulce jako alokovaný?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p již obsažen v tabulce jako volný?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "chybný základ"
 
@@ -1257,22 +1277,22 @@ msgstr "%s: chybné určení síťové cesty"
 msgid "network operations not supported"
 msgstr "síťové operace nejsou podporovány"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: národní prostředí nelze změnit (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: národní prostředí nelze změnit (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: národní prostředí nelze změnit (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: národní prostředí nelze změnit (%s): %s"
@@ -1303,121 +1323,121 @@ msgstr "chyba syntaxe: neočekávaný „;“"
 msgid "syntax error: `((%s))'"
 msgstr "chyba syntaxe: „((%s))“"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: chybný druh instrukce %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "„here“ dokument na řádku %d ukončen koncem souboru (požadováno „%s“)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: instrukce přesměrování „%d“ mimo rozsah"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "neočekávaný konec souboru při hledání znaku odpovídajícímu „%c“"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "neočekávaný konec souboru při hledání „]]“"
 
 # XXX: Condional means condition (adj.) probably. Can English distinguish
 # between the condition (podmínkový) and the code branch (podmíněný)? Check
 # for all "conditional" string occurences.
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "chyba syntaxe ve výrazu podmínky: neočekávaný token „%s“"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "chyba syntaxe ve výrazu podmínky"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "neočekávaný token „%s“, očekávána „)“"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "očekávána „)“"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "neočekávaný argument „%s“ u podmínkového unárního operátoru"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "neočekávaný argument u podmínkového unárního operátoru"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "neočekávaný token „%s“, očekáván podmínkový binární operátor"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "očekáván podmínkový binární operátor"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "neočekávaný argument „%s„ u podmínkového binárního operátoru"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "neočekávaný argument u podmínkového binárního operátoru"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "neočekávaný token „%c“ v podmínkovém příkazu"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "neočekávaný token „%s“ v podmínkovém příkazu"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "neočekávaný token %d v podmínkovém příkazu"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "chyba syntaxe poblíž neočekávaného tokenu „%s“"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "chyba syntaxe poblíž „%s“"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "chyba syntaxe: nenadálý konec souboru"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "chyba syntaxe"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Shell lze ukončit příkazem „%s“.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "nenadálý konec souboru při hledání odpovídající „)“"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "doplňování: funkce „%s“ nenalezena"
@@ -1427,27 +1447,27 @@ msgstr "doplňování: funkce „%s“ nenalezena"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULLOVÝ COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: chybná propojka „%d“"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: neplatný deskriptor souboru"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: nullový ukazatel na souboru"
 
 # fd, fp a fileno jsou identifikátory v kódu
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace: fd (%d) != fileno fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: chybný formátovací znak"
@@ -1485,33 +1505,33 @@ msgstr "%s: deskriptor souboru nelze přiřadit do proměnné"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port není bez síťování podporováno"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "chyba přesměrování: deskriptor souboru nelze duplikovat"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "nelze nalézt /tmp, vytvořte jej, prosím!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp musí být platným názvem pro adresář"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: chybný přepínač"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Nemám žádné jméno!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, verze %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1520,41 +1540,43 @@ msgstr ""
 "Použití:\t%s [Dlouhý GNU přepínač] [přepínač]…\n"
 "\t%s [Dlouhý GNU přepínač] [přepínač] skriptový_soubor…\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Dlouhé GNU přepínače:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Přepínače shellu:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD nebo -c příkaz nebo -O shopt_přepínač\t(pouze při vyvolání)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s nebo -o přepínač\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Podrobnosti o přepínačích shellu získáte tím, že napíšete „%s -c \"help set\"“.\n"
+msgstr ""
+"Podrobnosti o přepínačích shellu získáte tím, že napíšete „%s -c \"help set"
+"\"“.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Podrobnosti o příkazech vestavěných do shellu získáte tím, že\n"
 "napište „%s -c help“.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Chyby nahlásíte příkazem „bashbug“.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: neplatná operace"
@@ -1732,81 +1754,85 @@ msgstr "Neznámé číslo signálu"
 msgid "Unknown Signal #%d"
 msgstr "Neznámý signál č. %d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "chybná substituce: v %2$s chybí uzavírací „%1$s“"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: seznam nelze přiřadit do prvku pole"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "nelze vyrobit rouru za účelem substituce procesu"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "nelze vytvořit potomka za účelem substituce procesu"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "pojmenovanou rouru %s nelze otevřít pro čtení"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "pojmenovanou rouru %s nelze otevřít pro zápis"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "pojmenovanou rouru %s nelze zdvojit jako deskriptor %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "nelze vytvořit rouru pro substituci příkazu"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "nelze vytvořit potomka pro substituci příkazu"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: rouru nelze zdvojit jako deskriptor 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametr null nebo nenastaven"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: výraz podřetězce < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: chybná substituce"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: takto nelze přiřazovat"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "budoucá verze tohoto shellu budou vynucovat vyhodnocení jako aritmetickou substituci"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"budoucá verze tohoto shellu budou vynucovat vyhodnocení jako aritmetickou "
+"substituci"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "chybná substituce: v %s chybí uzavírací „`“"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "žádná shoda: %s"
@@ -1843,76 +1869,77 @@ msgstr "%s: očekáván binární operátor"
 msgid "missing `]'"
 msgstr "postrádám „]“"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "neplatné číslo signálu"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: obsluha signálu je SIG_DFL, přeposílám %d (%s) sobě"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: chybný signál %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "chyba při importu definice „%s“"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "úroveň shellu (%d) příliš vysoká, resetuji na 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: žádný kontext funkce v aktuálním rozsahu"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: žádný kontext funkce v aktuálním rozsahu"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s: má nullový exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "neplatný znak %d v exportstr pro %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "v exportstr pro %s chybí „=“"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: hlava shell_variables není kontextem funkce"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: chybí kontext global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: hlava shell_variables není dočasným rozsahem prostředí"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: nelze otevřít jako SOUBOR"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: neplatná hodnota pro deskriptor trasovacího souboru"
@@ -1922,8 +1949,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright © 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1947,8 +1978,12 @@ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licence GPLv2+: GNU GPL verze 2 nebo novější <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licence GPLv2+: GNU GPL verze 2 nebo novější <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1979,8 +2014,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] název [název…]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m klávmapa] [-f soubor] [-q název] [-u název] [-r klávposl] [-x klávposl:příkaz-shellu] [klávposl:readline-funkce nebo readline-příkaz]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m klávmapa] [-f soubor] [-q název] [-u název] [-r "
+"klávposl] [-x klávposl:příkaz-shellu] [klávposl:readline-funkce nebo "
+"readline-příkaz]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2068,7 +2109,8 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e enázev] [-lnr] [první] [poslední] nebo fc -s [vzor=náhrada] [příkaz]"
+msgstr ""
+"fc [-e enázev] [-lnr] [první] [poslední] nebo fc -s [vzor=náhrada] [příkaz]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2087,8 +2129,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [vzorek…]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d pozice] [n] nebo history -anrw [jméno_souboru] nebo history -ps argument [argument…]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d pozice] [n] nebo history -anrw [jméno_souboru] nebo history "
+"-ps argument [argument…]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2099,16 +2145,23 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [úloha…]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s sigspec | -n číssig | -sigspec] pid | úloha… nebo kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s sigspec | -n číssig | -sigspec] pid | úloha… nebo kill -l [sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let argument [argument…]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a pole] [-d oddělovač] [-i text] [-n p_znaků] [-N p_znaků] [-p výzva] [-t limit] [-u fd] [jméno…]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a pole] [-d oddělovač] [-i text] [-n p_znaků] [-N p_znaků] [-p "
+"výzva] [-t limit] [-u fd] [jméno…]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2167,7 +2220,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] název [název…]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
 
 #: builtins.c:172
@@ -2175,7 +2229,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mód]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2203,8 +2258,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case SLOVO in [VZOR [| VZOR]…) PŘÍKAZY ;;]… esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if PŘÍKAZY; then PŘÍKAZY; [ elif PŘÍKAZY; then PŘÍKAZY; ]… [ else PŘÍKAZY; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if PŘÍKAZY; then PŘÍKAZY; [ elif PŘÍKAZY; then PŘÍKAZY; ]… [ else PŘÍKAZY; ] "
+"fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2264,24 +2323,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v proměnná] formát [argumenty]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o přepínač] [-A akce] [-G globvzor] [-W seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S přípona] [název…]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o přepínač] [-A akce] [-G globvzor] [-"
+"W seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S "
+"přípona] [název…]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o přepínač]  [-A akce] [-G globvzor] [-W seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S přípona] [slovo]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o přepínač]  [-A akce] [-G globvzor] [-W "
+"seznam_slov]  [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S "
+"přípona] [slovo]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o možnost] [-DE] [název…]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c množství] [pole]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c "
+"množství] [pole]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c množství] [pole]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c "
+"množství] [pole]"
 
 #: builtins.c:254
 msgid ""
@@ -2298,16 +2376,19 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definuje nebo zobrazí aliasy.\n"
 "    \n"
-"    „alias“ bez argumentů vypíše na standardní výstup seznam aliasů ve znovu\n"
+"    „alias“ bez argumentů vypíše na standardní výstup seznam aliasů ve "
+"znovu\n"
 "    použitelném formátu NÁZEV=HODNOTA.\n"
 "    \n"
 "    Jinak bude definován alias pro každý NÁZEV, který má zadanou HODNOTU.\n"
-"    Závěrečná mezera v HODNOTĚ způsobí, že při expanzi bude následující slovo\n"
+"    Závěrečná mezera v HODNOTĚ způsobí, že při expanzi bude následující "
+"slovo\n"
 "    zkontrolováno na substituci aliasů.\n"
 "    \n"
 "    Přepínače:\n"
@@ -2333,6 +2414,7 @@ msgstr ""
 "    Vrací úspěch, pokud NÁZEV není neexistující alias."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2344,24 +2426,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2376,21 +2464,27 @@ msgstr ""
 "    Přepínače:\n"
 "      -m  klávmapa       Použije KLÁVMAPU jako klávesovou mapu pro trvání\n"
 "                         tohoto příkazu. Možné klávesové mapy jsou emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command a vi-insert.\n"
 "      -l                 Vypíše seznam názvů funkcí.\n"
 "      -P                 Vypíše seznam názvů funkcí a klávesových vazeb.\n"
-"      -p                 Vypíše seznam funkcí a klávesových vazeb ve formátu,\n"
+"      -p                 Vypíše seznam funkcí a klávesových vazeb ve "
+"formátu,\n"
 "                         který lze použít jako vstup.\n"
 "      -S                 Vypíše seznam posloupností kláves,\n"
 "                         které vyvolávají makra, a jejich hodnoty.\n"
 "      -s                 Vypíše seznam posloupností kláves,\n"
-"                         která vyvolávají makra, a jejich hodnoty ve formátu,\n"
-"                         který lze použít jako vstup.      -V                 Vypíše seznam názvů proměnných a hodnot.\n"
-"      -v                 Vypíše seznam názvů proměnných a hodnot ve formátu,\n"
+"                         která vyvolávají makra, a jejich hodnoty ve "
+"formátu,\n"
+"                         který lze použít jako vstup.      -"
+"V                 Vypíše seznam názvů proměnných a hodnot.\n"
+"      -v                 Vypíše seznam názvů proměnných a hodnot ve "
+"formátu,\n"
 "                         který lze použít jako vstup.\n"
 "      -q  název-funkce   Dotáže se, které klávesy vyvolají zadanou funkci.\n"
-"      -u  název-funkce   Zruší všechny vazby na klávesy, které jsou napojeny\n"
+"      -u  název-funkce   Zruší všechny vazby na klávesy, které jsou "
+"napojeny\n"
 "                         na zadanou funkci.\n"
 "      -r  klávposl       Odstraní vazbu na KLÁVPOSL.\n"
 "      -f  soubor         Načte vazby kláves ze SOUBORU.\n"
@@ -2399,9 +2493,10 @@ msgstr ""
 "                         zadána KLÁVPOSL.\n"
 "    \n"
 "    Návratový kód:\n"
-"    bind vrací 0, pokud není zadán nerozpoznaný přepínač nebo nedojde k chybě."
+"    bind vrací 0, pokud není zadán nerozpoznaný přepínač nebo nedojde "
+"k chybě."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2419,7 +2514,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratový kód je 0, pokud N je větší nebo rovno 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2436,13 +2531,14 @@ msgstr ""
 "    Návratový kód:\n"
 "    Návratový kód je 0, pokud N je větší nebo rovno 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2450,7 +2546,8 @@ msgid ""
 msgstr ""
 "Provede vestavěný příkaz shellu.\n"
 "    \n"
-"    Provede VESTAVĚNÝ-PŘÍKAZ-SHELLU s argumenty ARGUMENTY, aniž by se uplatnilo\n"
+"    Provede VESTAVĚNÝ-PŘÍKAZ-SHELLU s argumenty ARGUMENTY, aniž by se "
+"uplatnilo\n"
 "    vyhledávání příkazu. Toto se hodí, když si přejete reimplementovat\n"
 "    vestavěný příkaz shellu jako funkci shellu, avšak potřebujete spustit\n"
 "    vestavěný příkaz uvnitř této funkce.\n"
@@ -2459,7 +2556,7 @@ msgstr ""
 "    Vrací návratový kód VESTAVĚNÉHO-PŘÍKAZU-SHELLU, nebo nepravdu, pokud\n"
 "    VESTAVĚNÝ-PŘÍKAZ-SHELLU není vestavěným příkazem shellu."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2486,46 +2583,62 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací 0, pokud shell provádí shellovou funkci a VÝRAZ je platný."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Změní pracovní adresář shellu.\n"
 "    \n"
-"    Změní aktuální adresář na ADR. Implicitní ADR je hodnota proměnné shellu\n"
+"    Změní aktuální adresář na ADR. Implicitní ADR je hodnota proměnné "
+"shellu\n"
 "    HOME.\n"
 "    \n"
 "    Proměnná CDPATH definuje vyhledávací cestu pro adresář obsahující ADR.\n"
 "    Názvy náhradních adresářů v CDPATH se oddělují dvojtečkou (:). Prázdný\n"
-"    název adresáře je stejný jako aktuální adresář. Začíná-li ADR na lomítko\n"
+"    název adresáře je stejný jako aktuální adresář. Začíná-li ADR na "
+"lomítko\n"
 "    (/), nebude CDPATH použita.\n"
 "    \n"
-"    Nebude-li adresář nalezen a přepínač shellu „cdable_vars“ bude nastaven,\n"
+"    Nebude-li adresář nalezen a přepínač shellu „cdable_vars“ bude "
+"nastaven,\n"
 "    pak se dané slovo zkusí jakožto název proměnné. Má-li taková proměnná\n"
 "    hodnotu, pak její hodnota se použije jako ADR.\n"
 "    \n"
@@ -2542,7 +2655,7 @@ msgstr ""
 "    Vrací 0, byl-li adresář změněn a, byl-li zadán -P, $PWD byla úspěšně\n"
 "    nastavena. Jinak vrací nenulovou hodnotu."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2570,7 +2683,7 @@ msgstr ""
 "    Vrací 0, nebyl-li zadán neplatný přepínač a mohl-li být současný\n"
 "    adresář přečten."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2586,7 +2699,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2598,7 +2711,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2610,12 +2723,13 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vždy selže."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2629,8 +2743,10 @@ msgid ""
 msgstr ""
 "Provede jednoduchý příkaz nebo zobrazí podrobnosti o příkazech.\n"
 "    \n"
-"    Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu, nebo zobrazí informace\n"
-"    o zadaných PŘÍKAZECH. Lze využít, když je třeba vyvolat příkazy z disku,\n"
+"    Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu, nebo zobrazí "
+"informace\n"
+"    o zadaných PŘÍKAZECH. Lze využít, když je třeba vyvolat příkazy "
+"z disku,\n"
 "    přičemž existuje funkce stejného jména.\n"
 "    \n"
 "    Přepínače:\n"
@@ -2642,7 +2758,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací návratový kód PŘÍKAZU, nebo selže, nebyl–li příkaz nalezen."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2672,7 +2788,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2706,13 +2823,14 @@ msgstr ""
 "    Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte příkaz\n"
 "    „let“), jakmile je do proměnné přiřazeno.\n"
 "    \n"
-"    Je-li použito uvnitř funkce, učiní „declare“ NÁZVY lokálními stejně jako\n"
+"    Je-li použito uvnitř funkce, učiní „declare“ NÁZVY lokálními stejně "
+"jako\n"
 "    příkaz „local“. Přepínač „-g“ toto chování potlačí.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrací úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2722,7 +2840,7 @@ msgstr ""
 "    \n"
 "    Příkaz je zastaralý. Vizte „help declare“."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2738,21 +2856,26 @@ msgid ""
 msgstr ""
 "Definuje lokální proměnné.\n"
 "    \n"
-"    Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU. PŘEPÍNAČ\n"
+"    Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU. "
+"PŘEPÍNAČ\n"
 "    smí být jakýkoliv přepínač přípustný u „declare“.\n"
 "    \n"
-"    Lokální proměnné lze použít jen uvnitř funkcí, budou viditelné jen v dané\n"
+"    Lokální proměnné lze použít jen uvnitř funkcí, budou viditelné jen "
+"v dané\n"
 "    funkci a jejich potomcích.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrací úspěch, nebyl-li zadán neplatný přepínač, nenastala-li chyba a\n"
 "    vykonává-li shell funkci."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2764,6 +2887,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2780,12 +2904,15 @@ msgid ""
 msgstr ""
 "Vypíše své argumenty na standardní výstup.\n"
 "    \n"
-"    Zobrazí své ARGUMENTY na standardním výstupu a ukončí je z novým řádkem.\n"
+"    Zobrazí své ARGUMENTY na standardním výstupu a ukončí je z novým "
+"řádkem.\n"
 "    \n"
 "    Přepínače:\n"
 "      -n\tnepřipojuje nový řádek\n"
-"      -e\tzapne interpretování následujících znaků uvozených zpětným lomítkem\n"
-"      -E\texplicitně potlačí interpretování znaků uvozených zpětným lomítkem\n"
+"      -e\tzapne interpretování následujících znaků uvozených zpětným "
+"lomítkem\n"
+"      -E\texplicitně potlačí interpretování znaků uvozených zpětným "
+"lomítkem\n"
 "    \n"
 "    „echo“ interpretuje následující znaky uvozené zpětným lomítkem:\n"
 "      \\a\tpoplach (zvonek)\n"
@@ -2806,7 +2933,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, nedojde-li k chybě zápisu na výstup."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2827,7 +2954,7 @@ msgstr ""
 "    \n"
 "    Vrací úspěch, nedojte-li k chybě zápisu na výstup."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2860,7 +2987,8 @@ msgstr ""
 "    shellu, aniž byste museli zadávat celou cestu.\n"
 "    \n"
 "    Přepínače:\n"
-"      -a\tvypíše seznam vestavěných příkazů a vyznačí, který je a který není\n"
+"      -a\tvypíše seznam vestavěných příkazů a vyznačí, který je a který "
+"není\n"
 "    \tpovolen\n"
 "      -n\tzakáže každý NÁZEV nebo zobrazí seznam zakázaných vestavěných\n"
 "    \tpříkazů\n"
@@ -2880,11 +3008,12 @@ msgstr ""
 "    Vrací úspěch, je-li NÁZEV vestavěným příkazem shellu a nevyskytne-li\n"
 "    se chyba."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2897,7 +3026,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí návratový kód příkazu, nebo úspěch, byl-li příkaz prázdný."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2953,13 +3082,17 @@ msgstr ""
 "    skript. Pokud přepínač vyžaduje argument, getopts umístí tento argument\n"
 "    do proměnné shellu OPTARG.\n"
 "    \n"
-"    getopts hlásí chyby jedním ze dvou způsobů. Pokud prvním znakem OPTSTRING\n"
+"    getopts hlásí chyby jedním ze dvou způsobů. Pokud prvním znakem "
+"OPTSTRING\n"
 "    je dvojtečka, getopts hlásí chyby tichým způsobem. V tomto režimu žádné\n"
 "    chybové zprávy nejsou vypisovány. Když se narazí na neplatný přepínač,\n"
-"    getopts umístí tento znak do OPTARG. Pokud není nalezen povinný argument,\n"
-"    getopts umístí „:“ do NAME a OPTARG nastaví na znak nalezeného přepínače.\n"
+"    getopts umístí tento znak do OPTARG. Pokud není nalezen povinný "
+"argument,\n"
+"    getopts umístí „:“ do NAME a OPTARG nastaví na znak nalezeného "
+"přepínače.\n"
 "    Pokud getopts nepracuje v tomto tichém režimu a je nalezen neplatný\n"
-"    přepínač, getopts umístí „?“ do NAME a zruší OPTARG. Když nenajde povinný\n"
+"    přepínač, getopts umístí „?“ do NAME a zruší OPTARG. Když nenajde "
+"povinný\n"
 "    argument, je do NAME zapsán „?“, OPTARG zrušen a vytištěna diagnostická\n"
 "    zpráva.\n"
 "    \n"
@@ -2967,19 +3100,22 @@ msgstr ""
 "    chybových zpráv, dokonce i když první znak OPTSTRING není dvojtečka.\n"
 "    Implicitní hodnota OPTERR je 1.\n"
 "    \n"
-"    Normálně getopts zpracovává poziční parametry ($0–$9), avšak následuje-li\n"
+"    Normálně getopts zpracovává poziční parametry ($0–$9), avšak následuje-"
+"li\n"
 "    getopts více argumentů, budou rozebrány tyto namísto pozičních.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí úspěch, byl-li nalezen nějaký přepínač. Neúspěch vrátí, když dojde\n"
+"    Vrátí úspěch, byl-li nalezen nějaký přepínač. Neúspěch vrátí, když "
+"dojde\n"
 "    na konec přepínačů nebo nastane-li chyba."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2987,16 +3123,20 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Nahradí shell zadaným příkazem.\n"
 "    \n"
-"    Vykoná PŘÍKAZ, přičemž nahradí tento shell zadaným programem.  ARGUMENTY\n"
-"    se stanou argumenty PŘÍKAZU. Není-li PŘÍKAZ zadán, přesměrování zapůsobí\n"
+"    Vykoná PŘÍKAZ, přičemž nahradí tento shell zadaným programem.  "
+"ARGUMENTY\n"
+"    se stanou argumenty PŘÍKAZU. Není-li PŘÍKAZ zadán, přesměrování "
+"zapůsobí\n"
 "    v tomto shellu.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3010,7 +3150,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud byl PŘÍKAZ nalezen a nedošlo k chybě přesměrování."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3022,11 +3162,12 @@ msgstr ""
 "    Ukončí tento shell se stavem N. Bez N bude návratový kód roven kódu\n"
 "    posledně prováděného příkazu."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Ukončí přihlašovací shell.\n"
@@ -3034,17 +3175,19 @@ msgstr ""
 "    Ukončí přihlašovací (login) shell se stavem N. Nebyl-li příkaz zavolán\n"
 "    z přihlašovacího shellu, vrátí chybu."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3058,12 +3201,14 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Zobrazí nebo vykoná příkazy ze seznamu historie.\n"
 "    \n"
 "    fc se používá na vypsání, úpravu a znovu provedení příkazů ze seznamu\n"
-"    historie. PRVNÍ a POSLEDNÍ mohou být čísla určující rozsah nebo PRVNÍ může být\n"
+"    historie. PRVNÍ a POSLEDNÍ mohou být čísla určující rozsah nebo PRVNÍ "
+"může být\n"
 "    řetězec, což určuje nejnovější příkaz začínající na zadaný řetězec.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3075,14 +3220,15 @@ msgstr ""
 "    Forma příkazu „fc -s [vzor=náhrada… [příkaz]“ znamená, že PŘÍKAZ bude\n"
 "    po nahrazení STARÝ=NOVÝ znovu vykonán.\n"
 "    \n"
-"    Užitečný alias je r='fc -s', takže napsání „r cc“ spustí poslední příkaz\n"
+"    Užitečný alias je r='fc -s', takže napsání „r cc“ spustí poslední "
+"příkaz\n"
 "    začínající na „cc“ a zadání „r“ znovu spustí poslední příkaz.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch nebo kód provedeného příkazu. Nenulový kód, vyskytne-li se\n"
 "    chyba."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3095,19 +3241,22 @@ msgid ""
 msgstr ""
 "Přepne úlohu na popředí.\n"
 "    \n"
-"    Přesune úlohu určenou pomocí ÚLOHA na popředí a učiní ji aktuální úlohou.\n"
+"    Přesune úlohu určenou pomocí ÚLOHA na popředí a učiní ji aktuální "
+"úlohou.\n"
 "    Není-li ÚLOHA zadána, použije se úloha, o které si shell myslí, že je\n"
 "    aktuální.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Kód úlohy přesunuté do popředí, nebo došlo-li k chybě, kód selhání."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3122,12 +3271,13 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud je správa úloh zapnuta a nedošlo-li k nějaké chybě."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3146,8 +3296,10 @@ msgid ""
 msgstr ""
 "Zapamatuje si nebo zobrazí umístění programu.\n"
 "    \n"
-"    Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována. Nejsou-li\n"
-"    zadány žádné argumenty, budou vypsány informace o zapamatovaných příkazech.\n"
+"    Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována. Nejsou-"
+"li\n"
+"    zadány žádné argumenty, budou vypsány informace o zapamatovaných "
+"příkazech.\n"
 "    \n"
 "    Přepínače:\n"
 "      -d\t\tzapomene zapamatovaná umístění každého NÁZVU\n"
@@ -3163,7 +3315,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud byl NÁZEV nalezen a nebyl-li zadán neplatný přepínač."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3181,12 +3333,14 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Zobrazí podrobnosti o vestavěných příkazech.\n"
 "    \n"
 "    Zobrazí stručný souhrn vestavěných příkazů. Je-li zadán VZOREK,\n"
-"    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak je\n"
+"    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak "
+"je\n"
 "    vytištěn seznam syntaxe vestavěných příkazů.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3202,7 +3356,7 @@ msgstr ""
 "    Vrací úspěch, pokud byl nalezen VZOREK a nebyl zadán neplatný přepínač."
 
 # FIXME: bash-4.0-pre1: Orphaned line between -w and -p option. It belongs to -n.
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3229,7 +3383,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3253,17 +3408,20 @@ msgstr ""
 "    \taniž by cokoliv uložil do seznamu historie\n"
 "      -s\tpřipojí ARGUMENTY do seznamu historie jako jednu položku\n"
 "    \n"
-"    Je-li zadán JMÉNO_SOUBORU, tak ten je použit jako soubor historie. Jinak\n"
+"    Je-li zadán JMÉNO_SOUBORU, tak ten je použit jako soubor historie. "
+"Jinak\n"
 "    pokud $HISTFILE má hodnotu, tato je použita, jinak ~/.bash_history.\n"
 "    \n"
-"    Je-li proměnná $HISTTIMEFORMAT nastavena a není-li prázdná, její hodnota\n"
+"    Je-li proměnná $HISTTIMEFORMAT nastavena a není-li prázdná, její "
+"hodnota\n"
 "    se použije jako formátovací řetězec pro strftime(3) při výpisu časových\n"
-"    razítek spojených s každou položkou historie. Jinak žádná časová razítka\n"
+"    razítek spojených s každou položkou historie. Jinak žádná časová "
+"razítka\n"
 "    nebudou vypisována.    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3298,14 +3456,17 @@ msgstr ""
 "      -r\tzúží výstup jen na běžící úlohy\n"
 "      -s\tzúží výstup jen na pozastavené úlohy\n"
 "    \n"
-"    Je-li použito -x, bude spuštěn příkaz, jakmile všechny úlohy uvedené mezi\n"
-"    ARGUMENTY budou nahrazeny ID procesu, který je vedoucím skupiny dané úlohy.\n"
+"    Je-li použito -x, bude spuštěn příkaz, jakmile všechny úlohy uvedené "
+"mezi\n"
+"    ARGUMENTY budou nahrazeny ID procesu, který je vedoucím skupiny dané "
+"úlohy.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba.\n"
+"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se "
+"chyba.\n"
 "    Byl-ly použit přepínač -x, vrátí návratový kód PŘÍKAZU."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3335,7 +3496,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo ÚLOHA."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3359,7 +3520,8 @@ msgstr ""
 "Zašle signál úloze.\n"
 "    \n"
 "    Zašle procesu určeném PID (nebo ÚLOHOU) signál zadaný pomocí SIGSPEC\n"
-"    nebo ČÍSSIG. Není-li SIGSPEC ani ČÍSSIG zadán, pak se předpokládá SIGTERM.\n"
+"    nebo ČÍSSIG. Není-li SIGSPEC ani ČÍSSIG zadán, pak se předpokládá "
+"SIGTERM.\n"
 "    \n"
 "    Přepínače:\n"
 "      -s sig\tSIG je název signálu\n"
@@ -3375,14 +3537,15 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3448,8 +3611,10 @@ msgstr ""
 "    \t&=, ^=, |=\tpřiřazení\n"
 "    \n"
 "    Proměnné shellu jsou povolené operandy. Název proměnné je uvnitř výrazu\n"
-"    nahrazen její hodnotou (s automatickým převodem na celé číslo pevné šířky).\n"
-"    Proměnná nemusí mít atribut integer (číslo) zapnutý, aby byla použitelná\n"
+"    nahrazen její hodnotou (s automatickým převodem na celé číslo pevné "
+"šířky).\n"
+"    Proměnná nemusí mít atribut integer (číslo) zapnutý, aby byla "
+"použitelná\n"
 "    ve výrazu.\n"
 "    \n"
 "    Operátory se vyhodnocují v pořadí přednosti. Podvýrazy v závorkách jsou\n"
@@ -3459,18 +3624,22 @@ msgstr ""
 "    Pokud poslední ARGUMENT je vyhodnocen na 0, let vrátí 1. Jinak je\n"
 "    navrácena 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3482,34 +3651,42 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Načte ze standardního vstupu jeden řádek a rozdělí jej na položky.\n"
 "    \n"
 "    Ze standardního vstupu, nebo deskriptoru souboru FD, je-li zadán\n"
 "    přepínač -u, je načten jeden řádek. Řádek se rozdělí na části jako při\n"
-"    dělení na slova a první slovo je přiřazeno do prvního JMÉNA, druhé slovo\n"
+"    dělení na slova a první slovo je přiřazeno do prvního JMÉNA, druhé "
+"slovo\n"
 "    do druhého JMÉNA a tak dále, přičemž přebývající slova se přiřadí do\n"
 "    posledního JMÉNA. Pouze znaky uvedené v $IFS jsou považovány za\n"
 "    oddělovače slov.\n"
 "    \n"
-"    Nejsou-li uvedena žádná JMÉNA, načtený řádek bude uložen do proměnné REPLY.\n"
+"    Nejsou-li uvedena žádná JMÉNA, načtený řádek bude uložen do proměnné "
+"REPLY.\n"
 "    \n"
 "    Přepínače:\n"
 "      -a pole\tnačtená slova budou přiřazena do postupných prvků POLE\n"
@@ -3540,7 +3717,7 @@ msgstr ""
 "    pro čtení nevyprší nebo není poskytnut neplatný deskriptor souboru jako\n"
 "    argument -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3553,14 +3730,17 @@ msgid ""
 msgstr ""
 "Návrat z shellové funkce.\n"
 "    \n"
-"    Způsobí ukončení funkce nebo skriptu načteného přes „source“ s návratovou\n"
-"    hodnotou určenou N. Je-li N vynecháno, návratový kód bude roven poslednímu\n"
+"    Způsobí ukončení funkce nebo skriptu načteného přes „source“ "
+"s návratovou\n"
+"    hodnotou určenou N. Je-li N vynecháno, návratový kód bude roven "
+"poslednímu\n"
 "    příkazu vykonanému uvnitř dotyčné funkce nebo skriptu.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vrátí N, nebo selže, pokud shell neprovádí funkci nebo skript."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3603,7 +3783,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3625,7 +3806,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3645,7 +3826,8 @@ msgid ""
 msgstr ""
 "Nastaví nebo zruší hodnoty přepínačů shellu a pozičních parametrů.\n"
 "    \n"
-"    Změní hodnoty atributům shellu a pozičním parametrům, nebo zobrazí názvy\n"
+"    Změní hodnoty atributům shellu a pozičním parametrům, nebo zobrazí "
+"názvy\n"
 "    a hodnoty proměnných shellu.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3719,8 +3901,10 @@ msgstr ""
 "      -   Přiřadí jakékoliv zbývající argumenty do pozičních parametrů.\n"
 "          Přepínače -x a -v budou vypnuty.\n"
 "    \n"
-"    Použití + místo - způsobí, že tyto příznaky budou vypnuty. Příznaky lze též\n"
-"    použít při volání shellu. Aktuální množinu příznaků je možno nalézt v $-.\n"
+"    Použití + místo - způsobí, že tyto příznaky budou vypnuty. Příznaky lze "
+"též\n"
+"    použít při volání shellu. Aktuální množinu příznaků je možno nalézt "
+"v $-.\n"
 "    Přebývajících n ARGUMENTŮ jsou poziční parametry a budou přiřazeny,\n"
 "    v pořadí, do $1, $2, … $n. Nejsou-li zadány žádné ARGUMENTY, budou\n"
 "    vytištěny všechny proměnné shellu.\n"
@@ -3728,7 +3912,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3738,7 +3922,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3754,7 +3939,8 @@ msgstr ""
 "      -f\tpovažuje každé JMÉNO za funkci shellu\n"
 "      -v\tpovažuje každé JMÉNO za proměnnou shellu\n"
 "    \n"
-"    Bez těchto dvou příznaků unset nejprve zkusí zrušit proměnnou a pokud toto\n"
+"    Bez těchto dvou příznaků unset nejprve zkusí zrušit proměnnou a pokud "
+"toto\n"
 "    selže, tak zkusí zrušit funkci.\n"
 "    \n"
 "    Některé proměnné nelze odstranit. Vizte příkaz „readonly“.\n"
@@ -3763,12 +3949,13 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a JMÉNO není jen pro\n"
 "    čtení."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3782,8 +3969,10 @@ msgid ""
 msgstr ""
 "Nastaví atribut exportovat proměnné shellu.\n"
 "    \n"
-"    Každý NÁZEV je označen pro automatické exportování do prostředí následně\n"
-"    prováděných příkazů. Je-li zadána HODNOTA, před exportem přiřadí HODNOTU.\n"
+"    Každý NÁZEV je označen pro automatické exportování do prostředí "
+"následně\n"
+"    prováděných příkazů. Je-li zadána HODNOTA, před exportem přiřadí "
+"HODNOTU.\n"
 "    \n"
 "    Přepínače:\n"
 "      -f\tvztahuje se na funkce shellu\n"
@@ -3795,7 +3984,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3816,8 +4005,10 @@ msgid ""
 msgstr ""
 "Označí proměnné shellu za nezměnitelné.\n"
 "    \n"
-"    Označí každý NÁZEV jako jen pro čtení, hodnoty těchto NÁZVŮ nebude možné\n"
-"    změnit následným přiřazením. Je-li zadána HODNOTA, před označením za jen\n"
+"    Označí každý NÁZEV jako jen pro čtení, hodnoty těchto NÁZVŮ nebude "
+"možné\n"
+"    změnit následným přiřazením. Je-li zadána HODNOTA, před označením za "
+"jen\n"
 "    pro čtení přiřadí HODNOTU.\n"
 "    \n"
 "    Přepínače:\n"
@@ -3831,7 +4022,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3849,7 +4040,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud N není záporný a není větší než $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3873,7 +4064,7 @@ msgstr ""
 "    Vrací návratový kód posledního provedeného příkazu z NÁZVU_SOUBORU.\n"
 "    Selže, pokud NÁZEV_SOUBORU nelze načíst."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3897,7 +4088,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrací úspěch, pokud je správa úloh zapnuta a nevyskytla se chyba."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3931,7 +4122,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3952,7 +4144,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4012,7 +4205,8 @@ msgstr ""
 "      -N SOUBOR      Pravda, pokud soubor byl změněn po posledním čtení.\n"
 "    \n"
 "      SOUBOR1 -nt SOUBOR2\n"
-"                     Pravda, pokud je SOUBOR1 novější než SOUBOR2 (podle času\n"
+"                     Pravda, pokud je SOUBOR1 novější než SOUBOR2 (podle "
+"času\n"
 "                     změny obsahu).\n"
 "    \n"
 "      SOUBOR1 -ot SOUBOR2\n"
@@ -4060,7 +4254,7 @@ msgstr ""
 "    Vrací úspěch, je-li VÝRAZ vyhodnocen jako pravdivý. Selže, je-li VÝRAZ\n"
 "    vyhodnocen jako nepravdivý nebo je-li zadán neplatný argument."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4072,11 +4266,12 @@ msgstr ""
 "    Toto je synonymum pro vestavěný příkaz „test“, až na to, že poslední\n"
 "    argument musí být doslovně „]“, aby se shodoval s otevírající „[“."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4084,17 +4279,19 @@ msgid ""
 msgstr ""
 "Zobrazí časy procesu.\n"
 "    \n"
-"    Vypíše celkovou dobu procesu shellu a všech jeho potomků, kterou strávili\n"
+"    Vypíše celkovou dobu procesu shellu a všech jeho potomků, kterou "
+"strávili\n"
 "    v uživatelském a jaderném (system) prostoru.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vždy uspěje."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4103,26 +4300,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Zachytávání signálů a jiných událostí.\n"
 "    \n"
@@ -4130,34 +4335,42 @@ msgstr ""
 "    signály nebo nastanou určité podmínky.\n"
 "    \n"
 "    Příkaz ARGUMENT bude načten a proveden, až shell obdrží signál(y)\n"
-"    SIGNAL_SPEC. Pokud ARGUMENT chybí (a je zadán jeden SIGNAL_SPEC) nebo je\n"
-"    „-“, každý určený signál bude přenastaven zpět na svoji původní hodnotu.\n"
-"    Je-li ARGUMENT prázdný řetězec, každý SIGNAL_SPEC bude shellem a příkazy\n"
+"    SIGNAL_SPEC. Pokud ARGUMENT chybí (a je zadán jeden SIGNAL_SPEC) nebo "
+"je\n"
+"    „-“, každý určený signál bude přenastaven zpět na svoji původní "
+"hodnotu.\n"
+"    Je-li ARGUMENT prázdný řetězec, každý SIGNAL_SPEC bude shellem a "
+"příkazy\n"
 "    z něj spuštěnými ignorován.\n"
 "    \n"
-"    Je-li SIGNAL_SPEC „EXIT (0)“, bude ARGUMENT proveden při ukončování tohoto\n"
+"    Je-li SIGNAL_SPEC „EXIT (0)“, bude ARGUMENT proveden při ukončování "
+"tohoto\n"
 "    shellu. Je-li SIGNAL_SPEC „DEBUG“, bude ARGUMENT proveden před každým\n"
-"    jednoduchým příkazem. Je-li SIGNAL_SPEC „RETURN“, bude ARGUMENT proveden\n"
+"    jednoduchým příkazem. Je-li SIGNAL_SPEC „RETURN“, bude ARGUMENT "
+"proveden\n"
 "    vždy, když skončí běh funkce shellu nebo skriptu spuštěného přes\n"
 "    vestavěný příkaz „.“ nebo „source“. SIGNAL_SPEC „ERR“ znamená, že\n"
 "    ARGUMENT bude proveden pokaždé, když by selhání příkazu způsobilo\n"
 "    ukončení shellu (je-li zapnut přepínač -e).\n"
 "    \n"
-"    Nejsou-li poskytnuty žádné argumenty, trap vypíše seznam příkazů navázaných\n"
+"    Nejsou-li poskytnuty žádné argumenty, trap vypíše seznam příkazů "
+"navázaných\n"
 "    na všechny signály.\n"
 "    \n"
 "    Přepínače:\n"
 "      -l\tvypíše seznam jmen signálů a jim odpovídajících čísel\n"
 "      -p\tzobrazí příkazy navázané na každý SIGNAL_SPEC\n"
 "    \n"
-"    Každý SIGNAL_SPEC je buďto jméno signálu ze <signal.h>, nebo číslo signálu.\n"
-"    U jmen signálů nezáleží na velikosti písmen a předpona SIG je nepovinná.\n"
+"    Každý SIGNAL_SPEC je buďto jméno signálu ze <signal.h>, nebo číslo "
+"signálu.\n"
+"    U jmen signálů nezáleží na velikosti písmen a předpona SIG je "
+"nepovinná.\n"
 "    Aktuálnímu shellu lze zaslat signál pomocí „kill -signal $$“.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud SIGSPEC a zadané přepínače jsou platné."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4183,7 +4396,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Zobrazí informace o typu příkazu.\n"
 "    \n"
@@ -4212,11 +4426,13 @@ msgstr ""
 "    Vrátí úspěch, pokud všechny NÁZVY byly nalezeny. Selže, pokud některé\n"
 "    nalezeny nebyly."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4240,6 +4456,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4264,7 +4483,8 @@ msgstr ""
 "      -H\tpoužije se „tvrdé“ (hard) omezení zdroje\n"
 "      -a\tnahlásí všechna současná omezení (limity)\n"
 "      -b\tvelikost vyrovnávací paměti socketů\n"
-"      -c\tmaximální velikost vytvářených core souborů (výpis paměti programu)\n"
+"      -c\tmaximální velikost vytvářených core souborů (výpis paměti "
+"programu)\n"
 "      -d\tmaximální velikost datového segmentu procesu\n"
 "      -e\tmaximální plánovací priorita („nice“)\n"
 "      -f\tmaximální velikost souborů zapsaných shellem a jeho potomky\n"
@@ -4288,12 +4508,13 @@ msgstr ""
 "    přepínač, pak se předpokládá -f.\n"
 "    \n"
 "    Hodnoty jsou v násobcích 1024 bajtů, kromě -t, která je v sekundách,\n"
-"    -p, která je v násobcích 512 bajtů, a -u, což je absolutní počet procesů.\n"
+"    -p, která je v násobcích 512 bajtů, a -u, což je absolutní počet "
+"procesů.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vrací úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4326,31 +4547,36 @@ msgstr ""
 "    Návratový kód\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný MÓD nebo přepínač."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Počká na dokončení úlohy a vrátí její návratový kód.\n"
 "    \n"
 "    Počká na proces určený ID, což může být ID procesu nebo identifikace\n"
-"    úlohy, a nahlásí jeho návratový kód. Není-li ID zadáno, počká na všechny\n"
+"    úlohy, a nahlásí jeho návratový kód. Není-li ID zadáno, počká na "
+"všechny\n"
 "    právě aktivní dětské procesy a návratovým kódem bude nula. Je-li ID\n"
 "    identifikátorem úlohy, počká na všechny procesy z kolony úlohy.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný přepínač."
+"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný "
+"přepínač."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4359,19 +4585,22 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Počká na dokončení procesu a vrátí jeho návratový kód.\n"
 "    \n"
 "    Počká na zadaný proces a nahlásí jeho návratový kód. Není-li PID zadán,\n"
-"    bude se čekat na všechny právě aktivní procesy potomků a návratová hodnota\n"
+"    bude se čekat na všechny právě aktivní procesy potomků a návratová "
+"hodnota\n"
 "    bude nula. PID musí být ID procesu.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný přepínač."
+"    Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný "
+"přepínač."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4385,14 +4614,17 @@ msgid ""
 msgstr ""
 "Pro každý prvek seznamu vykoná příkazy.\n"
 "    \n"
-"    Smyčka „for“ provede posloupnost příkazů pro každý prvek v seznamu položek.\n"
-"    Pokud „in SLOVECH…;“ není přítomno, pak se předpokládá „in \"$@\"“. NÁZEV\n"
-"    bude postupně nastaven na každý prvek ve SLOVECH a PŘÍKAZY budou provedeny.\n"
+"    Smyčka „for“ provede posloupnost příkazů pro každý prvek v seznamu "
+"položek.\n"
+"    Pokud „in SLOVECH…;“ není přítomno, pak se předpokládá „in \"$@\"“. "
+"NÁZEV\n"
+"    bude postupně nastaven na každý prvek ve SLOVECH a PŘÍKAZY budou "
+"provedeny.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4421,7 +4653,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy vykonaného příkazu."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4442,13 +4674,20 @@ msgid ""
 msgstr ""
 "Vybere slova ze seznamu a vykoná příkazy.\n"
 "    \n"
-"    SLOVA jsou expandována a vytvoří seznam slov. Množina expandovaných slov\n"
-"    je vytištěna na standardní chybový výstup, každé předchází číslo.  Není-li\n"
-"    „in SLOVA“ přítomno, předpokládá se „in \"$@\"“. Pak je zobrazena výzva PS3\n"
-"    a jeden řádek načten ze standardního vstupu. Pokud je řádek tvořen číslem\n"
-"    odpovídajícím jednomu ze zobrazených slov, pak NÁZEV bude nastaven na toto\n"
-"    slovo. Pokud je řádek prázdný, SLOVA a výzva budou znovu zobrazeny. Je-li\n"
-"    načten EOF (konec souboru), příkaz končí. Načtení jakékoliv jiné hodnoty\n"
+"    SLOVA jsou expandována a vytvoří seznam slov. Množina expandovaných "
+"slov\n"
+"    je vytištěna na standardní chybový výstup, každé předchází číslo.  Není-"
+"li\n"
+"    „in SLOVA“ přítomno, předpokládá se „in \"$@\"“. Pak je zobrazena výzva "
+"PS3\n"
+"    a jeden řádek načten ze standardního vstupu. Pokud je řádek tvořen "
+"číslem\n"
+"    odpovídajícím jednomu ze zobrazených slov, pak NÁZEV bude nastaven na "
+"toto\n"
+"    slovo. Pokud je řádek prázdný, SLOVA a výzva budou znovu zobrazeny. Je-"
+"li\n"
+"    načten EOF (konec souboru), příkaz končí. Načtení jakékoliv jiné "
+"hodnoty\n"
 "    nastaví NÁZEV na prázdný řetězec. Načtený řádek bude uložen do proměnné\n"
 "    REPLY. Po každém výběru budou provedeny PŘÍKAZY, dokud nebude vykonán\n"
 "    příkaz „break“.\n"
@@ -4456,7 +4695,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy prováděného příkazu."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4474,18 +4713,20 @@ msgstr ""
 "Nahlásí čas spotřebovaný prováděním kolony.\n"
 "    \n"
 "    Vykoná KOLONU a zobrazí přehled reálného času, uživatelského\n"
-"    procesorového času a systémového procesorového času stráveného prováděním\n"
+"    procesorového času a systémového procesorového času stráveného "
+"prováděním\n"
 "    KOLONY poté, co skončí.\n"
 "    \n"
 "    Přepínače:\n"
 "      -p\tzobrazí přehled časů v přenositelném posixovém formátu\n"
 "    \n"
-"    Hodnota proměnné TIMEFORMAT se použije jako specifikace výstupního formátu.\n"
+"    Hodnota proměnné TIMEFORMAT se použije jako specifikace výstupního "
+"formátu.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Návratová hodnota je návratová hodnota KOLONY."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4503,16 +4744,21 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4521,17 +4767,19 @@ msgstr ""
 "Vykoná příkazy na základě splnění podmínky.\n"
 "    \n"
 "    Provede seznam „if PŘÍKAZŮ“. Bude-li jeho návratový kód nula, pak bude\n"
-"    proveden seznam „then PŘÍKAZŮ“. Jinak bude proveden popořadě každý seznam\n"
+"    proveden seznam „then PŘÍKAZŮ“. Jinak bude proveden popořadě každý "
+"seznam\n"
 "    „elif PŘÍKAZŮ“ a bude-li jeho návratový kód nula, odpovídající seznam\n"
 "    „then PŘÍKAZŮ“ bude proveden a příkaz if skončí. V opačném případě bude\n"
 "    proveden seznam „else PŘÍKAZŮ“, pokud existuje. Návratová hodnota celé\n"
-"    konstrukce je návratovou hodnotou posledního provedeného příkazu nebo nula,\n"
+"    konstrukce je návratovou hodnotou posledního provedeného příkazu nebo "
+"nula,\n"
 "    pokud žádná z testovaných podmínek není pravdivá.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4543,13 +4791,14 @@ msgid ""
 msgstr ""
 "Vykonává příkazy, dokud test úspěšně prochází.\n"
 "    \n"
-"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve „while“\n"
+"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve "
+"„while“\n"
 "    PŘÍKAZECH má nulový návratový kód.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4561,12 +4810,13 @@ msgid ""
 msgstr ""
 "Vykonává příkazy, dokud test končí neúspěšně.\n"
 "    \n"
-"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve „until“\n"
+"    Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve "
+"„until“\n"
 "    PŘÍKAZECH má nenulový návratový kód.    \n"
 "    Návratový kód:\n"
 "    Vrátí kód naposledy provedeného příkazu."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4581,18 +4831,20 @@ msgstr ""
 "Vytvoří koproces pojmenovaný NÁZEV.\n"
 "    \n"
 "    Vykoná PŘÍKAZ asynchronně, přičemž jeho standardní výstup a standardní\n"
-"    vstup budou napojeny rourou na souborové deskriptory uvedené v poli NÁZEV\n"
+"    vstup budou napojeny rourou na souborové deskriptory uvedené v poli "
+"NÁZEV\n"
 "    tohoto shellu pod indexem 0 a 1. Implicitní NÁZEV je „COPROC“.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí návratový kód PŘÍKAZU."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4602,14 +4854,16 @@ msgstr ""
 "Definuje funkci shellu.\n"
 "    \n"
 "    Vytvoří shellovou funkci pojmenovanou NÁZEV. Volána jakožto jednoduchý\n"
-"    příkaz spustí PŘÍKAZY v kontextu volajícího shellu. Je-li vyvolán NÁZEV,\n"
-"    budou funkci předány argumenty jako $1…$n a název funkce bude umístěn do\n"
+"    příkaz spustí PŘÍKAZY v kontextu volajícího shellu. Je-li vyvolán "
+"NÁZEV,\n"
+"    budou funkci předány argumenty jako $1…$n a název funkce bude umístěn "
+"do\n"
 "    $FUNCNAME.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud NÁZEV není jen pro čtení."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4626,7 +4880,7 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí kód naposledy spuštěného příkazu."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4642,14 +4896,16 @@ msgstr ""
 "Obnoví úlohu do popředí.\n"
 "    \n"
 "    Ekvivalent k argumentu ÚLOHA příkazu „fg“. Obnoví pozastavenou úlohu\n"
-"    nebo úlohu na pozadí. ÚLOHA může určovat buď název úlohy, nebo číslo úlohy.\n"
-"    Přidání „&“ za ÚLOHU přesune úlohu na pozadí, jako by identifikátor úlohy\n"
+"    nebo úlohu na pozadí. ÚLOHA může určovat buď název úlohy, nebo číslo "
+"úlohy.\n"
+"    Přidání „&“ za ÚLOHU přesune úlohu na pozadí, jako by identifikátor "
+"úlohy\n"
 "    byl argumentem příkazu „bg“.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí kód obnovené úlohy."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4671,13 +4927,16 @@ msgstr ""
 # příkaz, který by byl vykonán na základě splnění jiné podmínky. Tj. překlad
 # „podmíněný příkaz“ je chybný.
 # Toto je nápověda k vestavěnému příkazu „[“.
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4705,20 +4964,22 @@ msgstr ""
 "      ! VÝRAZ\t\tPravda, pokud VÝRAZ je nepravdivý; jinak nepravda\n"
 "      VÝR1 && VÝR2\tPravda, pokud oba VÝR1 i VÝR2 jsou pravdivé;\n"
 "    \t\tjinak nepravda\n"
-"      VÝR1 || VÝR2\tPravda, pokud VÝR1 nebo VÝR2 je pravdivý; jinak nepravda\n"
+"      VÝR1 || VÝR2\tPravda, pokud VÝR1 nebo VÝR2 je pravdivý; jinak "
+"nepravda\n"
 "    \n"
 "    Jsou-li použity operátory „==“ a „!=“, řetězec napravo od operátoru je\n"
 "    použit jako vzor a bude uplatněno porovnávání proti vzoru. Je-li použit\n"
 "    operátor „=~, řetězec napravo do operátoru je uvažován jako regulární\n"
 "    výraz.\n"
 "    \n"
-"    Operátory && a || nevyhodnocují VÝR2, pokud VÝR1 je dostatečný na určení\n"
+"    Operátory && a || nevyhodnocují VÝR2, pokud VÝR1 je dostatečný na "
+"určení\n"
 "    hodnoty výrazu.\n"
 "    \n"
 "    Návratový kód:\n"
 "    0 nebo 1 podle hodnoty VÝRAZU."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4776,7 +5037,8 @@ msgstr ""
 "    BASH_VERSION\tInformace o verzi tohoto Bashe.\n"
 "    CDPATH\tDvojtečkou oddělený seznam adresářů, který se prohledává\n"
 "    \t\tna adresáře zadané jako argumenty u „cd“.\n"
-"    GLOBIGNORE\tDvojtečkou oddělený seznam vzorů popisujících jména souborů,\n"
+"    GLOBIGNORE\tDvojtečkou oddělený seznam vzorů popisujících jména "
+"souborů,\n"
 "    \t\tkterá budou ignorována při expanzi cest.\n"
 "    HISTFILE\tJméno souboru, kde je uložena historie vašich příkazů.\n"
 "    HISTFILESIZE\tMaximální počet řádků, které tento soubor smí obsahovat.\n"
@@ -4822,7 +5084,7 @@ msgstr ""
 "    \t\trozlišení, které příkazy by měly být uloženy do seznamu\n"
 "    \t\thistorie.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4879,7 +5141,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument a změna adresáře\n"
 "    neselhala."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4929,7 +5191,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný argument nebo neselhala změna\n"
 "    adresáře."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4946,10 +5208,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4958,7 +5222,8 @@ msgstr ""
 "Zobrazí zásobník adresářů.\n"
 "    \n"
 "    Zobrazí seznam právě pamatovaných adresářů. Adresáře si najdou cestu\n"
-"    na seznam příkazem „pushd“ a procházet seznamem zpět lze příkazem „popd“.\n"
+"    na seznam příkazem „pushd“ a procházet seznamem zpět lze příkazem "
+"„popd“.\n"
 "    \n"
 "    Přepínače:\n"
 "      -c\tvyprázdní zásobník adresářů tím, že smaže všechny jeho prvky\n"
@@ -4977,12 +5242,13 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4999,7 +5265,8 @@ msgstr ""
 "Zapne nebo vypne volby (přepínače) shellu.\n"
 "    \n"
 "    Změní nastavení každého přepínače shellu NÁZEV_VOLBY. Bez přepínačových\n"
-"    argumentů vypíše seznam všech přepínačů shellu s příznakem, zda je, nebo\n"
+"    argumentů vypíše seznam všech přepínačů shellu s příznakem, zda je, "
+"nebo\n"
 "    není nastaven.\n"
 "    Přepínače:\n"
 "      -o\tomezí NÁZVY_VOLEB na ty, které jsou definovány pro použití\n"
@@ -5013,7 +5280,8 @@ msgstr ""
 "    Vrátí úspěch, je-li NÁZEV_VOLBY zapnut. Selže, byl-li zadán neplatný\n"
 "    přepínač nebo je-li NÁZEV_VOLBY vypnut."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5021,22 +5289,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Naformátuje a vypíše ARGUMENTY podle definice FORMÁTU.\n"
@@ -5045,10 +5319,13 @@ msgstr ""
 "      -v proměnná\tvýstup umístí do proměnné shellu PROMĚNNÁ namísto\n"
 "    \t\todeslání na standardní výstup.\n"
 "    \n"
-"    FORMÁT je řetězec znaků, který obsahuje tři druhy objektů: obyčejné znaky,\n"
-"    které jsou prostě zkopírovány na standardní výstup, posloupnosti escapových\n"
+"    FORMÁT je řetězec znaků, který obsahuje tři druhy objektů: obyčejné "
+"znaky,\n"
+"    které jsou prostě zkopírovány na standardní výstup, posloupnosti "
+"escapových\n"
 "    znaků, které jsou zkonvertovány a zkopírovány na standardní výstup a\n"
-"    formátovací definice, z nichž každá způsobí vytištění dalšího argumentu.\n"
+"    formátovací definice, z nichž každá způsobí vytištění dalšího "
+"argumentu.\n"
 "    \n"
 "    Tento printf interpretuje vedle standardních formátovacích definic\n"
 "    popsaných v printf(1) a printf(3) též:\n"
@@ -5064,12 +5341,14 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedošlo k chybě\n"
 "    zápisu nebo přiřazení."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5103,19 +5382,21 @@ msgstr ""
 "      -E\tpoužije pravidla doplňování á akce na „prázdné“ příkazy –\n"
 "    \tpravidla doplňování se uplatní na prázdný řádek\n"
 "    \n"
-"    Použije-li se doplňování, akce se uplatní v pořadí, v jakém jsou vypsány\n"
+"    Použije-li se doplňování, akce se uplatní v pořadí, v jakém jsou "
+"vypsány\n"
 "    přepínače psané velkými písmeny výše. Přepínač -D má přednost před\n"
 "    přepínačem -E.\n"
 "    \n"
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5130,13 +5411,16 @@ msgstr ""
 "    Návratový kód:\n"
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5174,30 +5458,39 @@ msgstr ""
 "    Argumenty:\n"
 "    Každý NÁZEV odkazuje na příkaz, pro který musí být předem definováno\n"
 "    pravidlo (definice) doplňování pomocí vestavěného příkazu „complete“.\n"
-"    Nejsou-li zadány žádné NÁZVY, musí být compopt volán funkcí, která právě\n"
-"    generuje doplňování. Změněny pak budou možnosti tohoto právě prováděného\n"
+"    Nejsou-li zadány žádné NÁZVY, musí být compopt volán funkcí, která "
+"právě\n"
+"    generuje doplňování. Změněny pak budou možnosti tohoto právě "
+"prováděného\n"
 "    generátoru doplňování.\n"
 "    \n"
 "    Návratový kód:\n"
-"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV měl definováno\n"
+"    Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV měl "
+"definováno\n"
 "    pravidlo doplňování."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5207,16 +5500,19 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Načte řádky ze standardního vstupu do proměnné typu indexované pole.\n"
 "    \n"
-"    Načte řádky ze standardního vstupu nebo z deskriptoru souboru FD, byl-li\n"
+"    Načte řádky ze standardního vstupu nebo z deskriptoru souboru FD, byl-"
+"li\n"
 "    zadán přepínač -u, do proměnné POLE, která je typu indexované pole.\n"
 "    Implicitním POLEM je proměnná MAPFILE.\n"
 "    \n"
@@ -5249,7 +5545,7 @@ msgstr ""
 "    Vrátí úspěch, pokud nebyl zadán neplatný přepínač, POLE nebylo jen pro\n"
 "    čtení a bylo indexovaným polem."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5270,7 +5566,8 @@ msgstr ""
 #~ "; 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"
+#~ "    The value of EXPR indicates how many call frames to go back before "
+#~ "the\n"
 #~ "    current one; the top frame is frame 0."
 #~ msgstr ""
 #~ "; tato dodatečná informace může být\n"
@@ -5286,7 +5583,8 @@ msgstr ""
 #~ msgstr "xrealloc: nelze alokovat %'lu bajtů"
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: %s:%d: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)"
+#~ msgstr ""
+#~ "xrealloc: %s:%d: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)"
 
 #~ msgid " "
 #~ msgstr " "
@@ -5300,7 +5598,8 @@ msgstr ""
 #~ msgid "can be used used to provide a stack trace."
 #~ msgstr "lze využít při výpisu zásobníku volání."
 
-#~ msgid "The value of EXPR indicates how many call frames to go back before the"
+#~ msgid ""
+#~ "The value of EXPR indicates how many call frames to go back before the"
 #~ msgstr "Hodnota VÝRAZ značí, kolik rámců volání se má jít zpět před"
 
 #~ msgid "current one; the top frame is frame 0."
@@ -5321,38 +5620,46 @@ msgstr ""
 #~ msgid "back up through the list with the `popd' command."
 #~ msgstr "vrátit příkazem „popd“."
 
-#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgid ""
+#~ "The -l flag specifies that `dirs' should not print shorthand versions"
 #~ msgstr "Příznak -l značí, že „dirs“ nemá vypisovat zkrácené verze adresářů,"
 
-#~ msgid "of directories which are relative to your home directory.  This means"
+#~ msgid ""
+#~ "of directories which are relative to your home directory.  This means"
 #~ msgstr "které leží pod vaším domovským adresářem. To znamená, že „~/bin“"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
 #~ msgstr "smí být zobrazen jako „/homes/bfox/bin“. Příznak -v způsobí, že"
 
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
-#~ msgstr "„dirs“ vypíše zásobník adresářů záznam po záznamu na samostatné řádky"
+#~ msgstr ""
+#~ "„dirs“ vypíše zásobník adresářů záznam po záznamu na samostatné řádky"
 
-#~ msgid "prepending the directory name with its position in the stack.  The -p"
+#~ msgid ""
+#~ "prepending the directory name with its position in the stack.  The -p"
 #~ msgstr "a před název adresáře uvede jeho pořadí v zásobníku. Příznak -p"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "dělá to samé, ale bez informace o umístění na zásobníku."
 
-#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgid ""
+#~ "The -c flag clears the directory stack by deleting all of the elements."
 #~ msgstr "Příznak -c vyprázdní zásobník smazáním všem prvků."
 
-#~ msgid "+N   displays the Nth entry counting from the left of the list shown by"
+#~ msgid ""
+#~ "+N   displays the Nth entry counting from the left of the list shown by"
 #~ msgstr "+N   zobrazí N. položku počítáno zleva na seznamu, který by ukázal"
 
 #~ msgid "     dirs when invoked without options, starting with zero."
 #~ msgstr "     příkaz dirs bez jakýchkoliv přepínačů, počítáno od nuly."
 
-#~ msgid "-N   displays the Nth entry counting from the right of the list shown by"
+#~ msgid ""
+#~ "-N   displays the Nth entry counting from the right of the list shown by"
 #~ msgstr "-N   zobrazí N. položku počítáno zprava na seznamu, který by ukázal"
 
 #~ msgid "Adds a directory to the top of the directory stack, or rotates"
-#~ msgstr "Přidá adresář na vrchol zásobníku adresářů, nebo rotuje zásobník tak,"
+#~ msgstr ""
+#~ "Přidá adresář na vrchol zásobníku adresářů, nebo rotuje zásobník tak,"
 
 #~ msgid "the stack, making the new top of the stack the current working"
 #~ msgstr "že nový vrchol zásobníku se stane pracovním adresářem."
@@ -5376,7 +5683,8 @@ msgstr ""
 #~ msgstr "     zprava seznamu, který by ukázal „dirs“, počínaje od"
 
 #~ msgid "-n   suppress the normal change of directory when adding directories"
-#~ msgstr "-n   potlačí obvyklou změnu pracovního adresáře při přidávání adresářů"
+#~ msgstr ""
+#~ "-n   potlačí obvyklou změnu pracovního adresáře při přidávání adresářů"
 
 #~ msgid "     to the stack, so only the stack is manipulated."
 #~ msgstr "     na zásobník, takže se změní jen obsah zásobníku."
@@ -5417,8 +5725,10 @@ msgstr ""
 #~ msgid "     removes the last directory, `popd -1' the next to last."
 #~ msgstr "     odstraní poslední adresář, “popd -1“ předposlední."
 
-#~ msgid "-n   suppress the normal change of directory when removing directories"
-#~ msgstr "-n   potlačí obvyklou změnu pracovního adresáře při odebírání adresářů"
+#~ msgid ""
+#~ "-n   suppress the normal change of directory when removing directories"
+#~ msgstr ""
+#~ "-n   potlačí obvyklou změnu pracovního adresáře při odebírání adresářů"
 
 #~ msgid "     from the stack, so only the stack is manipulated."
 #~ msgstr "     ze zásobníku, takže pouze zásobník dozná změny."
@@ -5444,7 +5754,8 @@ msgstr ""
 #~ msgid ""
 #~ "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,\n"
 #~ "    break N levels."
-#~ msgstr "Ukončí smyčku FOR, WHILE nebo UNTIL. Je-li zadáno N, ukončí N úrovní."
+#~ msgstr ""
+#~ "Ukončí smyčku FOR, WHILE nebo UNTIL. Je-li zadáno N, ukončí N úrovní."
 
 #~ msgid ""
 #~ "Run a shell builtin.  This is useful when you wish to rename a\n"
@@ -5470,16 +5781,22 @@ msgstr ""
 #~ msgid ""
 #~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell\n"
 #~ "    function called `ls', and you wish to call the command `ls', you can\n"
-#~ "    say \"command ls\".  If the -p option is given, a default value is used\n"
-#~ "    for PATH that is guaranteed to find all of the standard utilities.  If\n"
-#~ "    the -V or -v option is given, a string is printed describing COMMAND.\n"
+#~ "    say \"command ls\".  If the -p option is given, a default value is "
+#~ "used\n"
+#~ "    for PATH that is guaranteed to find all of the standard utilities.  "
+#~ "If\n"
+#~ "    the -V or -v option is given, a string is printed describing "
+#~ "COMMAND.\n"
 #~ "    The -V option produces a more verbose description."
 #~ msgstr ""
 #~ "Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu. Máte-li shellovou\n"
 #~ "    funkci pojmenovanou „ls“, a chcete-li zavolat příkaz „ls“, použijte\n"
-#~ "    „command ls“. Je-li zadán přepínač -p, bude pro PATH použita implicitní\n"
-#~ "    hodnota, která zaručuje, že budou nalezeny všechny standardní nástroje.\n"
-#~ "    Je-li zadán přepínač -V nebo -v, bude vytištěn řetězec popisující PŘÍKAZ.\n"
+#~ "    „command ls“. Je-li zadán přepínač -p, bude pro PATH použita "
+#~ "implicitní\n"
+#~ "    hodnota, která zaručuje, že budou nalezeny všechny standardní "
+#~ "nástroje.\n"
+#~ "    Je-li zadán přepínač -V nebo -v, bude vytištěn řetězec popisující "
+#~ "PŘÍKAZ.\n"
 #~ "    Přepínač -V produkuje podrobnější popis."
 
 #~ msgid ""
@@ -5491,7 +5808,8 @@ msgstr ""
 #~ "    \n"
 #~ "      -a\tto make NAMEs arrays (if supported)\n"
 #~ "      -f\tto select from among function names only\n"
-#~ "      -F\tto display function names (and line number and source file name if\n"
+#~ "      -F\tto display function names (and line number and source file name "
+#~ "if\n"
 #~ "    \tdebugging) without definitions\n"
 #~ "      -i\tto make NAMEs have the `integer' attribute\n"
 #~ "      -r\tto make NAMEs readonly\n"
@@ -5505,28 +5823,33 @@ msgstr ""
 #~ "    and definition.  The -F option restricts the display to function\n"
 #~ "    name only.\n"
 #~ "    \n"
-#~ "    Using `+' instead of `-' turns off the given attribute instead.  When\n"
+#~ "    Using `+' instead of `-' turns off the given attribute instead.  "
+#~ "When\n"
 #~ "    used in a function, makes NAMEs local, as with the `local' command."
 #~ msgstr ""
 #~ "Deklaruje proměnné a/nebo jim nastaví atributy. Nejsou-li zadány NÁZVY,\n"
-#~ "    tak místo toho zobrazí hodnoty proměnných. Přepínač -p zobrazí atributy\n"
+#~ "    tak místo toho zobrazí hodnoty proměnných. Přepínač -p zobrazí "
+#~ "atributy\n"
 #~ "    a hodnoty pro každý NÁZEV.\n"
 #~ "    \n"
 #~ "    Příznaky jsou:\n"
 #~ "    \n"
 #~ "      -a\tučiní NÁZVY poli (je-li podporováno)\n"
 #~ "      -f\tvybírá pouze mezi názvy funkcí\n"
-#~ "      -F\tzobrazí názvy funkcí (a číslo řádku a název zdrojového souboru,\n"
+#~ "      -F\tzobrazí názvy funkcí (a číslo řádku a název zdrojového "
+#~ "souboru,\n"
 #~ "        \tje-li zapnuto ladění) bez definic\n"
 #~ "      -i\tpřiřadí NÁZVŮM atribut „integer“ (číslo)\n"
 #~ "      -r\tučiní NÁZVY jen pro čtení\n"
 #~ "      -t\tpřiřadí NÁZVŮM atribut „trace“ (sledování)\n"
 #~ "      -x\tvyexportuje NÁZVY\n"
 #~ "    \n"
-#~ "    Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte „let“),\n"
+#~ "    Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte "
+#~ "„let“),\n"
 #~ "    když je do proměnné přiřazováno.\n"
 #~ "    \n"
-#~ "    Při zobrazování hodnot proměnných -f zobrazí názvy a definice funkcí.\n"
+#~ "    Při zobrazování hodnot proměnných -f zobrazí názvy a definice "
+#~ "funkcí.\n"
 #~ "    Přepínač -F omezí výpis jen na názvy funkcí.\n"
 #~ "    \n"
 #~ "    Pomocí „+“ namísto „-“ daný atribut odeberete. Je-li použito uvnitř\n"
@@ -5541,11 +5864,14 @@ msgstr ""
 #~ "    have a visible scope restricted to that function and its children."
 #~ msgstr ""
 #~ "Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU.\n"
-#~ "    LOCAL smí být použito jen uvnitř funkcí. Učiní proměnnou NÁZEV viditelnou\n"
+#~ "    LOCAL smí být použito jen uvnitř funkcí. Učiní proměnnou NÁZEV "
+#~ "viditelnou\n"
 #~ "    jen v dané funkci a jejích potomcích."
 
-#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
-#~ msgstr "Vypíše ARGUMENTY. Je-li zadáni -n, závěrečný konec řádku bude potlačen."
+#~ msgid ""
+#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgstr ""
+#~ "Vypíše ARGUMENTY. Je-li zadáni -n, závěrečný konec řádku bude potlačen."
 
 #~ msgid ""
 #~ "Enable and disable builtin shell commands.  This allows\n"
@@ -5559,24 +5885,36 @@ msgstr ""
 #~ "    previously loaded with -f.  If no non-option names are given, or\n"
 #~ "    the -p option is supplied, a list of builtins is printed.  The\n"
 #~ "    -a option means to print every builtin with an indication of whether\n"
-#~ "    or not it is enabled.  The -s option restricts the output to the POSIX.2\n"
-#~ "    `special' builtins.  The -n option displays a list of all disabled builtins."
+#~ "    or not it is enabled.  The -s option restricts the output to the "
+#~ "POSIX.2\n"
+#~ "    `special' builtins.  The -n option displays a list of all disabled "
+#~ "builtins."
 #~ msgstr ""
 #~ "Povolí nebo zakáže vestavěný příkaz shellu. To vám umožňuje použít\n"
-#~ "    příkaz z disku, který má stejné jméno jako vestavěný příkaz shellu, aniž\n"
+#~ "    příkaz z disku, který má stejné jméno jako vestavěný příkaz shellu, "
+#~ "aniž\n"
 #~ "    byste museli zadávat celou cestu. Je-li použito -n, NÁZVY se stanou\n"
-#~ "    zakázanými, jinak budou povoleny. Například „test“ z PATH namísto verze\n"
-#~ "    vestavěné do shellu lze používat tak, že napíšete „enable -n test“. Na\n"
-#~ "    systémech podporujících dynamické zavádění přepínač -f může být použit\n"
-#~ "    pro zavedení nových vestavěných příkazů ze sdíleného objektu NÁZEV_SOUBORU.\n"
-#~ "    Přepínač -d odstraní vestavěný příkaz zavedený přes -f. Není-li zadán\n"
-#~ "    žádný přepínač nebo je-li zadán přepínač -p, bude vypsán seznam vestavěných\n"
-#~ "    příkazů. Přepínač -a znamená, že budou vypsány všechny vestavěné příkazy a\n"
-#~ "    u každého bude vyznačeno, zda je povolen nebo zakázán. Přepínač -s omezí\n"
+#~ "    zakázanými, jinak budou povoleny. Například „test“ z PATH namísto "
+#~ "verze\n"
+#~ "    vestavěné do shellu lze používat tak, že napíšete „enable -n test“. "
+#~ "Na\n"
+#~ "    systémech podporujících dynamické zavádění přepínač -f může být "
+#~ "použit\n"
+#~ "    pro zavedení nových vestavěných příkazů ze sdíleného objektu "
+#~ "NÁZEV_SOUBORU.\n"
+#~ "    Přepínač -d odstraní vestavěný příkaz zavedený přes -f. Není-li "
+#~ "zadán\n"
+#~ "    žádný přepínač nebo je-li zadán přepínač -p, bude vypsán seznam "
+#~ "vestavěných\n"
+#~ "    příkazů. Přepínač -a znamená, že budou vypsány všechny vestavěné "
+#~ "příkazy a\n"
+#~ "    u každého bude vyznačeno, zda je povolen nebo zakázán. Přepínač -s "
+#~ "omezí\n"
 #~ "    výpis na příkazy uvedené v POSIX.2. Přepínač -n zobrazí seznam všech\n"
 #~ "    zakázaných vestavěných příkazů."
 
-#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgid ""
+#~ "Read ARGs as input to the shell and execute the resulting command(s)."
 #~ msgstr "Načte ARGUMENTY jako vstup shellu a výsledný příkaz(y) provede."
 
 #~ msgid ""
@@ -5590,11 +5928,14 @@ msgstr ""
 #~ "    then the shell exits, unless the shell option `execfail' is set."
 #~ msgstr ""
 #~ "Provede SOUBOR, přičemž nahradí tento shell zadaným programem.\n"
-#~ "    Není-li SOUBOR zadán, přesměrování zapůsobí v tomto shellu. Je-li prvním\n"
-#~ "    argumentem „-l“, bude do nultého argumentu SOUBORU umístěna pomlčka tak,\n"
+#~ "    Není-li SOUBOR zadán, přesměrování zapůsobí v tomto shellu. Je-li "
+#~ "prvním\n"
+#~ "    argumentem „-l“, bude do nultého argumentu SOUBORU umístěna pomlčka "
+#~ "tak,\n"
 #~ "    jak to dělá login. Je-li zadán přepínač „-c“, bude SOUBOR spuštěn\n"
 #~ "    s prázdným prostředím. Přepínač „-a“ znamená, že argv[0] prováděného\n"
-#~ "    procesu bude nastaven na NÁZEV. Pokud soubor nemůže být proveden a shell\n"
+#~ "    procesu bude nastaven na NÁZEV. Pokud soubor nemůže být proveden a "
+#~ "shell\n"
 #~ "    není interaktivní, pak shell bude ukončen, pokud přepínač shellu\n"
 #~ "    „execfail“ není nastaven."
 
@@ -5606,20 +5947,31 @@ msgstr ""
 #~ "    remembered.  If the -p option is supplied, PATHNAME is used as the\n"
 #~ "    full pathname of NAME, and no path search is performed.  The -r\n"
 #~ "    option causes the shell to forget all remembered locations.  The -d\n"
-#~ "    option causes the shell to forget the remembered location of each NAME.\n"
+#~ "    option causes the shell to forget the remembered location of each "
+#~ "NAME.\n"
 #~ "    If the -t option is supplied the full pathname to which each NAME\n"
-#~ "    corresponds is printed.  If multiple NAME arguments are supplied with\n"
-#~ "    -t, the NAME is printed before the hashed full pathname.  The -l option\n"
-#~ "    causes output to be displayed in a format that may be reused as input.\n"
-#~ "    If no arguments are given, information about remembered commands is displayed."
+#~ "    corresponds is printed.  If multiple NAME arguments are supplied "
+#~ "with\n"
+#~ "    -t, the NAME is printed before the hashed full pathname.  The -l "
+#~ "option\n"
+#~ "    causes output to be displayed in a format that may be reused as "
+#~ "input.\n"
+#~ "    If no arguments are given, information about remembered commands is "
+#~ "displayed."
 #~ msgstr ""
 #~ "Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována.\n"
-#~ "    Za použití přepínače -p se vezme NÁZEV_CESTY za plnou cestu k NÁZVU a\n"
-#~ "    žádné vyhledávání cesty se nekoná. Přepínač -r způsobí, že shell zapomene\n"
-#~ "    všechny zapamatovaná umístění. Přepínač -d způsobí, že shell zapomene\n"
-#~ "    zapamatovaná umístění každého NÁZVU. Je-li zadán přepínač -t, bude vypsána\n"
-#~ "    plná cesta ke každému NÁZVU. Je-li s -t zadáno více NÁZVŮ, NÁZEV bude\n"
-#~ "    vypsán před uloženou celou cestou. Přepínač -l vytvoří takový výstup,\n"
+#~ "    Za použití přepínače -p se vezme NÁZEV_CESTY za plnou cestu k NÁZVU "
+#~ "a\n"
+#~ "    žádné vyhledávání cesty se nekoná. Přepínač -r způsobí, že shell "
+#~ "zapomene\n"
+#~ "    všechny zapamatovaná umístění. Přepínač -d způsobí, že shell "
+#~ "zapomene\n"
+#~ "    zapamatovaná umístění každého NÁZVU. Je-li zadán přepínač -t, bude "
+#~ "vypsána\n"
+#~ "    plná cesta ke každému NÁZVU. Je-li s -t zadáno více NÁZVŮ, NÁZEV "
+#~ "bude\n"
+#~ "    vypsán před uloženou celou cestou. Přepínač -l vytvoří takový "
+#~ "výstup,\n"
 #~ "    který lze opět použít jako vstup. Nejsou-li zadány žádné argumenty,\n"
 #~ "    budou vypsány informace o zapamatovaných příkazech."
 
@@ -5631,20 +5983,27 @@ msgstr ""
 #~ "    a short usage synopsis."
 #~ msgstr ""
 #~ "Zobrazí užitečné informace o vestavěných příkazech. Je-li zadán VZOREK,\n"
-#~ "    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak je\n"
-#~ "    vytištěn seznam vestavěných příkazů. Přepínač -s omezí výstup o každém\n"
+#~ "    vrátí podrobnou nápovědu ke všem příkazům odpovídajícím VZORKU, jinak "
+#~ "je\n"
+#~ "    vytištěn seznam vestavěných příkazů. Přepínač -s omezí výstup "
+#~ "o každém\n"
 #~ "    vestavěném příkazu odpovídajícího VZORKU na stručný popis použití."
 
 #~ msgid ""
 #~ "By default, removes each JOBSPEC argument from the table of active jobs.\n"
-#~ "    If the -h option is given, the job is not removed from the table, but is\n"
+#~ "    If the -h option is given, the job is not removed from the table, but "
+#~ "is\n"
 #~ "    marked so that SIGHUP is not sent to the job if the shell receives a\n"
-#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all\n"
-#~ "    jobs from the job table; the -r option means to remove only running jobs."
+#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove "
+#~ "all\n"
+#~ "    jobs from the job table; the -r option means to remove only running "
+#~ "jobs."
 #~ msgstr ""
 #~ "Implicitně odstraní každý argument ÚLOHA z tabulky aktivních úloh. Je-li\n"
-#~ "    zadán přepínač -h, úloha není odstraněna z tabulky, ale je označena tak.\n"
-#~ "    že úloze nebude zaslán SIGHUP, když shell obdrží SIGHUP. Přepínač -a,\n"
+#~ "    zadán přepínač -h, úloha není odstraněna z tabulky, ale je označena "
+#~ "tak.\n"
+#~ "    že úloze nebude zaslán SIGHUP, když shell obdrží SIGHUP. Přepínač -"
+#~ "a,\n"
 #~ "    pokud není uvedena ÚLOHA, znamená, že všechny úlohy budou odstraněny\n"
 #~ "    z tabulky úloh. Přepínač -r znamená, že pouze běžící úlohy budou\n"
 #~ "    odstraněny."
@@ -5664,9 +6023,12 @@ msgstr ""
 #~ "    function.  Some variables cannot be unset; also see readonly."
 #~ msgstr ""
 #~ "Pro každé JMÉNO odstraní odpovídající proměnnou nebo funkci.\n"
-#~ "    Spolu s „-v“ bude unset fungovat jen na proměnné. S příznakem „-f“ bude\n"
-#~ "    unset fungovat jen na funkce. Bez těchto dvou příznaků unset nejprve zkusí\n"
-#~ "    zrušit proměnnou a pokud toto selže, tak zkusí zrušit funkci. Některé\n"
+#~ "    Spolu s „-v“ bude unset fungovat jen na proměnné. S příznakem „-f“ "
+#~ "bude\n"
+#~ "    unset fungovat jen na funkce. Bez těchto dvou příznaků unset nejprve "
+#~ "zkusí\n"
+#~ "    zrušit proměnnou a pokud toto selže, tak zkusí zrušit funkci. "
+#~ "Některé\n"
 #~ "    proměnné nelze odstranit. Taktéž vizte příkaz „readonly“."
 
 #~ msgid ""
@@ -5679,9 +6041,12 @@ msgstr ""
 #~ "    processing."
 #~ msgstr ""
 #~ "NÁZVY jsou označeny pro automatické exportování do prostředí následně\n"
-#~ "    prováděných příkazů. Je-li zadán přepínač -f, NÁZVY se vztahují k funkcím.\n"
-#~ "    Nejsou-li zadány žádné NÁZVY nebo je-li zadáno „-p“, bude vytištěn seznam\n"
-#~ "    všech názvů, které jsou v tomto shellu exportovány. Argument „-n“ nařizuje\n"
+#~ "    prováděných příkazů. Je-li zadán přepínač -f, NÁZVY se vztahují "
+#~ "k funkcím.\n"
+#~ "    Nejsou-li zadány žádné NÁZVY nebo je-li zadáno „-p“, bude vytištěn "
+#~ "seznam\n"
+#~ "    všech názvů, které jsou v tomto shellu exportovány. Argument „-n“ "
+#~ "nařizuje\n"
 #~ "    odstranit vlastnost exportovat z následujících NÁZVŮ. Argument „--“\n"
 #~ "    zakazuje zpracování dalších přepínačů."
 
@@ -5689,16 +6054,21 @@ msgstr ""
 #~ "The given NAMEs are marked readonly and the values of these NAMEs may\n"
 #~ "    not be changed by subsequent assignment.  If the -f option is given,\n"
 #~ "    then functions corresponding to the NAMEs are so marked.  If no\n"
-#~ "    arguments are given, or if `-p' is given, a list of all readonly names\n"
+#~ "    arguments are given, or if `-p' is given, a list of all readonly "
+#~ "names\n"
 #~ "    is printed.  The `-a' option means to treat each NAME as\n"
 #~ "    an array variable.  An argument of `--' disables further option\n"
 #~ "    processing."
 #~ msgstr ""
 #~ "Zadané NÁZVY budou označeny jako jen pro čtení a hodnoty těchto NÁZVŮ\n"
-#~ "    nebude možné změnit následným přiřazením. Je-li zadán přepínač -f, pak\n"
-#~ "    funkce těchto NÁZVŮ budou takto označeny. Nejsou-li zadány žádné argumenty\n"
-#~ "    nebo je-li zadáno „-p“, bude vytištěn seznam všech jmen jen pro čtení.\n"
-#~ "    Přepínač „-a“ znamená, že s každým NÁZVEM bude zacházeno jako s proměnnou\n"
+#~ "    nebude možné změnit následným přiřazením. Je-li zadán přepínač -f, "
+#~ "pak\n"
+#~ "    funkce těchto NÁZVŮ budou takto označeny. Nejsou-li zadány žádné "
+#~ "argumenty\n"
+#~ "    nebo je-li zadáno „-p“, bude vytištěn seznam všech jmen jen pro "
+#~ "čtení.\n"
+#~ "    Přepínač „-a“ znamená, že s každým NÁZVEM bude zacházeno jako "
+#~ "s proměnnou\n"
 #~ "    typu pole. Argument „--“ zakáže zpracování dalších přepínačů."
 
 #~ msgid ""
@@ -5728,61 +6098,79 @@ msgstr ""
 #~ "For each NAME, indicate how it would be interpreted if used as a\n"
 #~ "    command name.\n"
 #~ "    \n"
-#~ "    If the -t option is used, `type' outputs a single word which is one of\n"
-#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n"
-#~ "    alias, shell reserved word, shell function, shell builtin, disk file,\n"
+#~ "    If the -t option is used, `type' outputs a single word which is one "
+#~ "of\n"
+#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is "
+#~ "an\n"
+#~ "    alias, shell reserved word, shell function, shell builtin, disk "
+#~ "file,\n"
 #~ "    or unfound, respectively.\n"
 #~ "    \n"
 #~ "    If the -p flag is used, `type' either returns the name of the disk\n"
 #~ "    file that would be executed, or nothing if `type -t NAME' would not\n"
 #~ "    return `file'.\n"
 #~ "    \n"
-#~ "    If the -a flag is used, `type' displays all of the places that contain\n"
+#~ "    If the -a flag is used, `type' displays all of the places that "
+#~ "contain\n"
 #~ "    an executable named `file'.  This includes aliases, builtins, and\n"
 #~ "    functions, if and only if the -p flag is not also used.\n"
 #~ "    \n"
 #~ "    The -f flag suppresses shell function lookup.\n"
 #~ "    \n"
-#~ "    The -P flag forces a PATH search for each NAME, even if it is an alias,\n"
-#~ "    builtin, or function, and returns the name of the disk file that would\n"
+#~ "    The -P flag forces a PATH search for each NAME, even if it is an "
+#~ "alias,\n"
+#~ "    builtin, or function, and returns the name of the disk file that "
+#~ "would\n"
 #~ "    be executed."
 #~ msgstr ""
 #~ "O každém NÁZVU řekne, jak by byl interpretován, kdyby byl použit jako\n"
 #~ "    název příkazu.\n"
 #~ "    \n"
-#~ "    Je-li použit přepínač -t, „type“ vypíše jedno slovo z těchto: „alias“,\n"
+#~ "    Je-li použit přepínač -t, „type“ vypíše jedno slovo z těchto: "
+#~ "„alias“,\n"
 #~ "    „keyword“, „function“, „builtin“, „file“ nebo „“, je-li NÁZEV alias,\n"
-#~ "    klíčové slovo shellu, shellová funkce, vestavěný příkaz shellu, soubor\n"
+#~ "    klíčové slovo shellu, shellová funkce, vestavěný příkaz shellu, "
+#~ "soubor\n"
 #~ "    na disku nebo nenalezený soubor.\n"
 #~ "    \n"
-#~ "    Je-li použit přepínač -p, „type“ buď vrátí jméno souboru na disku, který\n"
+#~ "    Je-li použit přepínač -p, „type“ buď vrátí jméno souboru na disku, "
+#~ "který\n"
 #~ "    by byl spuštěn, nebo nic, pokud „type -t NÁZEV“ by nevrátil „file“.\n"
 #~ "    \n"
-#~ "    Je-li použit přepínač -a, „type“ zobrazí všechna místa, kde se nalézá\n"
-#~ "    spustitelný program pojmenovaný „soubor“. To zahrnuje aliasy, vestavěné\n"
-#~ "    příkazy a funkce jen a pouze tehdy, když není rovněž použit přepínač -p.\n"
+#~ "    Je-li použit přepínač -a, „type“ zobrazí všechna místa, kde se "
+#~ "nalézá\n"
+#~ "    spustitelný program pojmenovaný „soubor“. To zahrnuje aliasy, "
+#~ "vestavěné\n"
+#~ "    příkazy a funkce jen a pouze tehdy, když není rovněž použit přepínač -"
+#~ "p.\n"
 #~ "    \n"
 #~ "    Přepínač -f potlačí hledání mezi funkcemi shellu.\n"
 #~ "    \n"
 #~ "    Přepínač -P vynutí prohledání PATH na každý NÁZEV, dokonce i když se\n"
-#~ "    jedná o alias, vestavěný příkaz nebo funkci, a vrátí název souboru na\n"
+#~ "    jedná o alias, vestavěný příkaz nebo funkci, a vrátí název souboru "
+#~ "na\n"
 #~ "    disku, který by byl spuštěn."
 
 #~ msgid ""
 #~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if\n"
-#~ "    `-S' is supplied, the current value of the mask is printed.  The `-S'\n"
-#~ "    option makes the output symbolic; otherwise an octal number is output.\n"
+#~ "    `-S' is supplied, the current value of the mask is printed.  The `-"
+#~ "S'\n"
+#~ "    option makes the output symbolic; otherwise an octal number is "
+#~ "output.\n"
 #~ "    If `-p' is supplied, and MODE is omitted, the output is in a form\n"
 #~ "    that may be used as input.  If MODE begins with a digit, it is\n"
-#~ "    interpreted as an octal number, otherwise it is a symbolic mode string\n"
+#~ "    interpreted as an octal number, otherwise it is a symbolic mode "
+#~ "string\n"
 #~ "    like that accepted by chmod(1)."
 #~ msgstr ""
 #~ "Uživatelská maska práv vytvářených souborů je nastavena na MÓD. Je-li\n"
-#~ "    MÓD vynechán nebo je-li uvedeno „-S“, bude vytištěna současná hodnota\n"
+#~ "    MÓD vynechán nebo je-li uvedeno „-S“, bude vytištěna současná "
+#~ "hodnota\n"
 #~ "    masky. Přepínač „-S“ učiní výstup symbolický, jinak bude výstupem\n"
 #~ "    osmičkové číslo. Je-li zadáno „-p“ a MÓD je vynechán, bude výstup ve\n"
 #~ "    formátu, který lze použít jako vstup. Začíná-li MÓD číslicí, bude\n"
-#~ "    interpretován jako osmičkové číslo, jinak jako řetězec symbolického zápisu\n"
+#~ "    interpretován jako osmičkové číslo, jinak jako řetězec symbolického "
+#~ "zápisu\n"
 #~ "    práv tak, jak jej chápe chmod(1)."
 
 #~ msgid ""
@@ -5792,7 +6180,8 @@ msgstr ""
 #~ "    all child processes of the shell are waited for."
 #~ msgstr ""
 #~ "Počká na zadaný proces a nahlásí jeho návratový kód. Není-li N zadáno,\n"
-#~ "    bude se čekat na všechny právě aktivní procesy potomků a návratová hodnota\n"
+#~ "    bude se čekat na všechny právě aktivní procesy potomků a návratová "
+#~ "hodnota\n"
 #~ "    bude nula. N je ID procesu. Není-li zadáno, bude se čekat na všechny\n"
 #~ "    procesy potomků tohoto shellu."
 
@@ -5815,22 +6204,30 @@ msgstr ""
 #~ "    not each is set."
 #~ msgstr ""
 #~ "Přepne hodnoty proměnných řídící volitelné chování. Přepínač -s znamená,\n"
-#~ "    že se každý NÁZEV_VOLBY zapne (nastaví). Přepínač -u každý NÁZEV_VOLBY\n"
+#~ "    že se každý NÁZEV_VOLBY zapne (nastaví). Přepínač -u každý "
+#~ "NÁZEV_VOLBY\n"
 #~ "    vypne. Přepínač -q potlačí výstup. Zda je nebo není nastaven každý\n"
-#~ "    NÁZEV_VOLBY, indikuje návratový kód. Přepínač -o omezí NÁZVY_VOLEB na ty,\n"
+#~ "    NÁZEV_VOLBY, indikuje návratový kód. Přepínač -o omezí NÁZVY_VOLEB na "
+#~ "ty,\n"
 #~ "    které jsou definovány pro použití s „set -o“. Bez přepínačů nebo\n"
 #~ "    s přepínačem -p je zobrazen seznam všech nastavitelných voleb včetně\n"
 #~ "    indikace, zda je každá nastavena."
 
 #~ msgid ""
 #~ "For each NAME, specify how arguments are to be completed.\n"
-#~ "    If the -p option is supplied, or if no options are supplied, existing\n"
-#~ "    completion specifications are printed in a way that allows them to be\n"
-#~ "    reused as input.  The -r option removes a completion specification for\n"
-#~ "    each NAME, or, if no NAMEs are supplied, all completion specifications."
+#~ "    If the -p option is supplied, or if no options are supplied, "
+#~ "existing\n"
+#~ "    completion specifications are printed in a way that allows them to "
+#~ "be\n"
+#~ "    reused as input.  The -r option removes a completion specification "
+#~ "for\n"
+#~ "    each NAME, or, if no NAMEs are supplied, all completion "
+#~ "specifications."
 #~ msgstr ""
 #~ "U každého NÁZVU sdělí, jak budou argumenty doplněny. Je-li zadán\n"
-#~ "    přepínač -p nebo není-li zadán přepínač žádný, budou existující definice\n"
+#~ "    přepínač -p nebo není-li zadán přepínač žádný, budou existující "
+#~ "definice\n"
 #~ "    doplňování vytištěny tak. že je bude možné znovu použít jako vstup.\n"
-#~ "    Přepínač -r odstraní definici doplnění pro každý NÁZEV nebo chybí-li NÁZVY,\n"
+#~ "    Přepínač -r odstraní definici doplnění pro každý NÁZEV nebo chybí-li "
+#~ "NÁZVY,\n"
 #~ "    odstraní všechny definice."
diff --git a/po/da.gmo b/po/da.gmo
new file mode 100644 (file)
index 0000000..51aba49
Binary files /dev/null and b/po/da.gmo differ
index 4bd0220a55cb5411051aa61666d47c1a0bb8f1b8..d249d153dc4576895a379f58fad46951218c0440 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-03-18 01:36+0100\n"
 "Last-Translator: Kenneth Nielsen <k.nielsen81@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -24,52 +24,52 @@ msgstr ""
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
 # Den er jeg altså ikke helt sikker på
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "ugyldigt arrayindeks"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: kan ikke konvertere indekseret til associativt array"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: ugyldig nøgle til associativt array"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: kan ikke tildele til ikkenumerisk indeks"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: et indeks skal bruges ved tildeling til associativt array"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: kan ikke oprette %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: kan ikke finde tastetildeling for kommando"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: første ikke-blank-tegn er ikke '\"'"
 
 # Kønnet her er et gæt, hvis det er parenteser eller anførselstegn passer det
 # FEJLRAPPORT
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ingen afsluttende \"%c\" i %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: manglende kolonseparator"
@@ -79,36 +79,36 @@ msgstr "%s: manglende kolonseparator"
 msgid "`%s': invalid alias name"
 msgstr "\"%s\": ugyldigt tastetildelingsnavn"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "linjeredigering ikke slået til"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "\"%s\": ugyldigt tastetildelingsnavn"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: kan ikke læse: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "\"%s\": kan ikke løsne"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "\"%s\": ukendt funktionsnavn"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s er ikke bundet til nogen taster.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s kan kaldes via "
@@ -131,11 +131,15 @@ msgstr ""
 "    \n"
 "    Når UDTRYK udelades returneres "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME ikke indstillet"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "for mange argumenter"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD ikke indstillet"
 
@@ -144,7 +148,7 @@ msgstr "OLDPWD ikke indstillet"
 msgid "line %d: "
 msgstr "linje %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "advarsel: "
@@ -154,11 +158,7 @@ msgstr "advarsel: "
 msgid "%s: usage: "
 msgstr "%s: brug: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "for mange argumenter"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: tilvalg kræver et argument"
@@ -173,7 +173,7 @@ msgstr "%s: numerisk argument påkrævet"
 msgid "%s: not found"
 msgstr "%s: ikke fundet"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: ugyldigt tilvalg"
@@ -183,7 +183,7 @@ msgstr "%s: ugyldigt tilvalg"
 msgid "%s: invalid option name"
 msgstr "%s: ugyldigt tilvalgsnavn"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "\"%s\": ikke et gyldigt identificeringsnavn"
@@ -196,7 +196,7 @@ msgstr "ugyldigt oktaltal"
 msgid "invalid hex number"
 msgstr "ugyldigt heksadecimalt tal"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "ugyldigt tal"
 
@@ -210,7 +210,7 @@ msgstr "%s: ugyldig signalspecifikation"
 msgid "`%s': not a pid or valid job spec"
 msgstr "\"%s\": ikke en pid eller gyldig job-spec"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: skrivebeskyttet variabel"
@@ -282,26 +282,26 @@ msgstr "%s: fejl ved indhentning af nuværende mappe: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: tvetydig job-spec"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: ugyldigt handlingsnavn"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: ingen fuldførselsspecifikation"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "advarsel: tilvalget -F vil måske ikke virke, som du forventer"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "advarsel: tilvalget -C vil måske ikke virke, som du forventer"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "ikke i gang med at eksekvere fuldførelsesfunktion"
 
@@ -313,7 +313,7 @@ msgstr "kan kun bruges i en funktion"
 msgid "cannot use `-f' to make functions"
 msgstr "kan ikke bruge \"-f\" til at lave funktioner"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: skrivebeskyttet funktion"
@@ -323,7 +323,7 @@ msgstr "%s: skrivebeskyttet funktion"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: kan ikke destruere arrayvariabel på denne måde"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: kan ikke konvertere associativt til indekseret array"
@@ -352,8 +352,8 @@ msgstr "%s: ikke dynamisk indlæst"
 msgid "%s: cannot delete: %s"
 msgstr "%s: kan ikke slette: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: er en mappe"
@@ -368,8 +368,7 @@ msgstr "%s: ikke en regulær fil"
 msgid "%s: file is too large"
 msgstr "%s: fil er for stor"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kan ikke eksekvere binær fil"
@@ -455,8 +454,11 @@ msgstr[1] "Skal-kommandoer som matcher nøgleordene \""
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "ingen hjælpeemner matcher \"%s\". Prøv \"help help\" eller \"man -k %s\" eller \"info %s\"."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"ingen hjælpeemner matcher \"%s\". Prøv \"help help\" eller \"man -k %s\" "
+"eller \"info %s\"."
 
 #: builtins/help.def:185
 #, c-format
@@ -474,10 +476,12 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Disse skalkommandoer er defineret internt. Skriv \"help\" for at se denne liste.\n"
+"Disse skalkommandoer er defineret internt. Skriv \"help\" for at se denne "
+"liste.\n"
 "Skriv \"help navn\" for at finde ud af mere om kommandoen \"navn\".\n"
 "Brug \"info bash\" for at få mere generel information om skallen.\n"
-"Brug \"man -k\" eller \"info\" for at finde ud af mere om kommandoer som ikke er \n"
+"Brug \"man -k\" eller \"info\" for at finde ud af mere om kommandoer som "
+"ikke er \n"
 "på listen.\n"
 "\n"
 "En stjerne (*) ved siden af et navn betyder at kommandoen er slået fra.\n"
@@ -491,7 +495,7 @@ msgstr "kan ikke bruge mere end en af -anrw"
 msgid "history position"
 msgstr "historikposition"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: historikudvidelse fejlede"
@@ -514,7 +518,7 @@ msgstr "%s: argumenter skal være processer eller job-id'er"
 msgid "Unknown error"
 msgstr "Ukendt fejl"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "forventede et udtryk"
 
@@ -523,12 +527,12 @@ msgstr "forventede et udtryk"
 msgid "%s: not an indexed array"
 msgstr "%s: ikke en arrayvariabel"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ugyldig filbeskrivelsesspecifikation"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ugyldig filbeskrivelse: %s"
@@ -557,31 +561,31 @@ msgstr "tomt arrayvariabelnavn"
 msgid "array variable support required"
 msgstr "understøttelse af arrayvariabel påkrævet"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "\"%s\": manglende formattegn"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: ugyldig specifikation af tidsudløb"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "\"%c\": ugyldigt formattegn"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "advarsel: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "manglende heksciffer for \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "manglende heksciffer for \\x"
@@ -617,10 +621,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Viser listen af huskede mapper. Mapper tilføjes til listen med\n"
@@ -728,17 +734,17 @@ msgstr ""
 "    \n"
 "Den indbyggede funktion \"dirs\" viser mappestakken."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: ugyldig specifikation af tidsudløb"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "læsefejl: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "kan kun udføre \"return\" fra en funktion eller indlæst skript"
 
@@ -746,17 +752,17 @@ msgstr "kan kun udføre \"return\" fra en funktion eller indlæst skript"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "kan ikke fjerne en funktion og en variabel samtidig"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: kan ikke fjerne"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: kan ikke fjerne: skrivebeskyttet %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ikke en arrayvariabel"
@@ -770,11 +776,11 @@ msgstr "%s: ikke en funktion"
 msgid "shift count"
 msgstr "skifttæller"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "kan ikke indstille og fjerne skaltilvalg samtidig"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ugyldigt navn for skaltilvalg"
@@ -816,7 +822,7 @@ msgstr "%s er en funktion\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s er indbygget i skallen\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s er %s\n"
@@ -826,26 +832,26 @@ msgstr "%s er %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s er hashet (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: ugyldigt grænseargument"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "\"%c\": ugyldig kommando"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: kan ikke indhente grænse: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "grænse"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: kan ikke modificere grænse: %s"
@@ -864,7 +870,7 @@ msgstr "\"%c\": ugyldig symbolsk tilstandsoperator"
 msgid "`%c': invalid symbolic mode character"
 msgstr "\"%c\": ugyldigt symbolsk tilstandstegn"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " linje "
 
@@ -878,23 +884,23 @@ msgstr "sidste kommando: %s\n"
 msgid "Aborting..."
 msgstr "Afbryder..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "ukendt kommandofejl"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "ugyldig kommandotype"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "dårligt mellemled"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "dårligt hop"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: ubundet variabel"
@@ -909,35 +915,50 @@ msgstr "\atidsudløb mens der ventedes på input: auto-logud\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "kan ikke videresende standardinput fra /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: \"%c\": ugyldigt formateringstegn"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "datakanalfejl (pipe error)"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: begrænset: kan ikke specificere \"/\" i kommandonavne"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: kommando ikke fundet"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: dårlig fortolker"
 
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kan ikke eksekvere binær fil"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s er indbygget i skallen\n"
+
 #    Process Substitution
 #        Process substitution is supported on systems that support  named  pipes
 #        (FIFOs)  or the /dev/fd method of naming open files.  It takes the form
@@ -947,74 +968,74 @@ msgstr "%s: %s: dårlig fortolker"
 #        expansion.   If the >(list) form is used, writing to the file will pro‐
 #        vide input for list.  If the <(list) form is used, the file  passed  as
 #        an argument should be read to obtain the output of list.
-#: execute_cmd.c:5144
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "kan ikke duplikere fd %d til fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "grænse for rekursion af udtryk overskredet"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "underløb i rekursionsstak"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntaksfejl i udtryk"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "forsøgte tildeling til ikke-variabel"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "division med 0"
 
 # denne her streng er dårlig på så mange måder at det fatter man slet ikke. Skal bug oversætter og hvad er expassign. Jeg laver et bud og har fejlmeldt den
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: dårligt expassign-udtryk"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "\":\" forventet for betingede udtryk"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "eksponent mindre end 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "identifikator forventet efter præforøgelse eller -formindskelse"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "manglende \")\""
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntaksfejl: operand forventet"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntaksfejl: ugyldig aritmetisk operator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (fejlelement er \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "ugyldig aritmetisk grundtal"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "værdi for stor til grundtal"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: fejl i udtryk\n"
@@ -1024,165 +1045,165 @@ msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: kan ikke tilgå overliggende mapper"
 
 # Har ladet nodelay stå, idet jeg gætter på at det er et navn
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "kan ikke nulstille \"nodelay\"-tilstand for fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "kan ikke allokere ny fildeskriptor til bash-input fra fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer eksisterer allerede til ny fd %d"
 
 # ??
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp-datakanal (pipe)"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forgrenet pid %d figurerer i kørende job %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "sletter stoppet job %d med procesgruppe %ld"
 
 # ??
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) i the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) markeret som stadig i live"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: ingen process med det pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Færdig"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stoppet"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoppet(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Kører"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Færdig(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Afslut %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Ukendt status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(smed kerne) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "underproces setpgid (%ld til %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld er ikke en underproces af denne skal"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Ingen optegnelse af proces %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: job %d er stoppet"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: job er afbrudt"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: job %d er allerede i baggrunden"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: linje %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (smed kerne)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd nu: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp fejlede"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: linjedisciplin"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "kan ikke indstille terminal-procesgruppe (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "ingen jobkontrol i denne skal"
 
@@ -1251,7 +1272,7 @@ msgstr "register_alloc: %p allerede i tabel som allokeret?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p allerede i tabel som fri?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "ugyldig base"
 
@@ -1274,22 +1295,22 @@ msgstr "%s: dårlig specifikation for netværkssti"
 msgid "network operations not supported"
 msgstr "netværksoperation ikke understøttet"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: %s:%d: kan ikke allokere %lu bytes"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: %s:%d: kan ikke allokere %lu bytes"
@@ -1320,123 +1341,124 @@ msgstr "syntaksfejl: \";\" uventet"
 msgid "syntax error: `((%s))'"
 msgstr "syntaksfejl: \"((%s))\""
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: dårlig instruktionstype %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "here-document ved linje %d er adskilt af slut-på-linje (ønskede \"%s\")"
+msgstr ""
+"here-document ved linje %d er adskilt af slut-på-linje (ønskede \"%s\")"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_direction: videresendelsesinstruktion \"%d\" uden for interval"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "uventet EOF mens der ledtes efter samhørende \"%c\""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "uventet EOF mens der ledtes efter \"]]\""
 
 # word   A sequence of characters considered as  a  single  unit  by  the
 #        shell.  Also known as a token.
 # Jeg har valgt udtryk
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntaksfejl i betingelsesudtryk: uventet element \"%s\""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "syntaksfejl i betingelsesudtryk"
 
 # word   A sequence of characters considered as  a  single  unit  by  the
 #        shell.  Also known as a token.
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "uventet element \"%s\", forventede \")\""
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "forventede \")\""
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "uventet argument \"%s\" til unær betingelsesoperator"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "uventet argument til unær betingelsesoperator"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "uventet udtryk \"%s\", ventede binær betingelsesoperator"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "ventedet binær betingelsesoperator"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "uventet argument \"%s\" til binær betingelsesoperator"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "uventet argument til binær betingelsesoperator"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "uventet udtryk \"%c\" i betingelseskommando"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "uventet udtryk \"%s\" i betingelseskommando"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "uventet udtryk \"%d\" i betingelseskommando"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntaksfejl nær uventet udtryk \"%s\""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntaksfejl nær \"%s\""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "syntaksfejl: uventet slutning på fil"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "syntaksfejl"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Brug \"%s\" for at forlade skallen.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "uventet EOF mens der ledtes efter samhørende \")\""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: funktion \"%s\" ikke fundet"
@@ -1446,26 +1468,26 @@ msgstr "completion: funktion \"%s\" ikke fundet"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: dårligt mellemled \"%d\""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: ugyldig filbeskrivelse: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": ugyldigt formateringstegn"
@@ -1503,33 +1525,33 @@ msgstr "%s: kan ikke tildele liste til arrayelementer"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/vært/port ikke understøttet uden netværk"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "videresendelsesfejl: kan ikke duplikere fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "kan ikke finde /tmp, opret venligst mappen!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp skal være et gyldigt mappenavn"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: ugyldigt tilvalg"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Jeg har ikke noget navn!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, version %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1538,39 +1560,42 @@ msgstr ""
 "Brug:\t%s [langt GNU-tilvalg] [tilvalg] ...\n"
 "\t%s [langt GNU-tilvalg] [tilvalg] skript-fil ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Lange GNU-tilvalg:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Skal-tilvalg:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD eller -c kommando eller -O shopt_option\t\t(kun programkald)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\tTilvalg -%s eller -o\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Skriv \"%s -c \"help set\"\" for at få mere information om skaltilvalg.\n"
+msgstr ""
+"Skriv \"%s -c \"help set\"\" for at få mere information om skaltilvalg.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Skriv \"%s -c help\" for at få mere information om indbyggede skalkommandoer.\n"
+msgstr ""
+"Skriv \"%s -c help\" for at få mere information om indbyggede "
+"skalkommandoer.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Brug kommandoen \"bashbug\" til at rapportere fejl.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: ugyldig handling"
@@ -1746,81 +1771,83 @@ msgstr "Ukendt signal #"
 msgid "Unknown Signal #%d"
 msgstr "Ukendt signal #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "dårlig udskiftning: ingen lukkende \"%s\" i %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: kan ikke tildele liste til arrayelementer"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "kan ikke lave datakanal (pipe) til procesudskiftning"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "kan ikke danne underproces til procesudskiftning"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "kan ikke åbne navngiven datakanal (pipe) %s til læsning"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "kan ikke åbne navngiven datakanal (pipe) %s til skrivning"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "kan ikke duplikere navngiven datakanal (pipe) %s som %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "kan ikke danne datakanal (pipe) til kommandoudskiftning"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "kan ikke danne underproces til kommandoudskiftning"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: kan ikke duplikere datakanal (pipe) som fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameter null eller ikke indstillet"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: understreng-udtryk < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: dårlig udskiftning"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: kan ikke tildele på denne måde"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "dårlig udskiftning: ingen lukkende \"`\" i %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "intet match: %s"
@@ -1857,76 +1884,80 @@ msgstr "%s: binær operator forventet"
 msgid "missing `]'"
 msgstr "manglende \"]\""
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "ugyldigt signalnummer"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: dårlig værdi i trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: signalhåndtering er SIG_DFL, gensender %d (%s) til mig selv"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: signalhåndtering er SIG_DFL, gensender %d (%s) til mig "
+"selv"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: ugyldigt signal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "fejl under importering af funktionsdefinition for \"%s\""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "skalniveau (%d) for højt, genindstiller til 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: ingen funktionskontekst ved nuværende navneområde"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: ingen funktionskontekst ved nuværende navneområde"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parameter null eller ikke indstillet"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "ugyldigt tegn %d i exportstr for %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "intet \"=\" i exportstr for %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: hoved af shell_variables er ikke en funktionskontekst"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: ingen global_variables-kontekst"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope: hoved af shell_variables er ikke et midlertidigt miljønavnerum"
+msgstr ""
+"pop_scope: hoved af shell_variables er ikke et midlertidigt miljønavnerum"
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: kan ikke åbne: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: ugyldig filbeskrivelse: %s"
@@ -1937,8 +1968,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Ophavsret (C) 2009 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1962,8 +1997,12 @@ msgstr "Ophavsret (C) 2009 Free Software Foundation, Inc."
 
 #: version2.c:87
 #, fuzzy, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, fuzzy, c-format
@@ -1994,8 +2033,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] navn [navn ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m tastetildeling] [-f filnavn] [-q navn] [-u navn] [-r nøglesek] [-x nøglesek:skalkommando] [nøglesek:readline-funktion eller readline-kommando]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m tastetildeling] [-f filnavn] [-q navn] [-u navn] [-r "
+"nøglesek] [-x nøglesek:skalkommando] [nøglesek:readline-funktion eller "
+"readline-kommando]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2087,7 +2132,8 @@ msgstr "logout [n]"
 # pat=rep betyder højst sandsynligt mønster=regulært udtryk, men jeg kan ikke finde på nogen 3-bogstavsudtryk som jeg man bruge for de to ting, som jeg synes er let forståelige derfor har jeg ladet dem stå
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e ename] [-lnr] [første] [sidste] eller fc -s [pat=rep] [kommando]"
+msgstr ""
+"fc [-e ename] [-lnr] [første] [sidste] eller fc -s [pat=rep] [kommando]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2107,8 +2153,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-ds] [mønster ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d forskydning] [n] eller history -anrw [filnavn] eller history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d forskydning] [n] eller history -anrw [filnavn] eller "
+"history -ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2119,8 +2169,12 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [jobspec ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... eller kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... eller kill -l "
+"[sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
@@ -2128,8 +2182,12 @@ msgstr "let arg [arg ...]"
 
 #: builtins.c:136
 #, fuzzy
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a array] [-d adskil] [-i tekst] [-n ntegn] [-p prompt] [-t tidsgrænse] [-u fd] [navn ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a array] [-d adskil] [-i tekst] [-n ntegn] [-p prompt] [-t "
+"tidsgrænse] [-u fd] [navn ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2190,7 +2248,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] navn [navn ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [grænse]"
 
 #: builtins.c:172
@@ -2198,7 +2257,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [tilstand]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2226,8 +2286,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case ORD in [MØNSTER [| MØNSTER]...) KOMMANDOER ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if KOMMANDOER; then KOMMANDOER; [ elif KOMMANDOER; then KOMMANDOER; ]... [ else KOMMANDOER; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if KOMMANDOER; then KOMMANDOER; [ elif KOMMANDOER; then KOMMANDOER; ]... "
+"[ else KOMMANDOER; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2287,12 +2351,23 @@ msgstr "printf [-v var] format [argumenter]"
 
 #: builtins.c:229
 #, fuzzy
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-o valgmuligheder] [-A handling] [-G globmønst] [-W ordliste]  [-F funktion] [-C kommando] [-X filtermønst] [-P præfiks] [-S suffiks] [navn ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-o valgmuligheder] [-A handling] [-G "
+"globmønst] [-W ordliste]  [-F funktion] [-C kommando] [-X filtermønst] [-P "
+"præfiks] [-S suffiks] [navn ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o valgmuligheder]  [-A handling] [-G globmønst] [-W ordliste]  [-F funktion] [-C kommando] [-X filtermønst] [-P præfiks] [-S suffiks] [ord]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o valgmuligheder]  [-A handling] [-G globmønst] [-"
+"W ordliste]  [-F funktion] [-C kommando] [-X filtermønst] [-P præfiks] [-S "
+"suffiks] [ord]"
 
 #: builtins.c:237
 #, fuzzy
@@ -2300,12 +2375,20 @@ msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o valgmulighed] [navn ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n antal] [-O oprindelse] [-s antal] [-t] [-u fd] [-C tilbagekald] [-c kvantum] [array]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n antal] [-O oprindelse] [-s antal] [-t] [-u fd] [-C tilbagekald] "
+"[-c kvantum] [array]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n antal] [-O oprindelse] [-s antal] [-t] [-u fd] [-C tilbagekald] [-c kvantum] [array]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n antal] [-O oprindelse] [-s antal] [-t] [-u fd] [-C "
+"tilbagekald] [-c kvantum] [array]"
 
 #: builtins.c:254
 msgid ""
@@ -2322,7 +2405,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definer eller vis aliasser.\n"
@@ -2359,6 +2443,7 @@ msgstr ""
 "    Returner succes med mindre et NAVN ikke er et eksisterende alias."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2370,46 +2455,57 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 "Indstil Readline-tastebindinger og variable.\n"
 "\n"
-"    Bind en tastsekvens til en Readline-funktion eller en makro, eller indstil\n"
+"    Bind en tastsekvens til en Readline-funktion eller en makro, eller "
+"indstil\n"
 "    en Readline-variabel. Syntaksen uden tilvalg er ækvivalent til den som\n"
 "    bruges i ~/.inputrc, men skal gives som et enkelt argument:\n"
 "    f.eks. bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Tilvalg:\n"
 "      -m  tastetildel    Brug TASTETILDEL som tastetildeling for hele \n"
-"                         varigheden af denne kommando. Accepterede tastetildel-\n"
+"                         varigheden af denne kommando. Accepterede "
+"tastetildel-\n"
 "                         ingsnavne er emacs, emacs-standard, emacs-meta,\n"
 "                         emacs-ctlx, vi, vi-move, vi-command og vi-insert.\n"
 "      -l                 Vis liste af funktioner.\n"
 "      -P                 Vis liste af funktionsnavne og bindinger.\n"
-"      -p                 Vis liste af funktionsnavne og bindinger på en form\n"
+"      -p                 Vis liste af funktionsnavne og bindinger på en "
+"form\n"
 "                         som kan genbruges som input.\n"
-"      -S                 Vis tastesekvenser som udfører makroer og deres værdier\n"
-"      -s                 Vis tastesekvenser som udfører makroer og deres værdier\n"
+"      -S                 Vis tastesekvenser som udfører makroer og deres "
+"værdier\n"
+"      -s                 Vis tastesekvenser som udfører makroer og deres "
+"værdier\n"
 "                         på en form som kan genbruges som inddata.<\n"
 "      -V                 Vis variabelnavne og -værdier\n"
 "      -v                 Vis variabelnavne og -værdier på en form som kan \n"
@@ -2424,10 +2520,11 @@ msgstr ""
 "    \t\t\t\tTASTESEKV trykkes.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    bind returnerer 0 med mindre et ugenkendt tilvalg angives, eller hvis der\n"
+"    bind returnerer 0 med mindre et ugenkendt tilvalg angives, eller hvis "
+"der\n"
 "    opstår en fejl."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2443,9 +2540,10 @@ msgstr ""
 "    indlejrede løkker.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med 1."
+"    Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med "
+"1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2458,18 +2556,21 @@ msgstr ""
 "Genoptag for-, while- eller until-løkke.\n"
 "    \n"
 "    Genoptager den næste iteration af den omsluttende FOR-, WHILE- eller \n"
-"    UNTIL-løkke. Hvis N er angivet, genoptages fra den N'te indesluttende løkke.\n"
+"    UNTIL-løkke. Hvis N er angivet, genoptages fra den N'te indesluttende "
+"løkke.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med 1."
+"    Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med "
+"1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2477,16 +2578,19 @@ msgid ""
 msgstr ""
 "Eksekver en skal-indbygget funktion.\n"
 "    \n"
-"    Eksekver en SKAL-INDBYGGET med argumenterne ARGer uden at udføre kommando-\n"
+"    Eksekver en SKAL-INDBYGGET med argumenterne ARGer uden at udføre "
+"kommando-\n"
 "    opslag. Dette er nyttigt, hvis du ønsker et reimplementere en skal-\n"
-"    indbygget som en skalfunktion, men har brug for at eksekvere den indbyggede\n"
+"    indbygget som en skalfunktion, men har brug for at eksekvere den "
+"indbyggede\n"
 "    inden i funktionen.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer afslutningsstatussen for den SKAL-INDBYGGEDE, eller falsk hvis\n"
+"    Returnerer afslutningsstatussen for den SKAL-INDBYGGEDE, eller falsk "
+"hvis\n"
 "    SKAL-INDBYGGET ikke er en skal-indbygget.."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2511,37 +2615,50 @@ msgstr ""
 "    fra den nuværende. Toprammen er ramme 0.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer 0 med mindre skallen ikke eksekverer en skalfunktion eller hvis\n"
+"    Returnerer 0 med mindre skallen ikke eksekverer en skalfunktion eller "
+"hvis\n"
 "    UDTRYK er ugyldigt."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Ændrer skallens aktuelle mappe.\n"
@@ -2549,13 +2666,16 @@ msgstr ""
 "    Ændrer den nuværende mappe til MAPPE. Variablen HOME er standardmappen.\n"
 "    Variablen CDPATH definerer søgestien for mappen som indeholder DIR.\n"
 "    \n"
-"    Variablen CDPATH definerer søgestien for den mappe som indeholder MAPPE.\n"
+"    Variablen CDPATH definerer søgestien for den mappe som indeholder "
+"MAPPE.\n"
 "    Alternative mappenavne i CDPATH er separeret af et kolon (:). Et\n"
-"    null-mappenavn er det samme som den nuværende mappe. Hvis MAPPE begynder\n"
+"    null-mappenavn er det samme som den nuværende mappe. Hvis MAPPE "
+"begynder\n"
 "    med en skråstreg (/) bruges CDPATH ikke.\n"
 "\n"
 "    Hvis mappen ikke findes og skalvariablen \"cdabel_vars\" er indstillet,\n"
-"    vil det blive antaget at ordet er et variabelnavn. Hvis variablen har en\n"
+"    vil det blive antaget at ordet er et variabelnavn. Hvis variablen har "
+"en\n"
 "    værdi, så bruges denne som MAPPE.\n"
 "\n"
 "    Tilvalg:\n"
@@ -2567,7 +2687,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer 0 hvis mappen ændres, ellers noget forskellig fra 0."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2591,10 +2711,11 @@ msgstr ""
 "    Som standard vil \"pwd\" opføre sig som om \"-L\" var angivet.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer 0 med mindre der er angivet et ugyldigt tilvalg, eller hvis den\n"
+"    Returnerer 0 med mindre der er angivet et ugyldigt tilvalg, eller hvis "
+"den\n"
 "    aktuelle mappe ikke kan læses."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2610,7 +2731,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Afsluttes altid succesfuldt."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2622,7 +2743,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Afsluttes altid succesfuldt."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2634,12 +2755,13 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Afsluttes altid mislykket."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2653,8 +2775,10 @@ msgid ""
 msgstr ""
 "Eksekverer en simpel kommando eller viser information om kommandoer.\n"
 "    \n"
-"    Kører KOMMANDO med ARGer med undertrykkelse af skalfunktionsopslag, eller\n"
-"    vis information om de angivne KOMMANDOER. Kan bruges til at køre kommandoer\n"
+"    Kører KOMMANDO med ARGer med undertrykkelse af skalfunktionsopslag, "
+"eller\n"
+"    vis information om de angivne KOMMANDOER. Kan bruges til at køre "
+"kommandoer\n"
 "    fra disken, når en funktion af samme navn eksisterer.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -2668,7 +2792,7 @@ msgstr ""
 "    Returnerer afslutningsstatus fra KOMMANDO eller mislykket hvis KOMMANDO\n"
 "    ikke findes."
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2699,7 +2823,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2707,7 +2832,8 @@ msgid ""
 msgstr ""
 "Indstil variabelværdier og -attributter\n"
 "    \n"
-"    Erklær variable og giv dem attributter. Hvis der ikke angives nogen NAVNE,\n"
+"    Erklær variable og giv dem attributter. Hvis der ikke angives nogen "
+"NAVNE,\n"
 "    så angives attributter og værdier for alle variable.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -2728,17 +2854,20 @@ msgstr ""
 "    \n"
 "    Brug \"+\" i stedet for \"-\" for at slå den pågældende attribut fra.\n"
 "    \n"
-"    Der vil blive udført en aritmetisk evaluering (se \"let\"-kommandoen) af \n"
+"    Der vil blive udført en aritmetisk evaluering (se \"let\"-kommandoen) "
+"af \n"
 "    variable med integer-attributten, når de tildeles en værdi.\n"
 "    \n"
-"    Når de bliver brugt i en funktion, kan \"declare\" bruges til at gøre NAVNE\n"
+"    Når de bliver brugt i en funktion, kan \"declare\" bruges til at gøre "
+"NAVNE\n"
 "    lokale, ligesom med \"local\"-kommandoen.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "    der opstår en fejl."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2748,7 +2877,7 @@ msgstr ""
 "    \n"
 "    Forældet. Læs i \"help declare\"."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2764,21 +2893,26 @@ msgid ""
 msgstr ""
 "Definer lokale variable.\n"
 "    \n"
-"    Opret en lokal variabel med navnet NAVN og tildel den en værdi. TILVALG kan\n"
+"    Opret en lokal variabel med navnet NAVN og tildel den en værdi. TILVALG "
+"kan\n"
 "    være alle tilvalg som accepteres af \"declare\".\n"
 "    \n"
-"    Lokale variable kan kun bruges inden i en funktion; de er kun synlige, for\n"
+"    Lokale variable kan kun bruges inden i en funktion; de er kun synlige, "
+"for\n"
 "    den funktion de er defineret i og dens underfunktioner.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre der angives et ugyldigt tilvalg, hvis der\n"
 "    opstår en fejl, eller hvis skallen ikke eksekverer en funktion."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2790,6 +2924,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2834,7 +2969,7 @@ msgstr ""
 "      Afslutningsstatus:\n"
 "      Returnerer succes med mindre der opstår en skrivefejl."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2856,7 +2991,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre der opstår en skrivefejl."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2884,8 +3019,10 @@ msgid ""
 msgstr ""
 "Aktiver og deaktiver skal-indbyggede.\n"
 "    \n"
-"    Aktiverer og deaktiverer indbyggede skalkommandoer. Deaktivering tillader\n"
-"    dig at udføre diskkommandoer, som har det sammen navn som en skal-indbygget\n"
+"    Aktiverer og deaktiverer indbyggede skalkommandoer. Deaktivering "
+"tillader\n"
+"    dig at udføre diskkommandoer, som har det sammen navn som en skal-"
+"indbygget\n"
 "    uden at bruge et fuldt stinavn.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -2901,18 +3038,20 @@ msgstr ""
 "    \n"
 "    Uden tilvalg bliver hvert NAVN aktiveret.   \n"
 "    \n"
-"    Skriv \"enable -n test\" for at bruge den \"test\" som findes i $PATH, i stedet\n"
+"    Skriv \"enable -n test\" for at bruge den \"test\" som findes i $PATH, i "
+"stedet\n"
 "    for den indbyggede version.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre NAVN ikke er en skal-indbygget eller hvis\n"
 "    der opstår en fejl."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2920,14 +3059,16 @@ msgid ""
 msgstr ""
 "Eksekver argumenter som en skalkommando.\n"
 "    \n"
-"    Kombinerer ARGer til en enkelt streng, brug resultatet som input til skallen\n"
+"    Kombinerer ARGer til en enkelt streng, brug resultatet som input til "
+"skallen\n"
 "    og udfør den resulterende kommando.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer kommandoens afslutningsstatus eller succes hvis kommandoen er\n"
+"    Returnerer kommandoens afslutningsstatus eller succes hvis kommandoen "
+"er\n"
 "    null."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3007,12 +3148,13 @@ msgstr ""
 "    Returnerer succes hvis et tilvalg findes, fejler hvis afslutningen\n"
 "    af tilvalgene nås eller hvis der opstår en fejl."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3020,16 +3162,19 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Erstat skallen med den angivne kommando.\n"
 "    \n"
 "    Eksekver KOMMANDO og erstat derved skallen med det angivne program.\n"
-"    ARGUMENTER bliver argumenter til KOMMANDO. Hvis KOMMANDO ikke angives vil\n"
+"    ARGUMENTER bliver argumenter til KOMMANDO. Hvis KOMMANDO ikke angives "
+"vil\n"
 "    alle omdirigeringer træde i kraft i den aktuelle skal.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -3037,14 +3182,16 @@ msgstr ""
 "      -c\t\teksekver KOMMANDO i et tomt miljø\n"
 "      -l\t\tbrug en bindestreg som det nulte argument til KOMMANDO\n"
 "    \n"
-"    Hvis kommandoen ikke kan eksekveres, vil ikke-interaktive skaller afsluttes,\n"
+"    Hvis kommandoen ikke kan eksekveres, vil ikke-interaktive skaller "
+"afsluttes,\n"
 "    med mindre skal-tilvalget \"execfail\" angives\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Afsluttes succesfuldt med mindre KOMMANDO ikke kan findes, eller hvis der\n"
+"    Afsluttes succesfuldt med mindre KOMMANDO ikke kan findes, eller hvis "
+"der\n"
 "    opstår en omdirigeringsfejl."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3056,29 +3203,33 @@ msgstr ""
 "    Afslut skallen med status N. Hvis N udelades vil afslutningsstatus\n"
 "    blive den samme som sidst eksekverede kommando."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Afslut en logindskal.\n"
 "    \n"
-"    Afslutter en logindskal med afslutningsstatus N. Returnerer en fejl, hvis\n"
+"    Afslutter en logindskal med afslutningsstatus N. Returnerer en fejl, "
+"hvis\n"
 "    den ikke eksekveres i en logindskal."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3092,34 +3243,42 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Vis og eksekver kommandoer fra historiklisten.\n"
 "    \n"
-"    fc bruges til at vise, redigere og geneksekvere kommandoer fra historikken.\n"
-"    FØRSTE og SIDSTE kan være numre som specificerer et interval, eller FØRSTE\n"
+"    fc bruges til at vise, redigere og geneksekvere kommandoer fra "
+"historikken.\n"
+"    FØRSTE og SIDSTE kan være numre som specificerer et interval, eller "
+"FØRSTE\n"
 "    kan være en streng, hvilket vil resultere i den nyeste kommando som\n"
 "    begynder med den streng.\n"
 "    \n"
 "    Tilvalg:    \n"
-"       -e ENAVN\tvælger hvilket tekstredigeringsprogram, der vil bliver brugt.\n"
+"       -e ENAVN\tvælger hvilket tekstredigeringsprogram, der vil bliver "
+"brugt.\n"
 "          Forvalget er FCEDIT, herefter EDITOR og til sidst \"vi\".\n"
 "       -l \tbetyder vis linjer i stedet for at redigere dem.\n"
 "       -n\tbetyder at linjenumre ikke vises.\n"
 "       -r\tbetyder at rækkefølgen af linjer vendes (så nye er først).\n"
 "       \n"
-"    Med \"fc -s [pat=rep ...] [command]\"-formatet vil kommandoen blive gen-\n"
+"    Med \"fc -s [pat=rep ...] [command]\"-formatet vil kommandoen blive "
+"gen-\n"
 "    eksekveret efter substitutionen GAMMEL=NY er foretaget.\n"
 "    \n"
-"    Et nyttigt alias er r=\\\"fc -s\\\", som vil medføre at den sidste kommando\n"
-"    der begynder med \\\"cc\\\" vil afvikles, når der skrives \\\"r cc\\\", og at\n"
+"    Et nyttigt alias er r=\\\"fc -s\\\", som vil medføre at den sidste "
+"kommando\n"
+"    der begynder med \\\"cc\\\" vil afvikles, når der skrives \\\"r cc\\\", "
+"og at\n"
 "    den seneste kommando afvikles, når der skrives \\\"r\\\".\n"
 "\n"
 "    Afslutningsstatus.\n"
-"    Returnerer succes eller status af den eksekverede kommando, ikke-nul hvis\n"
+"    Returnerer succes eller status af den eksekverede kommando, ikke-nul "
+"hvis\n"
 "    der opstod en fejl."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3133,19 +3292,23 @@ msgstr ""
 "Flyt jobs til forgrunden.\n"
 "    \n"
 "    Placer JOB_SPEC i forgrunden og gør det til det aktuelle job. Hvis\n"
-"    JOB_SPEC ikke findes, vil skallens opfattelse af, hvad der er det nuværende\n"
+"    JOB_SPEC ikke findes, vil skallens opfattelse af, hvad der er det "
+"nuværende\n"
 "    job, blive brugt.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Status af den kommando der placeres i forgrunden eller mislykket hvis der\n"
+"    Status af den kommando der placeres i forgrunden eller mislykket hvis "
+"der\n"
 "    opstår fejl."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3154,19 +3317,22 @@ msgstr ""
 "Flyt jobs til baggrunden\n"
 "    \n"
 "    Placer hvert enkelt JOB_SPEC i baggrunden, som om de var startet med \n"
-"    \"&\". Hvis JOB_SPEC ikke findes, vil skallen opfattelse af, hvad der er\n"
+"    \"&\". Hvis JOB_SPEC ikke findes, vil skallen opfattelse af, hvad der "
+"er\n"
 "    det nuværende job, blive brugt.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Afsluttes succesfuldt medmindre jobkontrol ikke er slået til, eller hvis\n"
+"    Afsluttes succesfuldt medmindre jobkontrol ikke er slået til, eller "
+"hvis\n"
 "    der opstår en fejl."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3200,10 +3366,11 @@ msgstr ""
 "    \t\tlisten af huskede kommandoer.\n"
 "                \n"
 "    Afslutningsstatus:\n"
-"    Afsluttes succesfuldt med mindre NAVN ikke kan findes, eller hvis der angives\n"
+"    Afsluttes succesfuldt med mindre NAVN ikke kan findes, eller hvis der "
+"angives\n"
 "    et ugyldig tilvalg."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3221,12 +3388,15 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Vis information om indbyggede kommandoer.\n"
 "    \n"
-"    Viser korte sammendrag om indbyggede kommandoer. Hvis MØNSTER er angivet,\n"
-"    vil der blive givet en detaljeret hjælp, om alle de kommandoer som matcher\n"
+"    Viser korte sammendrag om indbyggede kommandoer. Hvis MØNSTER er "
+"angivet,\n"
+"    vil der blive givet en detaljeret hjælp, om alle de kommandoer som "
+"matcher\n"
 "    MØNSTER, ellers vil der blive udskrevet en liste over hjælpeemner.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -3241,7 +3411,7 @@ msgstr ""
 "    Returnerer succes med mindre MØNSTER ikke kan findes, eller hvis der\n"
 "    angives et ugyldigt tilvalg."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3268,7 +3438,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3296,16 +3467,19 @@ msgstr ""
 "    ellers vil $HISTFILE blive brugt, hvis den har en værdi og ellers\n"
 "    vil ~/.bash_history blive brugt.\n"
 "     \n"
-"    Hvis variablen $HISTTIMEFORMAT er indstillet og ikke er \"null\", vil dens\n"
+"    Hvis variablen $HISTTIMEFORMAT er indstillet og ikke er \"null\", vil "
+"dens\n"
 "    værdi blive brugt som formatstreng til strftime(3) til formatering af\n"
-"    tidspunkt for hvert historikelement. Ellers vil ingen tidsstempler blive\n"
+"    tidspunkt for hvert historikelement. Ellers vil ingen tidsstempler "
+"blive\n"
 "    skrevet.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der er angivet et ugyldig tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der er angivet et ugyldig tilvalg, eller "
+"hvis\n"
 "    der opstår en fejl."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3330,7 +3504,8 @@ msgid ""
 msgstr ""
 "Viser status af jobs.\n"
 "    \n"
-"    Viser de aktive jobs. JOBSPEC begrænser output til dette job. Uden tilvalg\n"
+"    Viser de aktive jobs. JOBSPEC begrænser output til dette job. Uden "
+"tilvalg\n"
 "    vil status for alle aktive jobs blive vist.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -3342,15 +3517,18 @@ msgstr ""
 "      -r\tbegrænser uddata til kørende jobs\n"
 "      -s\tbegrænser uddata til stoppede jobs\n"
 "    \n"
-"    Hvis -x er givet, vil KOMMANDO blive kørt efter at alle jobspecifikationer\n"
-"    som står i ARGer er blevet erstattet med proces-id'et for dette jobs proces-\n"
+"    Hvis -x er givet, vil KOMMANDO blive kørt efter at alle "
+"jobspecifikationer\n"
+"    som står i ARGer er blevet erstattet med proces-id'et for dette jobs "
+"proces-\n"
 "    gruppeleder.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre et ugyldigt tilvalg er angivet, eller hvis der\n"
+"    Returnerer succes med mindre et ugyldigt tilvalg er angivet, eller hvis "
+"der\n"
 "    opstår en fejl. Hvis -x bruges returneres afslutningsstatus for KOMMANDO."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3368,7 +3546,8 @@ msgid ""
 msgstr ""
 "Fjern jobs fra den aktuelle skal.\n"
 "    \n"
-"    Fjerner hvert JOBSPEC-argument, fra tabellen over aktive jobs. Hvis der ikke\n"
+"    Fjerner hvert JOBSPEC-argument, fra tabellen over aktive jobs. Hvis der "
+"ikke\n"
 "    angives nogen JOBSPEC bruges skallens opfattelse af det aktuelle job.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -3380,7 +3559,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre et ugyldigt tilvalg eller JOBSPEC angives."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3403,8 +3582,10 @@ msgid ""
 msgstr ""
 "Send et signal til et job.\n"
 "    \n"
-"    Send signalet SIGSPEC eller SIGNUM til processen, som er angivet ved PID\n"
-"    eller JOBSPEC. Hvis hverken SIGSPEC eller SIGNUM er angivet antages SIGTERM.\n"
+"    Send signalet SIGSPEC eller SIGNUM til processen, som er angivet ved "
+"PID\n"
+"    eller JOBSPEC. Hvis hverken SIGSPEC eller SIGNUM er angivet antages "
+"SIGTERM.\n"
 "    \n"
 "      -s sig\tSIG er et signalnavn\n"
 "      -n sig\tSIG er et signalnummer\n"
@@ -3412,16 +3593,19 @@ msgstr ""
 "    \tantages det, at de er signalnumre hvis tilhørende signalnavne skal\n"
 "        udskrives.\n"
 "    \n"
-"    Der er to grunde til at kill er en indbygget skal-kommando: Det tillader\n"
-"    at der kan bruges job-id'er i stedet for proces-id'er og tillader at stoppe\n"
+"    Der er to grunde til at kill er en indbygget skal-kommando: Det "
+"tillader\n"
+"    at der kan bruges job-id'er i stedet for proces-id'er og tillader at "
+"stoppe\n"
 "    processer, selvom du har nået grænsen for, hvor mange processer du\n"
 "    kan oprette.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre et ugyldigt tilvalg er angivet, eller hvis der\n"
+"    Returnerer succes med mindre et ugyldigt tilvalg er angivet, eller hvis "
+"der\n"
 "    opstår en fejl."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3429,7 +3613,8 @@ msgid ""
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3507,19 +3692,22 @@ msgstr ""
 "    Hvis det sidste ARG evalueres til 0, vil \"let\" returnere 1, ellers\n"
 "    returneres 0."
 
-#: builtins.c:971
+#: builtins.c:979
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3531,31 +3719,41 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Læs en linje fra standardinput og del den op i felter.\n"
 "    \n"
-"    En linje vil blive læst fra standardinput, eller fra fildeskriptor FD hvis\n"
+"    En linje vil blive læst fra standardinput, eller fra fildeskriptor FD "
+"hvis\n"
 "    tilvalget -u er givet. Linjen vil blive delt ind i felter som med ord-\n"
-"    opdeling Det første ord blive tildelt det første NAVN, det andet ord til \n"
-"    det andet NAVN osv. og de tilbageblivende ord vil blive tildelt det sidste\n"
-"    NAVN. Kun de tegn som findes i $IFS vil blive genkendt som ordadskillere.\n"
+"    opdeling Det første ord blive tildelt det første NAVN, det andet ord "
+"til \n"
+"    det andet NAVN osv. og de tilbageblivende ord vil blive tildelt det "
+"sidste\n"
+"    NAVN. Kun de tegn som findes i $IFS vil blive genkendt som "
+"ordadskillere.\n"
 "\n"
 "    Hvis der ikke er angivet nogle NAVNe, vil linjen blive gemt i REPLY-\n"
 "    variablen.\n"
@@ -3563,13 +3761,16 @@ msgstr ""
 "    Tilvalg:\n"
 "      -a array\tde indlæste ord blive tildelt fortløbende indeks i\n"
 "    \t\tARRAY startende ved 0\n"
-"      -d adskil\tfortsæt indtil det første tegn i ADSKIL bliver læst, i stedet\n"
+"      -d adskil\tfortsæt indtil det første tegn i ADSKIL bliver læst, i "
+"stedet\n"
 "    \t\tfor ved nylinjetegn\n"
 "      -e\tbrug Readline til at indhente linje fra en interaktiv skal\n"
 "      -i tekst\tBrug TEKST som den indledende tekst til Readline\n"
-"      -n ntegn\treturnerer efter at have læst NTEGN tegn i stedet for at vente\n"
+"      -n ntegn\treturnerer efter at have læst NTEGN tegn i stedet for at "
+"vente\n"
 "    \t\tpå et nylinjetegn\n"
-"      -p prompt\tudskriv strengen PROMPT, uden et nylinjetegn, før der forsøges på\n"
+"      -p prompt\tudskriv strengen PROMPT, uden et nylinjetegn, før der "
+"forsøges på\n"
 "    \t\tat læse\n"
 "      -r\ttillad ikke at omvendte skråstreger undviger tegn\n"
 "      -s\tudskriv (echo) ikke input som kommer fra en terminal\n"
@@ -3583,10 +3784,11 @@ msgstr ""
 "      -u fd\tlæs fra fildeskriptoren FD i stedet for standardinput\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returkoden vil være nul, med mindre slut-på-fil nås, tidsudløb indtræffer,\n"
+"    Returkoden vil være nul, med mindre slut-på-fil nås, tidsudløb "
+"indtræffer,\n"
 "    eller hvis en ugyldig fildeskriptor gives som argument til -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3599,15 +3801,19 @@ msgid ""
 msgstr ""
 "Returner fra en skalfunktion.\n"
 "    \n"
-"    Gør at en funktion eller et kildeskript afslutter med en returværdi, som er\n"
-"    angivet med N. Hvis N udelades, vil returstatussen være den samme som værdien\n"
-"    fra sidste kommande, som blev eksekveret inde i funktionen eller skriptet.\n"
+"    Gør at en funktion eller et kildeskript afslutter med en returværdi, som "
+"er\n"
+"    angivet med N. Hvis N udelades, vil returstatussen være den samme som "
+"værdien\n"
+"    fra sidste kommande, som blev eksekveret inde i funktionen eller "
+"skriptet.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer N, eller fejl hvis skallen ikke er i færd med at eksekvere en\n"
+"    Returnerer N, eller fejl hvis skallen ikke er i færd med at eksekvere "
+"en\n"
 "    funktion eller et skript."
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3651,7 +3857,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3673,7 +3880,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3693,7 +3900,8 @@ msgid ""
 msgstr ""
 "Indstiller eller afinitialiserer (unset) skaltilvalg og positionsparametre.\n"
 "    \n"
-"    Ændr værdien af skalattributter og positionsparametre, eller vis navne og\n"
+"    Ændr værdien af skalattributter og positionsparametre, eller vis navne "
+"og\n"
 "    værdier af skalvariable.\n"
 "\n"
 "    Tilvalg:\n"
@@ -3703,7 +3911,8 @@ msgstr ""
 "          afslutningsstatus som ikke er nul.\n"
 "      -f  Slå filnavngenerering fra (globbing).\n"
 "      -h  Husk kommandoers positionen mens de slås op.\n"
-"      -k  Overfør alle opgavens argumenter til kommandoens miljø, ikke kun de\n"
+"      -k  Overfør alle opgavens argumenter til kommandoens miljø, ikke kun "
+"de\n"
 "          som kommer før kommandonavnet.\n"
 "      -m  Slå jobkontrol til.\n"
 "      -n  Læs kommandoer men eksekver dem ikke.\n"
@@ -3721,7 +3930,8 @@ msgstr ""
 "              ignoreeof    skallen vil ikke afslutte ved læsning af\n"
 "                           slut-på-fil (EOF)\n"
 "              interactive-comments\n"
-"                           vis også kommentarerer ved interaktive kommandoer\n"
+"                           vis også kommentarerer ved interaktive "
+"kommandoer\n"
 "              keyword      samme som -k\n"
 "              monitor      samme som -m\n"
 "              noclobber    samme som -C\n"
@@ -3734,47 +3944,60 @@ msgstr ""
 "              onecmd       samme som -t\n"
 "              physical     samme som -P\n"
 "              pipefail     returværdien af en datakanal (pipeline) er\n"
-"                           status af den sidste kommando, som afsluttedes med en\n"
+"                           status af den sidste kommando, som afsluttedes "
+"med en\n"
 "                           status som er forskellig fra nul, eller nul hvis\n"
-"                           ingen kommando afsluttedes med en status forskellig\n"
+"                           ingen kommando afsluttedes med en status "
+"forskellig\n"
 "                           fra nul\n"
-"              posix        ændrer den måde bash opfører sig på de steder hvor\n"
-"                           opførslen afviger fra 1003.2-standarden således at\n"
+"              posix        ændrer den måde bash opfører sig på de steder "
+"hvor\n"
+"                           opførslen afviger fra 1003.2-standarden således "
+"at\n"
 "                           standarden følges\n"
 "              privileged   samme som -p\n"
 "              verbose      samme som -v\n"
-"              vi           brug en linjeredigerings-grænseflade som i \"vi\"\n"
+"              vi           brug en linjeredigerings-grænseflade som i \"vi"
+"\"\n"
 "              xtrace       samme som -x\n"
-"      -p  Slået til når den reelle og den faktiske brugers id'er ikke er ens.\n"
+"      -p  Slået til når den reelle og den faktiske brugers id'er ikke er "
+"ens.\n"
 "          Deaktiverer behandling af $ENV-filen og import af skalfunktioner.\n"
 "          Deaktivering af denne valgmulighed vil sætte de faktiske\n"
 "          uid og gid til de reelle uid og gid.\n"
 "      -t  Afslut efter af have læst og eksekveret en kommando.\n"
-"      -u  Behandl afinitialiserede (unset) variable som en fejl ved substitution.\n"
+"      -u  Behandl afinitialiserede (unset) variable som en fejl ved "
+"substitution.\n"
 "      -v  Udskriv skal-inputlinjer når de læses.\n"
 "      -x  Udskriv kommandoer og deres argumenter når de eksekveres.\n"
 "      -B  Lad skallen udføre klammeudvidelse\n"
-"      -C  Med dette tilvalg vil det ikke tillades at eksisterende regulære filer\n"
+"      -C  Med dette tilvalg vil det ikke tillades at eksisterende regulære "
+"filer\n"
 "          overskrives pga. videreførsel af output.\n"
 "      -E  Med dette tilvalg vil ERR-fælden (trap) arves af skalfunktioner.\n"
 "      -H  Aktiver !-stilhistoriksubstitution. Dette flag er aktiveret som\n"
 "          standard, når skallen er interaktiv.\n"
 "      -P  Med dette tilvalg følges symbolske lænker ikke ved eksekvering af\n"
 "          kommandoer, som f.eks. cd, der ændrer den aktuelle mappe.\n"
-"      -T  Med dette tilvalg vil DEBUG-fælden (trap) arves af skalfunktioner.\n"
+"      -T  Med dette tilvalg vil DEBUG-fælden (trap) arves af "
+"skalfunktioner.\n"
 "      -   Tildel alle tilbageblevne argumenter til positionsparametrene.\n"
 "          Tilvalgene -x og -v er slået fra.\n"
 "  \n"
-"    Bruges + i stedet for - vil disse flag blive slået fra. Flagene kan også\n"
-"    bruges ved kald af skallen. Flagene det aktuelt er i brug kan findes i $-.\n"
-"    De tilbageblevne n ARGer er positionsparametre og vil blive tildelt i række-\n"
-"    følge til $1, $2, .. $n. Hvis der ikke angives nogen ARGer, vil alle skal-\n"
+"    Bruges + i stedet for - vil disse flag blive slået fra. Flagene kan "
+"også\n"
+"    bruges ved kald af skallen. Flagene det aktuelt er i brug kan findes i "
+"$-.\n"
+"    De tilbageblevne n ARGer er positionsparametre og vil blive tildelt i "
+"række-\n"
+"    følge til $1, $2, .. $n. Hvis der ikke angives nogen ARGer, vil alle "
+"skal-\n"
 "    variable blive udskrevet.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre der angives et ugyldigt tilvalg."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3784,7 +4007,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3792,7 +4016,8 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
-"Afinitialiserer (unset) værdier og attributter for skalvariable og funktioner.\n"
+"Afinitialiserer (unset) værdier og attributter for skalvariable og "
+"funktioner.\n"
 "    \n"
 "    Fjerner den tilsvarende variabel eller funktion for hvert NAVN.\n"
 "    \n"
@@ -3800,21 +4025,24 @@ msgstr ""
 "      -f\tbehandl ethvert NAVN som en skalfunktion\n"
 "      -v\tbehandl ethvert NAVN som en skalvariable\n"
 "    \n"
-"    Uden tilvalg vil unset først prøve at afinitialisere en variabel og hvis\n"
+"    Uden tilvalg vil unset først prøve at afinitialisere en variabel og "
+"hvis\n"
 "    det mislykkes, vil den prøve med en funktion.\n"
 "    \n"
 "    Nogle variable kan ikke afinitialiseres; læs under \"readonly\".\n"
 "    \n"
 "    Afslutningstatus:\n"
-"    Returnerer succes med mindre der gives et ugyldigt tilvalg eller hvis et\n"
+"    Returnerer succes med mindre der gives et ugyldigt tilvalg eller hvis "
+"et\n"
 "    givent navn er skrivebeskyttet."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3828,7 +4056,8 @@ msgid ""
 msgstr ""
 "Indstil eksportattributten for skalvariable.\n"
 "    \n"
-"    Marker hvert NAVN til automatisk eksport til miljøet for de kommandoer som\n"
+"    Marker hvert NAVN til automatisk eksport til miljøet for de kommandoer "
+"som\n"
 "    eksekveres efterfølgende. Hvis VÆRDI er angivet, vil den blive tildelt\n"
 "    variablen før eksportering.\n"
 "    \n"
@@ -3843,7 +4072,7 @@ msgstr ""
 "    Returnerer succes med mindre der angives et ugyldigt tilvalg eller hvis\n"
 "    NAVN er ugyldig."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3865,7 +4094,8 @@ msgstr ""
 "Marker skalvariable som skrivebeskyttet.\n"
 "    \n"
 "    Marker hvert NAVN som skrivebeskyttet. Værdierne af disse navne kan\n"
-"    herefter ikke ændres ved efterfølgende tildeling. Hvis VÆRDI angives, vil\n"
+"    herefter ikke ændres ved efterfølgende tildeling. Hvis VÆRDI angives, "
+"vil\n"
 "    denne blive tildelt variablen, før den markeres som skrivebeskyttet.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -3880,7 +4110,7 @@ msgstr ""
 "    Returnerer succes med mindre der angives et ugyldigt tilvalg eller hvis\n"
 "    NAVN er ugyldigt."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3892,13 +4122,14 @@ msgid ""
 msgstr ""
 "Skift positionsparametre.\n"
 "    \n"
-"    Omdøb positionsparametrene $N+1,$N+2 ... til $1,$2 ... Hvis N ikke angives,\n"
+"    Omdøb positionsparametrene $N+1,$N+2 ... til $1,$2 ... Hvis N ikke "
+"angives,\n"
 "    antages værdien 1.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre N er negativ eller større end $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3913,15 +4144,18 @@ msgid ""
 msgstr ""
 "Eksekver kommandoer fra en fil i den aktuelle skal.\n"
 "    \n"
-"    Læs og eksekver kommandoer fra FILNAVN i den aktuelle skal. Elementerne i\n"
-"    $PATH bruges til at finde den mappe som FILNAVN ligger i. Hvis der angives\n"
+"    Læs og eksekver kommandoer fra FILNAVN i den aktuelle skal. Elementerne "
+"i\n"
+"    $PATH bruges til at finde den mappe som FILNAVN ligger i. Hvis der "
+"angives\n"
 "    ARGUMENTER, omdannes de til positionsparametre når FILNAVN eksekveres.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer status fra den sidst eksekverede kommando i FILNAVN; fejler hvis\n"
+"    Returnerer status fra den sidst eksekverede kommando i FILNAVN; fejler "
+"hvis\n"
 "    FILNAVN ikke kan læses."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3936,17 +4170,19 @@ msgid ""
 msgstr ""
 "Suspender skaleksekvering.\n"
 "    \n"
-"    Suspender eksekvering af denne skal indtil den modtager et SIGCONT-signal.\n"
+"    Suspender eksekvering af denne skal indtil den modtager et SIGCONT-"
+"signal.\n"
 "    Med mindre det gennemtvinges, kan en logindskal ikke suspenderes.\n"
 "    \n"
 "    Tilvalg:\n"
 "      -f\tgennemtving suspendering selvom skallen er en logindskal\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre jobkontrol ikke er slået til, eller hvis der\n"
+"    Returnerer succes med mindre jobkontrol ikke er slået til, eller hvis "
+"der\n"
 "    opstår en fejl."
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3981,7 +4217,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4002,7 +4239,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4027,8 +4265,10 @@ msgid ""
 msgstr ""
 "Evaluer betingelsesudtryk.\n"
 "    \n"
-"    Afslutter med status 0 (sand) eller 1 (falsk) afhængigt af evalueringen af\n"
-"    UDTRYK. Udtrykket kan være unært eller binært. Unære udtryk bruges ofte til\n"
+"    Afslutter med status 0 (sand) eller 1 (falsk) afhængigt af evalueringen "
+"af\n"
+"    UDTRYK. Udtrykket kan være unært eller binært. Unære udtryk bruges ofte "
+"til\n"
 "    at undersøge filers status. Der findes også strengoperatorer såvel som\n"
 "    operatorer til numeriske sammenligninger.\n"
 "    \n"
@@ -4054,9 +4294,11 @@ msgstr ""
 "      -x FIL         Sand hvis du kan eksekvere filen.\n"
 "      -O FIL         Sand hvis filen effektivt er ejet af dig.\n"
 "      -G FIL         Sand hvis filen effektivt er ejet af din gruppe.\n"
-"      -N FIL         Sand hvis filen er blevet ændret siden den sidst blev læst.\n"
+"      -N FIL         Sand hvis filen er blevet ændret siden den sidst blev "
+"læst.\n"
 "    \n"
-"      FIL1 -nt FIL2  Sand hvis fil1 er nyere end fil2 (ifølge modificerings-\n"
+"      FIL1 -nt FIL2  Sand hvis fil1 er nyere end fil2 (ifølge "
+"modificerings-\n"
 "                     datoen)\n"
 "    \n"
 "      FIL1 -ot FIL2  Sand hvis fil1 er ældre en fil2.\n"
@@ -4077,7 +4319,8 @@ msgstr ""
 "      STRENG1 < STRENG2\n"
 "                     Sand hvis STRENG1 sorteres før STRENG2 leksikografisk.\n"
 "      STRENG1 > STRENG2\n"
-"                     Sand hvis STRENG1 sorteres efter STRENG2 leksikografisk.\n"
+"                     Sand hvis STRENG1 sorteres efter STRENG2 "
+"leksikografisk.\n"
 "    \n"
 "    Andre operatorer:\n"
 "    \n"
@@ -4089,15 +4332,17 @@ msgstr ""
 "      arg1 OP arg2   Aritmetiske tests. OP er en af følgende: -eq, -ne,\n"
 "                     -lt, -le, -gt, eller -ge.\n"
 "    \n"
-"    Binære aritmetiske operatorer returnerer sand hvis ARG1 er henholdsvis lig,\n"
-"    ikke-lig, mindre-end, mindre-end-eller-lig, større-end, større-end-eller-lig\n"
+"    Binære aritmetiske operatorer returnerer sand hvis ARG1 er henholdsvis "
+"lig,\n"
+"    ikke-lig, mindre-end, mindre-end-eller-lig, større-end, større-end-eller-"
+"lig\n"
 "    ARG2.\n"
 "\n"
 "    Afslutningsstatus:\n"
 "    Returnerer succes hvis UDTRYK evalueres til sand, og fejler hvis UDTRYK\n"
 "    evalueres til falsk eller hvis der gives et ugyldigt argument."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4106,14 +4351,16 @@ msgid ""
 msgstr ""
 "Evaluer betingelsesudtryk.\n"
 "    \n"
-"    Dette er et synonym for den indbyggede funktion \"test\", dog skal det sidste\n"
+"    Dette er et synonym for den indbyggede funktion \"test\", dog skal det "
+"sidste\n"
 "    argument skal være \"]\", for at den passer til den åbnende \"[\"."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4121,18 +4368,20 @@ msgid ""
 msgstr ""
 "Vis procestid.\n"
 "    \n"
-"    Udskriver den akkumulerede bruger- og systemtid for skallen og alle dens\n"
+"    Udskriver den akkumulerede bruger- og systemtid for skallen og alle "
+"dens\n"
 "    underprocesser.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Lykkes altid."
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4141,26 +4390,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Indfanger signaler og andre begivenheder.\n"
 "    \n"
@@ -4169,16 +4426,20 @@ msgstr ""
 "    \n"
 "    ARG er en kommando som skal læses og eksekveres, når skallen modtager\n"
 "    signalet SIGNAL_SPEC. Hvis ARG ikke er angivet (og hvis der angives en\n"
-"    enkelt SIGNAL_SPEC) eller \"-\", vil hvert angivet signal blive nulstillet\n"
+"    enkelt SIGNAL_SPEC) eller \"-\", vil hvert angivet signal blive "
+"nulstillet\n"
 "    til dets oprindelige værdi. Hvis ARG er null-strengen, vil hvert\n"
 "    SIGNAL_SPEC bliver ignoreret af skallen og af de kommandoer som den\n"
 "    starter.\n"
 "    \n"
-"    Hvis en SIGNAL_SPEC er EXIT (0), vil ARG blive eksekveret ved afslutning\n"
-"    af skallen. Hvis SIGNAL_SPEC er DEBUG, vil ARG blive eksekveret før hver\n"
+"    Hvis en SIGNAL_SPEC er EXIT (0), vil ARG blive eksekveret ved "
+"afslutning\n"
+"    af skallen. Hvis SIGNAL_SPEC er DEBUG, vil ARG blive eksekveret før "
+"hver\n"
 "    simpel kommando.\n"
 "    \n"
-"    Hvis der ikke er angivet nogen argumenter, vil trap udskrive en liste af\n"
+"    Hvis der ikke er angivet nogen argumenter, vil trap udskrive en liste "
+"af\n"
 "    kommandoer som er associeret med hvert signal.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -4186,14 +4447,16 @@ msgstr ""
 "      -p\tvis de trap-kommandoer som er associeret med hvert SIGNAL_SPEC\n"
 "    \n"
 "    Hver SIGNAL_SPEC er enten et signalnavn i <signal.h> eller et signal-\n"
-"    nummer. Signalnavne er ikke versalfølsomme og præfikset SIG er valgfrit.\n"
+"    nummer. Signalnavne er ikke versalfølsomme og præfikset SIG er "
+"valgfrit.\n"
 "    Et signal kan sendes til skallen med \"kill -signal $$\".\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre SIGSPEC er ugyldig eller hvis der er angivet\n"
+"    Returnerer succes med mindre SIGSPEC er ugyldig eller hvis der er "
+"angivet\n"
 "    et ugyldigt tilvalg."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4219,16 +4482,19 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Vis information om kommandoers type.\n"
 "    \n"
-"    Oplys for hvert NAVN, hvordan det ville blive tolket, hvis det blev brugt\n"
+"    Oplys for hvert NAVN, hvordan det ville blive tolket, hvis det blev "
+"brugt\n"
 "    som en kommando.\n"
 "    \n"
 "    Tilvalg:\n"
 "      -a\tvis alle placeringer som indeholder en eksekverbar ved navn NAVN;\n"
-"    \tinkluder aliasser, indbyggede og funktioner, hvis og kun hvis tilvalget\n"
+"    \tinkluder aliasser, indbyggede og funktioner, hvis og kun hvis "
+"tilvalget\n"
 "    \t\"-p\" ikke også bruges\n"
 "      -f\tundertryk søgning efter skalfunktioner\n"
 "      -P\tgennemtving en stisøgning for hvert NAVN, selvom det er et\n"
@@ -4237,23 +4503,28 @@ msgstr ""
 "      -p\treturnerer enten navnet på den diskfil, som ville blive\n"
 "    \teksekveret, eller ingenting hvis \"type -t NAVN\" ikke ville have\n"
 "    \treturneret \"file\".\n"
-"      -t\treturner et enkelt ord, enten \"alias\", \"keyword\", \"function\",\n"
+"      -t\treturner et enkelt ord, enten \"alias\", \"keyword\", \"function"
+"\",\n"
 "    \t\"builtin\", \"file\" eller \"\", hvis NAVN er henholdsvis et alias,\n"
-"        skalreserveret ord, skalfunktion, skalindbygget, diskfil eller ikke blev\n"
+"        skalreserveret ord, skalfunktion, skalindbygget, diskfil eller ikke "
+"blev\n"
 "        fundet.\n"
 "    \n"
 "    Argumenter:\n"
 "      NAVN\tNavnet på den kommando der skal fortolkes.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes hvis alle NAVNe kan findes, og fejler hvis bare et enkelt\n"
+"    Returnerer succes hvis alle NAVNe kan findes, og fejler hvis bare et "
+"enkelt\n"
 "    ikke findes."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4277,6 +4548,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4319,21 +4593,26 @@ msgstr ""
 "      -v\tstørrelsen af virtuel hukommelse\n"
 "      -x\tmaksimale antal fillåse\n"
 "    \n"
-"    Hvis GRÆNSE angives, er det den nye grænse for den specificerede ressource\n"
-"    De specielle grænser, \"soft\", hard\" og \"unlimited\" står for henholdsvis den\n"
+"    Hvis GRÆNSE angives, er det den nye grænse for den specificerede "
+"ressource\n"
+"    De specielle grænser, \"soft\", hard\" og \"unlimited\" står for "
+"henholdsvis den\n"
 "    aktuelle bløde grænse, hårde grænse og ingen grænse. Ellers vil den\n"
-"    aktuelle grænse for den specificerede ressource blive udskrevet. Hvis der\n"
+"    aktuelle grænse for den specificerede ressource blive udskrevet. Hvis "
+"der\n"
 "    ikke angives noget tilvalg, antages \"-f\".\n"
 "    \n"
-"    Værdier angives i forøgelser af 1024 bytes, bortset fra -t som er i sekunder,\n"
+"    Værdier angives i forøgelser af 1024 bytes, bortset fra -t som er i "
+"sekunder,\n"
 "    -p som er i forøgelser af 512 bytes og -u som er et uskaleret antal af\n"
 "    processer.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis der\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis "
+"der\n"
 "    opstår en fejl."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4352,10 +4631,12 @@ msgid ""
 msgstr ""
 "Vis eller indstil filmasketilstand.\n"
 "    \n"
-"    Indstiller brugeres filoprettelsesmaske til TILSTAND. Hvis TILSTAND udelades,\n"
+"    Indstiller brugeres filoprettelsesmaske til TILSTAND. Hvis TILSTAND "
+"udelades,\n"
 "    udskrives den nuværende værdi af masken.\n"
 "    \n"
-"    Hvis TILSTAND begynder med et ciffer, bliver det fortolket som et oktalt\n"
+"    Hvis TILSTAND begynder med et ciffer, bliver det fortolket som et "
+"oktalt\n"
 "    tal, ellers er det en symbolsk tilstandsstreng, ligesom dem der angives\n"
 "    til chmod(1).\n"
 "    \n"
@@ -4365,36 +4646,43 @@ msgstr ""
 "      -S\tgør outputtet symbolsk, eller vil output være et oktalt tal\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre TILSTAND er ugyldig, eller hvis et ugyldigt\n"
+"    Returnerer succes med mindre TILSTAND er ugyldig, eller hvis et "
+"ugyldigt\n"
 "    tilvalg angives."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Vent på færdiggørelse af job og returner afslutningsstatus.\n"
 "    \n"
 "    Venter på processen ID. ID kan enten være et proces-id eller en job-\n"
-"    specifikation, og rapporterer dets afslutningstatus. Hvis ID ikke angives\n"
-"    ventes på alle aktuelle underprocesser og afslutningsstatussen vil være 0.\n"
+"    specifikation, og rapporterer dets afslutningstatus. Hvis ID ikke "
+"angives\n"
+"    ventes på alle aktuelle underprocesser og afslutningsstatussen vil være "
+"0.\n"
 "    Hvis ID er en jobspecifikation ventes på alle processer i dette jobs\n"
 "    datakanal (pipe).\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer status af ID, fejler hvis ID er ugyldigt eller hvis der angives\n"
+"    Returnerer status af ID, fejler hvis ID er ugyldigt eller hvis der "
+"angives\n"
 "    et ugyldigt tilvalg."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4403,12 +4691,14 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Venter på færdiggørelse af proces og returnerer dens afslutningsstatus.\n"
 "    \n"
-"    Venter på den angivne proces og rapporterer dens afslutningsstatus. Hvis\n"
+"    Venter på den angivne proces og rapporterer dens afslutningsstatus. "
+"Hvis\n"
 "    der ikke angives noget PID ventes på alle aktuelle underprocesser og\n"
 "    afslutningsstatussen er 0. PID skal være et proces-id.\n"
 "    \n"
@@ -4416,7 +4706,7 @@ msgstr ""
 "    Returnerer statussen for ID, fejler hvis ID er ugyldig eller hvis der\n"
 "    angives et ugyldigt tilvalg."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4430,15 +4720,18 @@ msgid ""
 msgstr ""
 "Eksekver kommandoer hvor hvert element i en liste.\n"
 "    \n"
-"    \"for\"-løkken eksekverer en sekvens af kommandoer for hvert element i en\n"
-"    angivet liste af elementer. Hvis \"in ORD ...;\" ikke er tilstede, så antages\n"
-"    \"in \"$@\"\". For hvert element i ORD, vil NAVN blive sat til det element og\n"
+"    \"for\"-løkken eksekverer en sekvens af kommandoer for hvert element i "
+"en\n"
+"    angivet liste af elementer. Hvis \"in ORD ...;\" ikke er tilstede, så "
+"antages\n"
+"    \"in \"$@\"\". For hvert element i ORD, vil NAVN blive sat til det "
+"element og\n"
 "    KOMMANDOER vil blive eksekveret.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer statussen for den sidst eksekverede kommando."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4468,7 +4761,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer afslutningsstatussen for den sidst eksekverede kommando."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4491,10 +4784,13 @@ msgstr ""
 "    \n"
 "    ORD vil blive udvidet, således at der genereres en liste af ord. Denne\n"
 "    liste af udvidede ord vil blive skrevet til standardfejl, hvert af dem\n"
-"    med at nummer hæftet foran. Hvis \"in ORD\" ikke er angivet, antages \"in $@\".\n"
-"    Derefter vil en PS3-prompt blive vist og der vil blive læst en linje fra\n"
+"    med at nummer hæftet foran. Hvis \"in ORD\" ikke er angivet, antages "
+"\"in $@\".\n"
+"    Derefter vil en PS3-prompt blive vist og der vil blive læst en linje "
+"fra\n"
 "    standardinput. Hvis linje består af et tal, som svarer til et af de\n"
-"    viste ord, så vil NAVN blive sat til det ord. Hvis linjen er tom, vil ORD\n"
+"    viste ord, så vil NAVN blive sat til det ord. Hvis linjen er tom, vil "
+"ORD\n"
 "    og prompten blive vist igen. Hvis EOF bliver læst afsluttes kommandoen.\n"
 "    Hvis der læses en hvilken som helst anden værdi, vil NAVN blive sat til\n"
 "    null. Den læste linje vil bliver gemt i variablen REPLY. KOMMANDOER vil\n"
@@ -4503,7 +4799,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer statussen fra den sidst eksekverede kommando."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4532,7 +4828,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Afslutningsstatus er afslutningsstatus for DATAKANAL."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4544,22 +4840,28 @@ msgid ""
 msgstr ""
 "Eksekver kommandoer baseret på mønstersammenligning.\n"
 "    \n"
-"    Eksekver selektivt KOMMANDOER når ORD passer til MØNSTER. \"|\" bruges til at\n"
+"    Eksekver selektivt KOMMANDOER når ORD passer til MØNSTER. \"|\" bruges "
+"til at\n"
 "    adskille flere mønstre.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer statussen fra den sidst eksekverede kommando."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4567,11 +4869,16 @@ msgid ""
 msgstr ""
 "Eksekverer kommandoer baseret på betingelse.\n"
 "    \n"
-"    Listen \"if KOMMANDOER\" bliver eksekveret. Hvis dens afslutningsstatus er\n"
-"    nul, så vil listen \"then KOMMANDOER\" blive eksekveret. Ellers vil hver\n"
-"    \"elif KOMMANDOER\"-liste blive eksekveret og hvis de returnerer nul vil\n"
-"    deres tilhørende \"then KOMMANDER\"-liste blive eksekveret og if-kommandoen\n"
-"    fuldføres. Ellers vil \"else KOMMANDOER\"-listen blive eksekveret, hvis en\n"
+"    Listen \"if KOMMANDOER\" bliver eksekveret. Hvis dens afslutningsstatus "
+"er\n"
+"    nul, så vil listen \"then KOMMANDOER\" blive eksekveret. Ellers vil "
+"hver\n"
+"    \"elif KOMMANDOER\"-liste blive eksekveret og hvis de returnerer nul "
+"vil\n"
+"    deres tilhørende \"then KOMMANDER\"-liste blive eksekveret og if-"
+"kommandoen\n"
+"    fuldføres. Ellers vil \"else KOMMANDOER\"-listen blive eksekveret, hvis "
+"en\n"
 "    sådan findes. Afslutningsstatus for hele strukturen er afslutnings-\n"
 "    statussen for den sidste kommando, eller nul hvis ingen betingelse var\n"
 "    sand.\n"
@@ -4579,7 +4886,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer statussen fra den sidst eksekverede kommando."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4597,7 +4904,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer statussen fra den sidst eksekverede kommando."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4615,7 +4922,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer statussen fra den sidst eksekverede kommando."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4631,18 +4938,20 @@ msgstr ""
 "    \n"
 "    Eksekver KOMMANDO asynkront, med standardoutput og standardinput\n"
 "    for kommandoen forbundet via en datakanal (pipe), til fildeskriptorerne\n"
-"    tildelt til indeks 0 og 1 i en arrayvariabel NAVN i den eksekverende skal.\n"
+"    tildelt til indeks 0 og 1 i en arrayvariabel NAVN i den eksekverende "
+"skal.\n"
 "    Standardnavnet NAVN er \"COPROC\".\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer afslutningsstatussen for KOMMANDO."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4651,14 +4960,16 @@ msgid ""
 msgstr ""
 "Definer skalfunktion.\n"
 "    \n"
-"    Opret en skalfunktion ved navn NAVN. Når den køres som en simpel kommando,\n"
-"    NAVN kører KOMMANDOer i den kaldende skals kontekst. Når NAVN kaldes, bliver\n"
+"    Opret en skalfunktion ved navn NAVN. Når den køres som en simpel "
+"kommando,\n"
+"    NAVN kører KOMMANDOer i den kaldende skals kontekst. Når NAVN kaldes, "
+"bliver\n"
 "    argumenter sendt videre som $1..$n, og funktionens navn som $FUNCNAME.\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer succes med mindre NAVN er skrivebeskyttet."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4676,7 +4987,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    Returnerer statussen fra den sidst eksekverede kommando."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4691,16 +5002,19 @@ msgid ""
 msgstr ""
 "Genoptag job i forgrunden.\n"
 "    \n"
-"    Ækvivalent til JOB_SPEC-argumentet til \"fg\"-kommandoen. Genoptag et stoppet\n"
-"    job eller et job som ligger i baggrunden. JOB_SPEC kan specificere enten et\n"
-"    jobnavn eller et jobnummer. Hvis JOB_SPEC efterfølges af en \"&\", vil jobbet\n"
+"    Ækvivalent til JOB_SPEC-argumentet til \"fg\"-kommandoen. Genoptag et "
+"stoppet\n"
+"    job eller et job som ligger i baggrunden. JOB_SPEC kan specificere enten "
+"et\n"
+"    jobnavn eller et jobnummer. Hvis JOB_SPEC efterfølges af en \"&\", vil "
+"jobbet\n"
 "    blive placeret i baggrunden, som om jobspecifikationen var givet som et\n"
 "    argument til \"bg\".\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer statussen af det genoptagede job."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4712,19 +5026,23 @@ msgid ""
 msgstr ""
 "Evaluer aritmetisk udtryk.\n"
 "    \n"
-"    UDTRYK evalueres ifølge reglerne for aritmetisk evaluering. Ækvivalent til\n"
+"    UDTRYK evalueres ifølge reglerne for aritmetisk evaluering. Ækvivalent "
+"til\n"
 "    \"let UDTRYK\".\n"
 "    \n"
 "    Afslutningsstatus:\n"
 "    Returnerer 1 hvis udtrykket evalueres til 0, ellers returneres 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4745,18 +5063,23 @@ msgstr ""
 "Eksekver betingelseskommando.\n"
 "    \n"
 "    Returnerer status 0 eller 1 afhængigt af evalueringen af betingelses-\n"
-"    udtrykket UDTRYK. Udtryk består af de samme primære elementer som bliver\n"
-"    brugt i den indbyggede funktion \"test\" og kan kombineres ved brug af følgende\n"
+"    udtrykket UDTRYK. Udtryk består af de samme primære elementer som "
+"bliver\n"
+"    brugt i den indbyggede funktion \"test\" og kan kombineres ved brug af "
+"følgende\n"
 "    operatorer:\n"
 "    \n"
 "      ( UDTRYK )\tReturnerer værdien af UDTRYK\n"
 "      ! UDTRYK\t\tSand hvis UDTRYK er falsk, ellers falsk\n"
 "      UDTR1 && UDTR2\tSand hvis både UDTR1 og UDTR2 er sande, ellers falsk\n"
-"      UDTR1 && UDTR2\tSand hvis enten UDTR1 eller UDTR2 er sand, ellers falsk\n"
+"      UDTR1 && UDTR2\tSand hvis enten UDTR1 eller UDTR2 er sand, ellers "
+"falsk\n"
 "    \n"
-"    Når operatorerne \"==\" og \"!=\" bruges, vil strengen til højre for operatoren\n"
+"    Når operatorerne \"==\" og \"!=\" bruges, vil strengen til højre for "
+"operatoren\n"
 "    blive brugt som et mønster og der vil blive udført strengmatching. Når\n"
-"    operatoren \"=~\" bliver brugt, vil strengen til højre for operatoren blive\n"
+"    operatoren \"=~\" bliver brugt, vil strengen til højre for operatoren "
+"blive\n"
 "    matchet som et regulært udtryk.\n"
 "    \n"
 "    Operatorerne && og || vil ikke evaluere UDTR2, hvis UDTR1 er nok til at\n"
@@ -4765,7 +5088,7 @@ msgstr ""
 "    Afslutningsstatus:\n"
 "    0 eller 1 afhængigt af udtrykkets værdi."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4823,7 +5146,8 @@ msgstr ""
 "    BASH_VERSION\tVersionsinformation for denne Bash.\n"
 "    CDPATH\tEn kolonsepareret liste af mapper som kan gennemsøges for at\n"
 "    \t\tfinde mapper som er givet som argument til cd.\n"
-"    GLOBIGNORE\tEn kolonsepareret liste af mønstre som beskriver filnavne som\n"
+"    GLOBIGNORE\tEn kolonsepareret liste af mønstre som beskriver filnavne "
+"som\n"
 "    \t\tskal ignoreres ved stinavnsudvidelse.\n"
 "    HISTFILE\tNavnet på den fil hvori din kommandohistorik gemmes.\n"
 "    HISTFILESIZE\tDet maksimale antal linjer denne fil kan indeholde.\n"
@@ -4831,17 +5155,20 @@ msgstr ""
 "    HOME\tDet komplette stinavn til din logindmappe.\n"
 "    HOSTNAME\tNavnet på den aktuelle vært.\n"
 "    HOSTTYPE\tDen type af CPU som denne version af Bash kører under.\n"
-"    IGNOREEOF\tKontrollerer skallens handlinger hvis den modtager et EOF-tegn\n"
+"    IGNOREEOF\tKontrollerer skallens handlinger hvis den modtager et EOF-"
+"tegn\n"
 "    \t\tsom eneste input. Hvis den er indstillet, angiver den det antal\n"
 "    \t\tEOF-tegn som skal følge lige efter hinanden på en tom linje,\n"
 "    \t\tfør skallen afslutter (standardværdien er 10). Hvis den ikke er\n"
 "                indstillet vil EOF betyde slutningen af input.\n"
-"    MACHTYPE\tEn streng som beskriver det aktuelle system som Bash kører på.\n"
+"    MACHTYPE\tEn streng som beskriver det aktuelle system som Bash kører "
+"på.\n"
 "    MAILCHECK\tHvor ofte Bash tjekker for ny post, i sekunder.\n"
 "    MAILPATH\tEn kolonsepareret liste af filnavne som Bash tjekker for ny\n"
 "    \t\tpost.\n"
 "    OSTYPE\tDen version af Unix som denne version af Bash kører på.\n"
-"    PATH\tEn kolonsepareret liste af mapper som der søges i efter kommandoer.\n"
+"    PATH\tEn kolonsepareret liste af mapper som der søges i efter "
+"kommandoer.\n"
 "    PROMPT_COMMAND\tEn kommando som skal eksekveres før hver primære prompt\n"
 "    \t\tudskrives.\n"
 "    PS1\t\tStreng for den primære prompt.\n"
@@ -4849,25 +5176,32 @@ msgstr ""
 "    PWD\t\tDet fulde stinavn for den aktuelle mappe.\n"
 "    SHELLOPTS\tEn kolonsepareret liste af aktiverede skaltilvalg.\n"
 "    TERM\tNavnet på den aktuelle skaltype.\n"
-"    TIMEFORMAT\tOutputformatet for timingstatistik som vises ved hjælp af det\n"
+"    TIMEFORMAT\tOutputformatet for timingstatistik som vises ved hjælp af "
+"det\n"
 "    \t\treserverede ord \"time\".\n"
-"    auto_resume\tIkke-null betyder at for et kommandoord, som optræder for sig selv\n"
+"    auto_resume\tIkke-null betyder at for et kommandoord, som optræder for "
+"sig selv\n"
 "    \t\tpå en linje, vil der først blive kigget efter det i listen over\n"
 "    \t\taktuelt stoppede jobs. Hvis det findes der, vil dette job blive\n"
-"                bragt i forgrunden. Værdien \"exact\" betyder at kommandoordet\n"
+"                bragt i forgrunden. Værdien \"exact\" betyder at "
+"kommandoordet\n"
 "                skal matche et ord fra listen over stoppede jobs præcist.\n"
-"                Værdien \"substring\" betyder at kommandoordet skal matche en\n"
-"                delstreng af jobbet. Enhver anden værdi betyder at kommandoen\n"
+"                Værdien \"substring\" betyder at kommandoordet skal matche "
+"en\n"
+"                delstreng af jobbet. Enhver anden værdi betyder at "
+"kommandoen\n"
 "                skal være et præfiks for et stoppet job.\n"
-"    histchars\tTegn som kontrollerer historikudvidelse og hurtig substitution\n"
+"    histchars\tTegn som kontrollerer historikudvidelse og hurtig "
+"substitution\n"
 "    \t\ti historik. Det første tegn er historik-substitutionstegnet, som\n"
-"                regel \"!\". Det andet tegn er hurtigsubstitutionstegnet, som\n"
+"                regel \"!\". Det andet tegn er hurtigsubstitutionstegnet, "
+"som\n"
 "    \t\tregel \"^\". Det tredje tegn er historik-kommentartegnet, som\n"
 "    \t\tregel \"#\".\n"
 "    HISTIGNORE\tEn kolonsepareret liste af mønstre som bliver brugt til at\n"
 "    \t\tbestemme hvilke kommandoer der skal gemmes i historikken.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4922,10 +5256,11 @@ msgstr ""
 "      Den indbyggede \"dirs\" viser mappestakken.\n"
 "      \n"
 "      Afslutningsstatus:\n"
-"      Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"      Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "      mappeskiftet mislykkes."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4953,7 +5288,8 @@ msgid ""
 msgstr ""
 "Fjerner mapper fra stakken.\n"
 "    \n"
-"    Fjerner en mappe fra stakken. Uden argumenter fjernes den øverste mappe fra\n"
+"    Fjerner en mappe fra stakken. Uden argumenter fjernes den øverste mappe "
+"fra\n"
 "    stakken og der skiftes til den nye aktuelle mappe.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -4962,20 +5298,23 @@ msgstr ""
 "    \n"
 "    Argumenter:\n"
 "      +N\tFjerner den N'te mappe, talt fra venstre i listen som vises af\n"
-"    \t\"dirs\", startende med nul. F.eks: vil \"popd +0\" fjerne den første mappe\n"
+"    \t\"dirs\", startende med nul. F.eks: vil \"popd +0\" fjerne den første "
+"mappe\n"
 "    \tog \"popd +1\" den anden.\n"
 "    \n"
 "      -N\tFjerner den N'te mappe, talt fra højre i listen som vises af\n"
-"    \t\"dirs\", startende med nul. F.eks: vil \"popd -0\" fjerne den sidste mappe\n"
+"    \t\"dirs\", startende med nul. F.eks: vil \"popd -0\" fjerne den sidste "
+"mappe\n"
 "    \tog \"popd -1\" den andensidste.\n"
 "    \n"
 "      Den indbyggede \"dirs\" viser mappestakken.\n"
 "      \n"
 "      Afslutningsstatus:\n"
-"      Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"      Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "      mappeskiftet mislykkes."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4992,10 +5331,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5004,7 +5345,8 @@ msgstr ""
 "Vis mappestakken.\n"
 "    \n"
 "    Vis listen af huskede mapper. Mapper tilføjes denne liste ved hjælp\n"
-"    af \"pushd\"-kommandoen. Du kan komme tilbage gennem listen med \"popd\"-\n"
+"    af \"pushd\"-kommandoen. Du kan komme tilbage gennem listen med \"popd"
+"\"-\n"
 "    kommandoen.\n"
 "    \n"
 "    Tilvalg:\n"
@@ -5022,15 +5364,17 @@ msgstr ""
 "    \t\"dirs\" kørt uden argumenter, talt fra nul.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis der\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis "
+"der\n"
 "    opstår en fejl."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5046,12 +5390,14 @@ msgid ""
 msgstr ""
 "Indstil og afindstil (unset) skalvariable.\n"
 "    \n"
-"    Ændr indstillinger for hver skalvariabel INDSTNAVN. Uden argumenter vises\n"
+"    Ændr indstillinger for hver skalvariabel INDSTNAVN. Uden argumenter "
+"vises\n"
 "    en liste af skalvariable, sammen med information om hvorvidt de er\n"
 "    indstillet.\n"
 "    \n"
 "    Tilvalg:\n"
-"      -o\tbegræns INDSTNAVN til dem som er defineret til brug med \"set -o\"\n"
+"      -o\tbegræns INDSTNAVN til dem som er defineret til brug med \"set -o"
+"\"\n"
 "      -p\tudskriv alle skalvariable sammen med en indikation af deres\n"
 "    \tstatus\n"
 "      -q\tundertryk output\n"
@@ -5059,10 +5405,11 @@ msgstr ""
 "      -u\tdeaktiver (unset) hvert INDSTNAVN\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes hvis INDSTNAVN er aktiveret; fejler hvis der angives et\n"
+"    Returnerer succes hvis INDSTNAVN er aktiveret; fejler hvis der angives "
+"et\n"
 "    ugyldigt tilvalg eller hvis INDSTNAVN er deaktiveret."
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5071,36 +5418,47 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Formaterer og udskriver ARGUMENTER formateret efter FORMAT.\n"
 "    \n"
 "    Tilvalg:\n"
-"      -v var\tsend output til skalvariablen VAR i stedet for at vise det via\n"
+"      -v var\tsend output til skalvariablen VAR i stedet for at vise det "
+"via\n"
 "    \t\tstandardoutput\n"
 "    \n"
-"    FORMAT er en tegnstreng som indeholder 3 typer af objekter: Almindelige tegn,\n"
-"    som kopieres til standardoutput som de er; undvigetegn, som konverteres og\n"
-"    kopieres til standardoutput; og formatspecifikationer, som hver især fører\n"
+"    FORMAT er en tegnstreng som indeholder 3 typer af objekter: Almindelige "
+"tegn,\n"
+"    som kopieres til standardoutput som de er; undvigetegn, som konverteres "
+"og\n"
+"    kopieres til standardoutput; og formatspecifikationer, som hver især "
+"fører\n"
 "    til udskrivningen af det næste argument.\n"
 "    \n"
-"    Ud over de standardformatspecifikationer som er beskrevet i printf(1) og\n"
+"    Ud over de standardformatspecifikationer som er beskrevet i printf(1) "
+"og\n"
 "    printf(3), fortolker printf også følgende:\n"
 "    \n"
 "      %b\tudvid undvigesekvenser med omvendt skråstreg i det tilsvarende\n"
@@ -5108,16 +5466,19 @@ msgstr ""
 "      %q\tciter argumenter på en måde så de kan genbruges som skalinput\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "    der opstår en skrive- eller tildelingsfejl."
 
-#: builtins.c:1913
+#: builtins.c:1926
 #, fuzzy
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5153,15 +5514,17 @@ msgstr ""
 "    som de tilvalg som har store bogstaver, står i.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "    der opstår en fejl."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5169,23 +5532,28 @@ msgid ""
 msgstr ""
 "Vis mulige fuldførsler afhængigt af indstillingerne.\n"
 "    \n"
-"    Beregnet til brug i skalfunktioner som genererer de mulige fuldførelser.\n"
+"    Beregnet til brug i skalfunktioner som genererer de mulige "
+"fuldførelser.\n"
 "    Hvis det valgfrie ORD angives, vil der blive genereret fuldførsler som\n"
 "    matcher ORD.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "    der opstår en fejl."
 
 # Fejlrapport
-#: builtins.c:1956
+#: builtins.c:1969
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5209,45 +5577,57 @@ msgstr ""
 "Ændr eller vis indstillinger for fuldførsel.\n"
 "    \n"
 "    Ændr fuldførselsindstillinger for hvert NAVN, eller, hvis der ikke er\n"
-"    angivet nogle NAVNe, fuldførslen der bliver eksekveret nu. Hvis der ikke\n"
+"    angivet nogle NAVNe, fuldførslen der bliver eksekveret nu. Hvis der "
+"ikke\n"
 "    er angivet nogle tilvalg, vil fuldførslen for hvert navn eller den\n"
 "    aktuelle fuldførsel blive udskrevet.\n"
 "    \n"
 "    Tilvalg:\n"
 "    \t-o indstilling\tIndstil fuldførselsindstillingen INDSTILLING for\n"
 "    \t\t\thvert NAVN.\n"
-"    Ved brug af \"+o\" i stedet for \"-o\" vil den specificerede indstilling blive\n"
+"    Ved brug af \"+o\" i stedet for \"-o\" vil den specificerede indstilling "
+"blive\n"
 "    slået fra.\n"
 "    \n"
 "    Argumenter:\n"
 "    \n"
-"    Hvert NAVN refererer til en kommando, for hvilken der tidligere er blevet\n"
-"    angivet en fuldførselsspecifikation med den indbyggede \"complete\". Hvis\n"
-"    der ikke er angivet nogle NAVNe, så skal compopt kaldes af den funktion som\n"
+"    Hvert NAVN refererer til en kommando, for hvilken der tidligere er "
+"blevet\n"
+"    angivet en fuldførselsspecifikation med den indbyggede \"complete\". "
+"Hvis\n"
+"    der ikke er angivet nogle NAVNe, så skal compopt kaldes af den funktion "
+"som\n"
 "    genererer fuldførsler nu og så vil indstillingerne for den aktuelt\n"
 "    kørende fuldførselsgenerator blive modificeret.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der angives et ugyldigt tilvalg, eller "
+"hvis\n"
 "    der ikke er defineret en fuldførselsspecifikation for NAVN."
 
-#: builtins.c:1986
+#: builtins.c:1999
 #, fuzzy
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5257,22 +5637,27 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Læs linjer ind i en arrayvariabel fra standardinput.\n"
 "    \n"
 "    Læs linjer ind i en arrayvariabel ARRAY fra standardinput, eller fra en\n"
-"    fildeskriptor FD, hvis tilvalget -u er givet. Variablen MAPFIL er forvalgt\n"
+"    fildeskriptor FD, hvis tilvalget -u er givet. Variablen MAPFIL er "
+"forvalgt\n"
 "    som ARRAY.\n"
 "    \n"
 "    Tilvalg:\n"
-"      -n antal\tKopier højst ANTAL linjer. Hvis ANTAL er 0 kopieres alle linjer.\n"
-"      -O start\tBegynd at skrive til ARRAY ved indeks START. Standardværdien er\n"
+"      -n antal\tKopier højst ANTAL linjer. Hvis ANTAL er 0 kopieres alle "
+"linjer.\n"
+"      -O start\tBegynd at skrive til ARRAY ved indeks START. Standardværdien "
+"er\n"
 "    \t0.\n"
 "      -s antal\tSmid de første ANTAL læste linjer væk.\n"
 "      -t \tFjern et efterfølgende nylinjetegn fra slutningen af hver linje.\n"
@@ -5286,17 +5671,19 @@ msgstr ""
 "      ARRAY\t\tNavn for arrayvariabel som skal bruges til fildata.\n"
 "    \n"
 "    Hvis -C er angivet uden -c er standardkvantum 5000. Når TILBAGEKALD\n"
-"    kaldes, vil den få det næste arrayindeks, som vil blive brugt som et ekstra\n"
+"    kaldes, vil den få det næste arrayindeks, som vil blive brugt som et "
+"ekstra\n"
 "    argument.\n"
 "    \n"
 "    Med mindre et startpunkt i arrayet eksplicit angives, vil mapfile rydde\n"
 "    ARRAY, inden skrivning til den påbegyndes.\n"
 "    \n"
 "    Afslutningsstatus:\n"
-"    Returnerer succes med mindre der angives at ugyldigt tilvalg, eller hvis\n"
+"    Returnerer succes med mindre der angives at ugyldigt tilvalg, eller "
+"hvis\n"
 "    ARRAY er skrivebeskyttet."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5313,4 +5700,5 @@ msgstr ""
 #~ msgstr "xrealloc: kan ikke allokere %lu bytes"
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: %s:%d: kan ikke reallokere %lu bytes (%lu bytes allokeret)"
+#~ msgstr ""
+#~ "xrealloc: %s:%d: kan ikke reallokere %lu bytes (%lu bytes allokeret)"
index 61eb8bcc2598cc43da14346e5c30b0135359d851..1873bf450b4616ff2940c96f4698f5b8e7ecd67c 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index ff6990299a3b8ae99dce95078cf6c202ab994bb4..120a7a64ffd34b8c35cf6fab51f73203e0cff479 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-02-16 21:42+0100\n"
 "Last-Translator: Nils Naumann <nau@gmx.net>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -16,50 +16,54 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "Falscher Feldbezeichner."
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: Kann nicht das indizierte in ein assoziatives Array umwandeln."
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: Ungültiger Schlüssel für das assoziative Array."
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: Kann nicht auf einen nicht-numerischen Index zuweisen."
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: Ein Feldbezeicher wird zum Zuweisen eines assoziativen Arrays benötigt."
+msgstr ""
+"%s: %s: Ein Feldbezeicher wird zum Zuweisen eines assoziativen Arrays "
+"benötigt."
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: Kann die Datei %s nicht erzeugen."
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando finden."
+msgstr ""
+"bash_execute_unix_command: Kann nicht die Tastenzuordnung für das Kommando "
+"finden."
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr " %s: Das erste nicht Leerzeichen ist nicht `\\'."
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "fehlende schließende `%c' in %s."
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: Fehlender Doppelpunkt."
@@ -69,36 +73,36 @@ msgstr "%s: Fehlender Doppelpunkt."
 msgid "`%s': invalid alias name"
 msgstr "`%s': Ungültiger Alias Name."
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "Zeileneditierung ist nicht aktiviert."
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': Ungültiger KEYMAP Name."
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: Nicht lesbar: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': Bindung kann nicht gelöst werden."
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: Unbekannter Funktionsname."
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s ist keiner Taste zugeordnet.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s kann aufgerufen werden durch "
@@ -119,11 +123,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME ist nicht zugewiesen."
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "Zu viele Argumente."
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD ist nicht zugewiesen."
 
@@ -133,7 +141,7 @@ msgstr "OLDPWD ist nicht zugewiesen."
 msgid "line %d: "
 msgstr "Zeile %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "Warnung: "
@@ -143,11 +151,7 @@ msgstr "Warnung: "
 msgid "%s: usage: "
 msgstr "%s: Gebrauch: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "Zu viele Argumente."
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: Ein numerischer Paremeter ist erforderlich."
@@ -162,7 +166,7 @@ msgstr "%s: Ein numerischer Parameter ist erforderlich."
 msgid "%s: not found"
 msgstr "%s: Nicht gefunden."
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: Ungültige Option"
@@ -172,7 +176,7 @@ msgstr "%s: Ungültige Option"
 msgid "%s: invalid option name"
 msgstr "%s: Ungültiger Optionsname."
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': Ist kein gültiger Bezeichner."
@@ -185,7 +189,7 @@ msgstr "Ungültige Oktalzahl."
 msgid "invalid hex number"
 msgstr "Ungültige hexadezimale Zahl."
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "Ungültige Zahl."
 
@@ -199,7 +203,7 @@ msgstr "%s: Ungültige Signalbezeichnung."
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung."
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: Schreibgeschützte Variable."
@@ -271,26 +275,26 @@ msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: Mehrdeutige Job Bezeichnung."
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: Ungültige Methode."
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: Keine Komplettierung angegeben."
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "Warnung: Die -F Option könnte unerwartete Ergebnisse liefern."
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "Warnung: Die -C Option könnte unerwartete Ergebnisse liefern."
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "Gegenwärtig wird keine Komplettierungsfunktion ausgeführt."
 
@@ -302,7 +306,7 @@ msgstr "kann nur innerhalb einer Funktion benutzt werden."
 msgid "cannot use `-f' to make functions"
 msgstr "Mit `-f' können keine Funktionen erzeugt werden."
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: Schreibgeschützte Funktion."
@@ -312,10 +316,11 @@ msgstr "%s: Schreibgeschützte Funktion."
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen."
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr "%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich."
+msgstr ""
+"%s: Konvertieren von assoziativen in indizierte Arrays ist nicht möglich."
 
 #: builtins/enable.def:137 builtins/enable.def:145
 msgid "dynamic loading not available"
@@ -341,8 +346,8 @@ msgstr "%s: Ist nicht dynamisch geladen."
 msgid "%s: cannot delete: %s"
 msgstr "%s: Kann nicht löschen: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: ist ein Verzeichnis."
@@ -357,8 +362,7 @@ msgstr "%s: Ist keine normale Datei."
 msgid "%s: file is too large"
 msgstr "%s: Die Datei ist zu groß."
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: Kann die Datei nicht ausführen."
@@ -442,8 +446,11 @@ msgstr[1] "Shell Kommandos auf die die Schlüsselwörter zutreffen `"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "Auf `%s' trifft kein Hilfethema zu.  Probieren Sie `help help', `man -k %s' oder `info %s'."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"Auf `%s' trifft kein Hilfethema zu.  Probieren Sie `help help', `man -k %s' "
+"oder `info %s'."
 
 #: builtins/help.def:185
 #, c-format
@@ -478,7 +485,7 @@ msgstr "Es darf nur eine Option aus -anrw angegeben werden."
 msgid "history position"
 msgstr "Kommandostapelposition."
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: Kommandoersetzung gescheitert."
@@ -501,7 +508,7 @@ msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein."
 msgid "Unknown error"
 msgstr "Unbekannter Fehler."
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "Ausdruck erwartet."
 
@@ -510,12 +517,12 @@ msgstr "Ausdruck erwartet."
 msgid "%s: not an indexed array"
 msgstr "%s: Ist kein indiziertes Array."
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: Ungültige Datei-Deskriptor Angabe."
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: Ungültiger Datei-Deskriptor: %s"
@@ -543,31 +550,31 @@ msgstr "Fehlender Name für die Array Variable."
 msgid "array variable support required"
 msgstr "Die Array Variablen Unterstützung ist in dieser Shell nicht vorhanden."
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': Fehlendes Formatierungszeichen."
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': Ungültige Zeitformatangabe."
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': Ungültiges Formatierungszeichen."
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "Warnung: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "Fehlende hexadezimale Ziffer nach \\x."
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "Fehlendes Unicode Zeichen für \\%c."
@@ -603,10 +610,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an.  Durch\n"
@@ -715,35 +724,38 @@ msgstr ""
 "    \n"
 "    Das `dirs' Kommando zeigt den Verzeichnisstapel an."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: Ungültige Wartezeitangebe."
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "Lesefehler: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "»Return« ist nur aus einer Funktion oder einem mit »source« ausgefühten Skript möglich."
+msgstr ""
+"»Return« ist nur aus einer Funktion oder einem mit »source« ausgefühten "
+"Skript möglich."
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
-msgstr "Gleichzeitiges `unset' einer Funktion und einer Variable ist nicht möglich."
+msgstr ""
+"Gleichzeitiges `unset' einer Funktion und einer Variable ist nicht möglich."
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: `unset' nicht möglich."
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: `unset' nicht möglich: Schreibgeschützt %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: Ist keine Feldvariable."
@@ -757,11 +769,11 @@ msgstr "%s: Ist keine Funktion."
 msgid "shift count"
 msgstr "Verschiebezähler"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "Kann nicht Shell Optinen gleichzeitig aktivieren und deaktivieren."
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: Ungültiger Shell Optionen Name."
@@ -804,7 +816,7 @@ msgstr "%s ist eine Funktion.\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s ist eine von der Shell mitgelieferte Funktion.\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s ist %s\n"
@@ -814,26 +826,26 @@ msgstr "%s ist %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: Ungültiges Grenzwertargument."
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': Falsches Kommando."
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: Kann die nicht Grenze setzen: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "Grenze"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: Kann die Grenze nicht ändern: %s"
@@ -852,7 +864,7 @@ msgstr "`%c': Ungültiger Operator für den symbolischen Modus."
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': Ungültiges Zeichen im symbolischen Modus."
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " Zeile "
 
@@ -866,24 +878,24 @@ msgstr "Letztes Kommando: %s\n"
 msgid "Aborting..."
 msgstr "Abbruch..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "Unbekanntes Kommando"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr ""
 
 # Programmierfehler
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr ""
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "Falscher Sprung"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s ist nicht gesetzt."
@@ -898,102 +910,118 @@ msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Kann nicht die Standardeingabe von /dev/null umleiten: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen."
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "Pipe-Fehler"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: Verboten:  `/' ist in Kommandonamen unzulässig."
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: Kommando nicht gefunden."
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: Defekter Interpreter"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: Kann die Datei nicht ausführen."
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s ist eine von der Shell mitgelieferte Funktion.\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Kann fd %d nicht auf fd %d verdoppeln."
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "Zu viele Rekursionen in Ausdruck."
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "Rekursionsstapel leer."
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "Syntaxfehler im Ausdruck."
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "Zuweisung zu einer Nicht-Variablen versucht."
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "Division durch 0."
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "Fehler: Falscher Zuweisungsoperator."
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "`:' erwartet für ein bedingten Ausdruck."
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "Der Exponent ist kleiner als 0."
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr "Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
+msgstr ""
+"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet."
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "Fehlende `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "Syntax Fehler: Operator erwartet."
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "Syntaxfehler: Ungültiger arithmetischer Operator."
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (Fehlerverursachendes Zeichen ist \\\"%s\\\")."
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "Ungültige Basis."
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "Der Wert ist zu groß für die aktuelle Basis."
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: Fehler im Ausdruck.\n"
@@ -1002,170 +1030,170 @@ msgstr "%s: Fehler im Ausdruck.\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd: Kann nicht auf das übergeordnete Verzeichnis zugreifen."
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "Konnte den No-Delay Modus für fd %d nicht wieder herstellen."
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "Kann keinen neuen Filedeskriptor für die Eingabe von fd %d zuweisen."
 
 # Debug Ausgabe
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: Es existiert bereits ein Puffer für den neuen fd %d."
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "Die geforkte PID %d erscheint im laufenden Prozess %d."
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "Lösche den gestoppten Prozess %d der Prozessgruppe %ld."
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
 # Programmierfehler
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: Prozeßnummer existiert nicht."
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Fertig"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Angehalten"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Angehalten(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Läuft"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Fertig(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Unbekannter Status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(Speicherabzug geschrieben) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
 # interner Fehler
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: Prozeß %ld wurde nicht von dieser Shell gestartet."
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: Programm ist beendet."
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
 # Debug Ausgabe
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: Zeile %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (Speicherabzug geschrieben)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n"
 
 # interner Fehler
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp war nicht erfolgreich."
 
 # interner Fehler
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
 # interner Fehler
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "Kann die Prozessgruppe des Terminals nicht setzen (%d)."
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "Keine Job Steuerung in dieser Shell."
 
@@ -1189,7 +1217,8 @@ msgstr "Unbekannt"
 
 #: lib/malloc/malloc.c:797
 msgid "malloc: block on free list clobbered"
-msgstr "Malloc:  Ein frei gekennzeichneter Speicherbereich wurde überschrieben."
+msgstr ""
+"Malloc:  Ein frei gekennzeichneter Speicherbereich wurde überschrieben."
 
 #: lib/malloc/malloc.c:874
 msgid "free: called with already freed block argument"
@@ -1213,7 +1242,8 @@ msgstr "realloc: Mit nicht zugewiesenen Argument aufgerufen."
 
 #: lib/malloc/malloc.c:1016
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
+msgstr ""
+"realloc: Underflow erkannt; mh_nbytes außerhalb des Gültigkeitsbereichs."
 
 #: lib/malloc/malloc.c:1022
 msgid "realloc: start and end chunk sizes differ"
@@ -1222,19 +1252,24 @@ msgstr "realloc: Beginn und Ende Segmentgrößen sind unterschiedlich.<"
 #: lib/malloc/table.c:177
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr "register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
+msgstr ""
+"register_alloc: Speicherzuordnungstabelle ist mit FIND_ALLOC gefüllt?\n"
 
 #: lib/malloc/table.c:184
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr "register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt gekennzeichnet?\n"
+msgstr ""
+"register_alloc: %p ist bereits in der Speicherzuordnungstabelle als belegt "
+"gekennzeichnet?\n"
 
 #: lib/malloc/table.c:220
 #, c-format
 msgid "register_free: %p already in table as free?\n"
-msgstr "register_free: %p ist bereits in der Speicherzuordnungstabelle als frei gekennzeichnet?\n"
+msgstr ""
+"register_free: %p ist bereits in der Speicherzuordnungstabelle als frei "
+"gekennzeichnet?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "Ungültige Basis"
 
@@ -1257,22 +1292,22 @@ msgstr "%s: Fehlerhafte Netzwerkspfadangabe."
 msgid "network operations not supported"
 msgstr "Der Netzwerkbetrieb ist nicht unterstützt."
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: Kann die Locale nicht ändern (%s)."
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: Kann die Locale nicht ändern (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: Kann die Standorteinstellungen nicht ändern (%s)."
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: Kann nicht die Locale ändern (%s): %s"
@@ -1305,119 +1340,119 @@ msgid "syntax error: `((%s))'"
 msgstr "Syntax Fehler: `((%s))'."
 
 # interner Fehler
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: Falscher Befehlstyp %d."
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "Dateiende beim Suchen nach `%c' erreicht."
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "Dateiende beim Suchen nach `]]' erreicht."
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "Syntaxfehler im bedingten Ausdruck: Unerwartetes Zeichen `%s'."
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "Syntaxfehler im bedingen Ausdruck."
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "Unerwartetes Zeichen: `%s' anstatt von `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "`)' erwartet."
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "Syntax Fehler: Unerwartetes Dateiende."
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "Syntax Fehler"
 
 # Du oder Sie?
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Benutze \"%s\" um die Shell zu verlassen.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Dateiende beim Suchen nach passender `)' erreicht."
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1427,26 +1462,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: Falsches Verbindungszeichen `%d'."
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: Ungültige Dateibeschreibung."
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1484,33 +1519,33 @@ msgstr "%s: Kann fd keiner Variable zuweisen."
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port Wird ohne Netzwerk nicht unterstützt"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr ""
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "Konnte das /tmp Verzeichnis nicht finden, bitte anlegen."
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp muß ein gültiger Verzeichnisname sein."
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: Ungültige Option"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Ich habe keinen Benutzernamen!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, Version %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1519,39 +1554,39 @@ msgstr ""
 "Benutzung:\t%s [Lange GNU Option] [Option] ...\n"
 "\t\t%s [Lange GNU Option] [Option] Script-Datei ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Lange GNU Optionen:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Shell-Optionen:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD oder -c Kommando\t\t(Nur Aufruf)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s oder Option -o\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "`%s -c \"help set\"' für mehr Informationen über Shell-Optionen.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "`%s -c help' für mehr Information über Shell-Kommandos.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Mit dem `bashbug' Kommando können Fehler gemeldet werden.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: Ungültige Operation"
@@ -1725,83 +1760,85 @@ msgstr "Unbekannte Signalnummer."
 msgid "Unknown Signal #%d"
 msgstr "Unbekanntes Signal Nr.: %d."
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "Falsche Ersetzung: Keine schließende `%s' in `%s' enthalten."
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: Kann einem Feldelement keine Liste zuweisen."
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen."
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "Kann den Kindsprozess für die Prozeßersetzung nicht erzeugen."
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "Kann nicht die benannte Pipe %s zum lesen öffnen."
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen."
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "Kann die benannte Pipe %s nicht auf fd %d."
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "Kann keine Pipes für Kommandoersetzung erzeugen."
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen."
 
 # interner Fehler
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "Kommandoersetzung: Kann Pipe nicht als fd 1 duplizieren."
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: Parameter ist Null oder nicht gesetzt."
 
 # interner Fehler
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: Teilstring-Ausdruck < 0."
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: Falsche Variablenersetzung."
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: Kann so nicht zuweisen."
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s."
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "Keine Entsprechung: %s"
@@ -1838,77 +1875,78 @@ msgstr "%s: Zweistelliger (binärer) Operator erwartet."
 msgid "missing `]'"
 msgstr "Fehlende `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "Ungültige Signalnummer."
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
 # Programmierfehler
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Falsches Signal %d."
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "Fehler beim Importieren der Funktionsdefinition für `%s'."
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: Kann nicht als Datei geöffnet werden."
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1918,8 +1956,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1943,8 +1985,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Lizenz GPLv2+: GNU GPL Version 2 oder jünger <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Lizenz GPLv2+: GNU GPL Version 2 oder jünger <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1975,8 +2021,13 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] Name [Name ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name] [-r Tastenfolge:Shell Kommando] [Tastenfolge:readline Funktion oder Kommando]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name] [-r "
+"Tastenfolge:Shell Kommando] [Tastenfolge:readline Funktion oder Kommando]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2065,7 +2116,9 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] [Kommando]"
+msgstr ""
+"fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] "
+"[Kommando]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2084,8 +2137,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [Muster ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps Argument [Argument...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps "
+"Argument [Argument...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2096,16 +2153,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [Jobbezeichnung ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s Signalname | -n Signalnummer | -Signalname] [pid | job] ... oder kill -l [Signalname]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s Signalname | -n Signalnummer | -Signalname] [pid | job] ... oder "
+"kill -l [Signalname]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let Argument [Argument ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N Zeichenanzahl] [-p Prompt] [-t Zeitlimit] [-u fd] [Name ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-N "
+"Zeichenanzahl] [-p Prompt] [-t Zeitlimit] [-u fd] [Name ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2164,7 +2229,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] Name [Name ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [Grenzwert]"
 
 #: builtins.c:172
@@ -2172,7 +2238,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [Modus]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2200,8 +2267,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case Wort in [Muster [| Muster]...) Kommandos ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else Kommandos; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... [ else "
+"Kommandos; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2260,23 +2331,38 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] Format [Argumente]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o Option] [-A Aktion] [-G Suchmuster] [-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S Suffix] [Name ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o Option] [-A Aktion] [-G Suchmuster] "
+"[-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-"
+"S Suffix] [Name ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o Option]  [-A Aktion] [-G Suchmuster] [-W Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S Suffix] [Wort]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o Option]  [-A Aktion] [-G Suchmuster] [-W "
+"Wortliste]  [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S "
+"Suffix] [Wort]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o Option] [-DE] [Name ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 msgstr ""
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 msgstr ""
 
 #: builtins.c:254
@@ -2294,7 +2380,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definiert Aliase oder zeigt sie an.\n"
@@ -2331,6 +2418,7 @@ msgstr ""
 
 # bind
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2342,24 +2430,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2373,33 +2467,45 @@ msgstr ""
 "    '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Optionen:\n"
-"      -m  Keymap         Benutzt KEYMAP as Tastaturbelegung für die Laufzeit\n"
-"                         dieses Kommandos.  Gültige Keymap Namen sind: emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"      -m  Keymap         Benutzt KEYMAP as Tastaturbelegung für die "
+"Laufzeit\n"
+"                         dieses Kommandos.  Gültige Keymap Namen sind: "
+"emacs,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command und vi-insert.\n"
 "      -l                 Listet Funktionsnamen auf.\n"
 "      -P                 Listet Funktionsnamen und Tastenzuordnungen auf.\n"
-"      -p                 Listet Funktionsnamen und Tastenzuordnungen so auf,\n"
-"                         dass sie direkt als Eingabe verwendet werden können.\n"
-"      -S                 Listet Tastenfolgen und deren Werte auf, die Makros \n"
+"      -p                 Listet Funktionsnamen und Tastenzuordnungen so "
+"auf,\n"
+"                         dass sie direkt als Eingabe verwendet werden "
+"können.\n"
+"      -S                 Listet Tastenfolgen und deren Werte auf, die "
+"Makros \n"
 "                         aufrufen.\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
-"      -q  Funktionsname  Succht die Tastenfolgen, welche die angegebene Funktion aufrufen.\n"
-"      -u  Funktionsname  Entfernt alle der Funktion zugeordneten Tastenfolgen.\n"
-"      -r  Tastenfolge    Entfernt die Zuweisungen der angegebeben Tastenfolge.\n"
-"      -f  Dateiname      Liest die Tastenzuordnungen aus der angegebenen Datei.\n"
-"      -x  Tastenfolge:Shellkommando\tWeist der Tastenfolge das Shellkommando\n"
+"      -q  Funktionsname  Succht die Tastenfolgen, welche die angegebene "
+"Funktion aufrufen.\n"
+"      -u  Funktionsname  Entfernt alle der Funktion zugeordneten "
+"Tastenfolgen.\n"
+"      -r  Tastenfolge    Entfernt die Zuweisungen der angegebeben "
+"Tastenfolge.\n"
+"      -f  Dateiname      Liest die Tastenzuordnungen aus der angegebenen "
+"Datei.\n"
+"      -x  Tastenfolge:Shellkommando\tWeist der Tastenfolge das "
+"Shellkommando\n"
 "    \t\t\t\t\tzu.\n"
 "    \n"
 "    Rückgabewert: \n"
 "    Bind gibt 0 zurück, wenn keine unerkannte Option angegeben wurde\n"
 "    oder ein Fehler eintrat."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2417,7 +2523,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Der Rückgabewert ist 0, es sei den N ist größer oder gleich 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2436,13 +2542,14 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Der Rückgabewert ist 0, außer wenn N größer oder gleich 1 ist."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2459,7 +2566,7 @@ msgstr ""
 "    Der Rückgabewert der eingebauten Schellfunkrion oder Falsch, wenn\n"
 "    diese nicht existiert."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2475,33 +2582,46 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Wechselt das Arbeitsverzeichnis.\n"
@@ -2523,7 +2643,8 @@ msgstr ""
 "    Optionen:\n"
 "        -L\tErzwingt das Folgen symbolischer Verweise.\n"
 "        -P\tSymbolische Verweise werden ignoriert.\n"
-"        -e\tDer Rückgabewert ist ungleich Null, wenn die -P Option verwendet wird\n"
+"        -e\tDer Rückgabewert ist ungleich Null, wenn die -P Option verwendet "
+"wird\n"
 "\t\tund das aktuelle Arbeitsverzeichns nicht ermittelt werden kann.\n"
 "    \n"
 "    Standardmäßig wird symbolischen Verweisen gefolgt.\n"
@@ -2533,7 +2654,7 @@ msgstr ""
 "    und wenn -P verwendet worden ist auch $PWD gesetzt werden konnte; sonst\n"
 "    ungleich 0."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2550,7 +2671,7 @@ msgid ""
 msgstr "    be a literal `]', to match the opening `['.<"
 
 # colon
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2566,7 +2687,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Das Kommando ist immer erfolgreich."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2574,7 +2695,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2582,12 +2703,13 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2600,7 +2722,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2630,14 +2752,15 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2647,7 +2770,7 @@ msgstr ""
 "\n"
 "    Veraltet.  Siehe `help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2663,21 +2786,26 @@ msgid ""
 msgstr ""
 "Definiert lokale Variablen.\n"
 "    \n"
-"    Erzeugt eine Lokale Variable NAME und weist ihr den Wert VALUE zu.  OPTION\n"
+"    Erzeugt eine Lokale Variable NAME und weist ihr den Wert VALUE zu.  "
+"OPTION\n"
 "    kann eine beliebige von `declare' akzeptierte Option sein.\n"
 "\n"
-"    Lokale Variablen können nur innerhalb einer Funktion benutzt werden. Sie\n"
-"    sind nur in der sie erzeugenden Funktion und ihren Kindern sichtbar.    \n"
+"    Lokale Variablen können nur innerhalb einer Funktion benutzt werden. "
+"Sie\n"
+"    sind nur in der sie erzeugenden Funktion und ihren Kindern "
+"sichtbar.    \n"
 "    \n"
 "    Rückgabewert:\n"
 "    Liefert \"Erfolg\" außer bei einer ungültigen Option, einem Fehler oder\n"
 "    die Shell führt keine Funktion aus."
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2689,6 +2817,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2704,7 +2833,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2717,7 +2846,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2744,11 +2873,12 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2763,7 +2893,7 @@ msgstr ""
 "    Rückgabewert:\n"
 "    Der Status des Kommandoe oder Erfolg wenn das Kommando leer war."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2804,12 +2934,13 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2817,15 +2948,17 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 
 # exit
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2834,28 +2967,32 @@ msgid ""
 msgstr ""
 "Beendet die aktuelle Shell.\n"
 "\n"
-"    Beendt die die aktuelle Shell mit dem Rückgabewert N.  Wenn N nicht angegeben ist,\n"
+"    Beendt die die aktuelle Shell mit dem Rückgabewert N.  Wenn N nicht "
+"angegeben ist,\n"
 "    wird der Rückgabewert des letzten ausgeführten Kommandos übernommen."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -2869,10 +3006,11 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2884,24 +3022,27 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -2919,7 +3060,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2937,10 +3078,11 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2967,13 +3109,14 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2997,7 +3140,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3014,7 +3157,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3036,14 +3179,15 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3080,18 +3224,21 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3103,26 +3250,32 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3134,7 +3287,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3177,7 +3330,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3199,7 +3353,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3218,7 +3372,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3228,7 +3382,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3237,12 +3392,13 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3255,7 +3411,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3275,7 +3431,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3286,7 +3442,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3300,7 +3456,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3314,7 +3470,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3348,7 +3504,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3369,7 +3526,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3393,7 +3551,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3402,24 +3560,27 @@ msgid ""
 msgstr ""
 "Wertet einen bedingen Ausdruck aus.\n"
 "    \n"
-"    Dieses Kommando entspricht dem \"test\" Kommando, aber das letzte Argument muss ein `]' sein."
+"    Dieses Kommando entspricht dem \"test\" Kommando, aber das letzte "
+"Argument muss ein `]' sein."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -3428,29 +3589,37 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3476,14 +3645,16 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -3507,6 +3678,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3522,7 +3696,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3540,22 +3714,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3564,11 +3740,12 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3581,7 +3758,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3598,7 +3775,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3618,7 +3795,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3634,7 +3811,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3645,23 +3822,28 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3672,7 +3854,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3683,7 +3865,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3696,12 +3878,13 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -3709,7 +3892,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3720,7 +3903,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3734,7 +3917,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3745,13 +3928,16 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -3770,7 +3956,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3824,7 +4010,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3855,7 +4041,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3883,7 +4069,7 @@ msgid ""
 msgstr ""
 
 # dirs
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3900,22 +4086,25 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -3930,7 +4119,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3938,31 +4127,39 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -3982,25 +4179,29 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -4022,22 +4223,28 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -4047,15 +4254,17 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -4072,7 +4281,8 @@ msgstr ""
 #~ msgstr "xrealloc: Kann nicht %lu Bytes reservieren."
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)."
+#~ msgstr ""
+#~ "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)."
 
 #~ msgid "Missing `}'"
 #~ msgstr "Fehlende `}'."
@@ -4267,7 +4477,8 @@ msgstr ""
 #~ msgstr "mkbuiltins: Virtueller Speicher erschöpft!\n"
 
 #~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]"
-#~ msgstr "read [-r] [-p Eingabeaufforderung] [-a Feldvariable] [-e] [Name ...]"
+#~ msgstr ""
+#~ "read [-r] [-p Eingabeaufforderung] [-a Feldvariable] [-e] [Name ...]"
 
 #~ msgid "%[DIGITS | WORD] [&]"
 #~ msgstr "%[Ziffern | Wort] [&]"
@@ -4283,19 +4494,25 @@ msgstr ""
 #~ msgstr "Synonyme in der Form NAME=WERT auf die Standardausgabe aus."
 
 #~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
-#~ msgstr "Sonst wird ein Synonym für jeden NAMEN definiert, dessen WERT angegeben wird."
+#~ msgstr ""
+#~ "Sonst wird ein Synonym für jeden NAMEN definiert, dessen WERT angegeben "
+#~ "wird."
 
 #~ msgid "A trailing space in VALUE causes the next word to be checked for"
-#~ msgstr "Ein Leerzeichen nach WERT bewirkt, daß das nächste WORT auf ein Synonym"
+#~ msgstr ""
+#~ "Ein Leerzeichen nach WERT bewirkt, daß das nächste WORT auf ein Synonym"
 
 #~ msgid "alias substitution when the alias is expanded.  Alias returns"
-#~ msgstr "untersucht wird wenn SYNONYM ausgewertet wird. `Alias' gibt wahr zurück,"
+#~ msgstr ""
+#~ "untersucht wird wenn SYNONYM ausgewertet wird. `Alias' gibt wahr zurück,"
 
 #~ msgid "true unless a NAME is given for which no alias has been defined."
-#~ msgstr "außer wenn ein NAME angegeben wurde, für den kein SYNONYM vorhanden ist."
+#~ msgstr ""
+#~ "außer wenn ein NAME angegeben wurde, für den kein SYNONYM vorhanden ist."
 
 # unalias
-#~ msgid "Remove NAMEs from the list of defined aliases.  If the -a option is given,"
+#~ msgid ""
+#~ "Remove NAMEs from the list of defined aliases.  If the -a option is given,"
 #~ msgstr "Entfernt NAMEn aus der Liste der Synonyme. Wenn die Option -a"
 
 #~ msgid "then remove all alias definitions."
@@ -4303,25 +4520,35 @@ msgstr ""
 
 # readline
 #~ msgid "Bind a key sequence to a Readline function, or to a macro.  The"
-#~ msgstr "Verbindet eine Tastenfolge mit einer Readline-Funktion oder einem Makro. Die"
+#~ msgstr ""
+#~ "Verbindet eine Tastenfolge mit einer Readline-Funktion oder einem Makro. "
+#~ "Die"
 
 #~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be"
-#~ msgstr "Syntax entspricht der der Datei `~/.inputrc', sie muß jedoch als Argument"
+#~ msgstr ""
+#~ "Syntax entspricht der der Datei `~/.inputrc', sie muß jedoch als Argument"
 
-#~ msgid "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
+#~ msgid ""
+#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
 #~ msgstr "angegeben werden. Z.B.: bind '\"\\C-x\\C-r\": re-read-init-file'."
 
 #~ msgid "Arguments we accept:"
 #~ msgstr "Gültige Argumente:"
 
-#~ msgid "  -m  keymap         Use `keymap' as the keymap for the duration of this"
-#~ msgstr "  -m Tastaturtabelle wählt die Tastaturtabelle für die Dauer dieses Kommandos."
+#~ msgid ""
+#~ "  -m  keymap         Use `keymap' as the keymap for the duration of this"
+#~ msgstr ""
+#~ "  -m Tastaturtabelle wählt die Tastaturtabelle für die Dauer dieses "
+#~ "Kommandos."
 
 #~ msgid "                     command.  Acceptable keymap names are emacs,"
-#~ msgstr "                     Mögliche Namen für Tastaturtabellen sind: emacs"
+#~ msgstr ""
+#~ "                     Mögliche Namen für Tastaturtabellen sind: emacs"
 
-#~ msgid "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
-#~ msgstr "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgid ""
+#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgstr ""
+#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
 
 #~ msgid "                     vi-command, and vi-insert."
 #~ msgstr "                     vi-command, und vi-insert."
@@ -4330,13 +4557,19 @@ msgstr ""
 #~ msgstr "  -l                 Listet die Namen der Funktionen."
 
 #~ msgid "  -P                 List function names and bindings."
-#~ msgstr "  -P                 Listet die Namen der Funktion und deren Tastenzuordnung."
+#~ msgstr ""
+#~ "  -P                 Listet die Namen der Funktion und deren "
+#~ "Tastenzuordnung."
 
-#~ msgid "  -p                 List functions and bindings in a form that can be"
-#~ msgstr "  -p                 Listet die Funktionsnamen und deren Tastenzuordnung so,"
+#~ msgid ""
+#~ "  -p                 List functions and bindings in a form that can be"
+#~ msgstr ""
+#~ "  -p                 Listet die Funktionsnamen und deren Tastenzuordnung "
+#~ "so,"
 
 #~ msgid "                     reused as input."
-#~ msgstr "                     daß sie als Eingabe wiederverwendet werden können."
+#~ msgstr ""
+#~ "                     daß sie als Eingabe wiederverwendet werden können."
 
 #~ msgid "  -r  keyseq         Remove the binding for KEYSEQ."
 #~ msgstr "  -r  Tastenfolge    Entfernt die Zuordnung für Tastenfolge."
@@ -4344,44 +4577,58 @@ msgstr ""
 #~ msgid "  -f  filename       Read key bindings from FILENAME."
 #~ msgstr "  -f  Dateiname      Liest die Tastenzuordnungen von Dateiname."
 
-#~ msgid "  -q  function-name  Query about which keys invoke the named function."
-#~ msgstr "  -q  Funktionsname  Gibt die Tastenzuordnung für den Funktionsnamen aus."
+#~ msgid ""
+#~ "  -q  function-name  Query about which keys invoke the named function."
+#~ msgstr ""
+#~ "  -q  Funktionsname  Gibt die Tastenzuordnung für den Funktionsnamen aus."
 
 #~ msgid "  -V                 List variable names and values"
 #~ msgstr "  -V                 Gibt Variablennamen und deren Werte aus."
 
-#~ msgid "  -v                 List variable names and values in a form that can"
-#~ msgstr "  -v                 Gibt Variablennamen und deren Werte in einer Form aus,"
+#~ msgid ""
+#~ "  -v                 List variable names and values in a form that can"
+#~ msgstr ""
+#~ "  -v                 Gibt Variablennamen und deren Werte in einer Form "
+#~ "aus,"
 
 #~ msgid "                     be reused as input."
 #~ msgstr "                     die als Eingabe wiederverwendet werden kann."
 
-#~ msgid "  -S                 List key sequences that invoke macros and their values"
+#~ msgid ""
+#~ "  -S                 List key sequences that invoke macros and their "
+#~ "values"
 #~ msgstr "  -S                 Gibt Tastenfolgen aus, die Makros aufrufen."
 
-#~ msgid "  -s                 List key sequences that invoke macros and their values in"
+#~ msgid ""
+#~ "  -s                 List key sequences that invoke macros and their "
+#~ "values in"
 #~ msgstr "  -s                 Gibt Tastenfolgen aus, die Makros aufrufen."
 
 #~ msgid "                     a form that can be reused as input."
-#~ msgstr "                     Die Ausgabe kann als Eingabe wiederverwendet werden."
+#~ msgstr ""
+#~ "                     Die Ausgabe kann als Eingabe wiederverwendet werden."
 
 # break
 #~ msgid "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,"
-#~ msgstr "Bricht eine for, while oder until Schleife ab. Wenn N angegeben ist, dann"
+#~ msgstr ""
+#~ "Bricht eine for, while oder until Schleife ab. Wenn N angegeben ist, dann"
 
 #~ msgid "break N levels."
 #~ msgstr "werden N Schleifenebenen verlassen."
 
 # continue
 #~ msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop."
-#~ msgstr "Springt zur nächsten Iteration der for, while oder until Schleife. Wenn N"
+#~ msgstr ""
+#~ "Springt zur nächsten Iteration der for, while oder until Schleife. Wenn N"
 
 #~ msgid "If N is specified, resume at the N-th enclosing loop."
-#~ msgstr "angegeben ist, wird mit der N-ten übergeordneten Schleife fortgefahren."
+#~ msgstr ""
+#~ "angegeben ist, wird mit der N-ten übergeordneten Schleife fortgefahren."
 
 # builtin
 #~ msgid "Run a shell builtin.  This is useful when you wish to rename a"
-#~ msgstr "Führt eine Shellfunktion aus. Das ist nützlich, wenn eine Shellfunktion"
+#~ msgstr ""
+#~ "Führt eine Shellfunktion aus. Das ist nützlich, wenn eine Shellfunktion"
 
 #~ msgid "shell builtin to be a function, but need the functionality of the"
 #~ msgstr "umbenannt wurde, aber das ursprüngliche Verhalten benötigt wird."
@@ -4391,33 +4638,44 @@ msgstr ""
 
 # cd
 #~ msgid "Change the current directory to DIR.  The variable $HOME is the"
-#~ msgstr "Setzt das Arbeitsverzeichnis auf Verz. Wenn Verz. nicht angegeben ist, dann"
+#~ msgstr ""
+#~ "Setzt das Arbeitsverzeichnis auf Verz. Wenn Verz. nicht angegeben ist, "
+#~ "dann"
 
 #~ msgid "default DIR.  The variable $CDPATH defines the search path for"
-#~ msgstr "wird in das $HOME-Verzeichnis gewechselt. In der Variable $CDPATH kann eine"
+#~ msgstr ""
+#~ "wird in das $HOME-Verzeichnis gewechselt. In der Variable $CDPATH kann "
+#~ "eine"
 
 #~ msgid "the directory containing DIR.  Alternative directory names in CDPATH"
-#~ msgstr "durch Doppelpunkt (:) getrennte Liste angegeben werden, in denen Verz. gesucht"
+#~ msgstr ""
+#~ "durch Doppelpunkt (:) getrennte Liste angegeben werden, in denen Verz. "
+#~ "gesucht"
 
 #~ msgid "are separated by a colon (:).  A null directory name is the same as"
 #~ msgstr "wird. Beginnt Verz. mit einem `/', wird $CDPATH nicht benutzt."
 
 #~ msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
-#~ msgstr "Wenn das Verzeichnis nicht gefunden wird und die Shelloption `cdable_vars'"
+#~ msgstr ""
+#~ "Wenn das Verzeichnis nicht gefunden wird und die Shelloption `cdable_vars'"
 
 #~ msgid "then $CDPATH is not used.  If the directory is not found, and the"
-#~ msgstr "gesetzt ist, dann wird Verz. als ein Variablenname interpretiert. Ergibt"
+#~ msgstr ""
+#~ "gesetzt ist, dann wird Verz. als ein Variablenname interpretiert. Ergibt"
 
 #~ msgid "shell option `cdable_vars' is set, then try the word as a variable"
 #~ msgstr "dies einen Wert für die Variable, dann wird das aktuelle"
 
 #~ msgid "name.  If that variable has a value, then cd to the value of that"
-#~ msgstr "Verzeichnis auf diesen Wert gesetzt. Option -P veranlaßt cd symbolische"
+#~ msgstr ""
+#~ "Verzeichnis auf diesen Wert gesetzt. Option -P veranlaßt cd symbolische"
 
-#~ msgid "variable.  The -P option says to use the physical directory structure"
+#~ msgid ""
+#~ "variable.  The -P option says to use the physical directory structure"
 #~ msgstr "Verweise zu ignorieren;  -L erzwingt das Benutzen symbolischer"
 
-#~ msgid "instead of following symbolic links; the -L option forces symbolic links"
+#~ msgid ""
+#~ "instead of following symbolic links; the -L option forces symbolic links"
 #~ msgstr "Verweise."
 
 #~ msgid "to be followed."
@@ -4425,7 +4683,8 @@ msgstr ""
 
 # pwd
 #~ msgid "Print the current working directory.  With the -P option, pwd prints"
-#~ msgstr "Gibt das Arbeitsverzeichnis aus. Die Angabe von -P ignoriert symbolische"
+#~ msgstr ""
+#~ "Gibt das Arbeitsverzeichnis aus. Die Angabe von -P ignoriert symbolische"
 
 #~ msgid "the physical directory, without any symbolic links; the -L option"
 #~ msgstr "Verweise. Mit -L wird das Verwenden von symbolischen Verweisen"
@@ -4434,19 +4693,24 @@ msgstr ""
 #~ msgstr "erzwungen."
 
 # command
-#~ msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
-#~ msgstr "Führt das Kommando mit den Argumenten aus, ohne die Shellfunktionen zu"
+#~ msgid ""
+#~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+#~ msgstr ""
+#~ "Führt das Kommando mit den Argumenten aus, ohne die Shellfunktionen zu"
 
 #~ msgid "function called `ls', and you wish to call the command `ls', you can"
 #~ msgstr "berücksichtigen.  Wenn eine Shellfunktion `ls' definiert ist, führt"
 
-#~ msgid "say \"command ls\".  If the -p option is given, a default value is used"
+#~ msgid ""
+#~ "say \"command ls\".  If the -p option is given, a default value is used"
 #~ msgstr "\"command ls\" das Kommando `ls' aus.  Mit der Option -p wird ein"
 
-#~ msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
+#~ msgid ""
+#~ "for PATH that is guaranteed to find all of the standard utilities.  If"
 #~ msgstr "Standardwert für PATH verwendet.  -v gibt eine kurze Beschreibung"
 
-#~ msgid "the -V or -v option is given, a string is printed describing COMMAND."
+#~ msgid ""
+#~ "the -V or -v option is given, a string is printed describing COMMAND."
 #~ msgstr "des Kommandos aus; -V eine ausführliche."
 
 #~ msgid "The -V option produces a more verbose description."
@@ -4454,10 +4718,12 @@ msgstr ""
 
 # declare
 #~ msgid "Declare variables and/or give them attributes.  If no NAMEs are"
-#~ msgstr "Deklariert Variablen oder weist ihnen Werte zu.  Wenn kein Name angegeben"
+#~ msgstr ""
+#~ "Deklariert Variablen oder weist ihnen Werte zu.  Wenn kein Name angegeben"
 
 #~ msgid "given, then display the values of variables instead.  The -p option"
-#~ msgstr "ist, dann wird der Wert der Variablen ausgegeben.  Option -p gibt die"
+#~ msgstr ""
+#~ "ist, dann wird der Wert der Variablen ausgegeben.  Option -p gibt die"
 
 #~ msgid "will display the attributes and values of each NAME."
 #~ msgstr "Merkmale und Werte der Namen aus."
@@ -4484,13 +4750,15 @@ msgstr ""
 #~ msgstr "  -i\tSetzt den Typ von Name auf Ganzzahl."
 
 #~ msgid "Variables with the integer attribute have arithmetic evaluation (see"
-#~ msgstr "Wenn der Variablen ein Wert zugewiesen wird (siehe `let'), findet eine"
+#~ msgstr ""
+#~ "Wenn der Variablen ein Wert zugewiesen wird (siehe `let'), findet eine"
 
 #~ msgid "`let') done when the variable is assigned to."
 #~ msgstr "arithmetische Auswertung statt."
 
 #~ msgid "When displaying values of variables, -f displays a function's name"
-#~ msgstr "Wenn Variablenwerte angezeigt werden, gibt die Option -f Funktionsnamen"
+#~ msgstr ""
+#~ "Wenn Variablenwerte angezeigt werden, gibt die Option -f Funktionsnamen"
 
 #~ msgid "and definition.  The -F option restricts the display to function"
 #~ msgstr "und -definitionen aus. Die Option -F beschränkt die Ausgabe auf"
@@ -4498,7 +4766,8 @@ msgstr ""
 #~ msgid "name only."
 #~ msgstr "Funktionsnamen."
 
-#~ msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
+#~ msgid ""
+#~ "Using `+' instead of `-' turns off the given attribute instead.  When"
 #~ msgstr "`+' statt `-' schaltet das angegebene Merkmal ab. `declare'"
 
 #~ msgid "used in a function, makes NAMEs local, as with the `local' command."
@@ -4510,17 +4779,22 @@ msgstr ""
 
 # local
 #~ msgid "Create a local variable called NAME, and give it VALUE.  LOCAL"
-#~ msgstr "Erzeugt eine lokale Variable Name und weist ihr Wert zu. Die Anweisung kann"
+#~ msgstr ""
+#~ "Erzeugt eine lokale Variable Name und weist ihr Wert zu. Die Anweisung "
+#~ "kann"
 
 #~ msgid "have a visible scope restricted to that function and its children."
 #~ msgstr "nur innerhalb dieser Funktion und allen Unterfunktionen zugänglich."
 
 # echo
 #~ msgid "Output the ARGs.  If -n is specified, the trailing newline is"
-#~ msgstr "Gibt die Argumente aus. Wenn -n angegeben ist, wird kein Zeilenumbruch"
+#~ msgstr ""
+#~ "Gibt die Argumente aus. Wenn -n angegeben ist, wird kein Zeilenumbruch"
 
 #~ msgid "suppressed.  If the -e option is given, interpretation of the"
-#~ msgstr "angefügt. Die Option -e interpretiert folgende Sonderzeichen zur Formatierung"
+#~ msgstr ""
+#~ "angefügt. Die Option -e interpretiert folgende Sonderzeichen zur "
+#~ "Formatierung"
 
 #~ msgid "following backslash-escaped characters is turned on:"
 #~ msgstr "der Ausgabe:"
@@ -4558,14 +4832,19 @@ msgstr ""
 #~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
 #~ msgstr "\t\\num\tDas Zeichen mit dem (oktalen) ASCII-Code num."
 
-#~ msgid "You can explicitly turn off the interpretation of the above characters"
-#~ msgstr "Die Option -E schaltet die Auswertung der oben angegebenen Sonderzeichen"
+#~ msgid ""
+#~ "You can explicitly turn off the interpretation of the above characters"
+#~ msgstr ""
+#~ "Die Option -E schaltet die Auswertung der oben angegebenen Sonderzeichen"
 
 #~ msgid "with the -E option."
 #~ msgstr "ab."
 
-#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
-#~ msgstr "Gibt ARGUMENTE aus. Die Option -n verhindert den abschließenden Zeilenumbruch."
+#~ msgid ""
+#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgstr ""
+#~ "Gibt ARGUMENTE aus. Die Option -n verhindert den abschließenden "
+#~ "Zeilenumbruch."
 
 # enable
 #~ msgid "Enable and disable builtin shell commands.  This allows"
@@ -4581,13 +4860,16 @@ msgstr ""
 #~ msgstr "Um z.B. die externe Funktion `test' zu verwenden,"
 
 #~ msgid "path instead of the shell builtin version, type `enable -n test'."
-#~ msgstr "muß `enable -n test' eingegeben werden. Auf Systemen, die Bibiliotheken"
+#~ msgstr ""
+#~ "muß `enable -n test' eingegeben werden. Auf Systemen, die Bibiliotheken"
 
 #~ msgid "On systems supporting dynamic loading, the -f option may be used"
-#~ msgstr "dynamisch nachladen können, kann die Option -f genutzt werden, um neue"
+#~ msgstr ""
+#~ "dynamisch nachladen können, kann die Option -f genutzt werden, um neue"
 
 #~ msgid "to load new builtins from the shared object FILENAME.  The -d"
-#~ msgstr "Shellfunktionen aus der dynamischen Bibiliothek Dateiname zu laden. -d"
+#~ msgstr ""
+#~ "Shellfunktionen aus der dynamischen Bibiliothek Dateiname zu laden. -d"
 
 #~ msgid "option will delete a builtin previously loaded with -f.  If no"
 #~ msgstr "entlädt dynamisch geladene Shellfunktionen wieder. Wenn"
@@ -4599,7 +4881,8 @@ msgstr ""
 #~ msgstr "Shellfunktionen ausgegeben. -a gibt eine Liste der Shellfunktionen"
 
 #~ msgid "with an indication of whether or not it is enabled.  The -s option"
-#~ msgstr "aus, in der ein- und ausgeschaltete Funktionen gekennzeichnet sind; -s"
+#~ msgstr ""
+#~ "aus, in der ein- und ausgeschaltete Funktionen gekennzeichnet sind; -s"
 
 #~ msgid "restricts the output to the Posix.2 `special' builtins.  The -n"
 #~ msgstr "beschränkt die Ausgabe auf Posix.2-Shellfunktionen. -n"
@@ -4608,7 +4891,8 @@ msgstr ""
 #~ msgstr "zeigt eine Liste aller abgeschalteter Funktionen an."
 
 # eval
-#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgid ""
+#~ "Read ARGs as input to the shell and execute the resulting command(s)."
 #~ msgstr "Verbindet die Argumente zu einer Kommandozeile und führt sie aus."
 
 # getopts
@@ -4616,7 +4900,9 @@ msgstr ""
 #~ msgstr "Shellprozeduren benutzen getopts, um die Kommandozeole auszuwerten."
 
 #~ msgid "OPTSTRING contains the option letters to be recognized; if a letter"
-#~ msgstr "Optstring enthält die zu erkennenden Buchstaben. Folgt einem Buchstaben ein"
+#~ msgstr ""
+#~ "Optstring enthält die zu erkennenden Buchstaben. Folgt einem Buchstaben "
+#~ "ein"
 
 #~ msgid "is followed by a colon, the option is expected to have an argument,"
 #~ msgstr "Doppelpunkt, dann erwartet die Funktion ein Argument, das durch ein"
@@ -4625,7 +4911,9 @@ msgstr ""
 #~ msgstr "Leerzeichen vom Optionszeichen getrennt ist."
 
 #~ msgid "Each time it is invoked, getopts will place the next option in the"
-#~ msgstr "Bei jedem Aufruf weist getopt die nächste Option der Shell-Variablen $name zu,"
+#~ msgstr ""
+#~ "Bei jedem Aufruf weist getopt die nächste Option der Shell-Variablen "
+#~ "$name zu,"
 
 #~ msgid "shell variable $name, initializing name if it does not exist, and"
 #~ msgstr "erzeugt sie gegebenenfalls und setzt den Zeiger in der"
@@ -4643,46 +4931,65 @@ msgstr ""
 #~ msgstr "Shellvariablen OPTARG zurückgegeben."
 
 #~ msgid "getopts reports errors in one of two ways.  If the first character"
-#~ msgstr "Es gibt zwei Möglichkeiten der Fehlerbehandlung.  Wenn das erste Zeichen von"
+#~ msgstr ""
+#~ "Es gibt zwei Möglichkeiten der Fehlerbehandlung.  Wenn das erste Zeichen "
+#~ "von"
 
 #~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
-#~ msgstr "OPTSTRING ein Doppelpunkt ist, wird keine Fehlermeldung angezeigt (\"stille"
+#~ msgstr ""
+#~ "OPTSTRING ein Doppelpunkt ist, wird keine Fehlermeldung angezeigt "
+#~ "(\"stille"
 
 #~ msgid "this mode, no error messages are printed.  If an illegal option is"
-#~ msgstr "Fehlermeldung\") Wenn ein ungültiges Optionszeichen erkannt wird, dann wird"
+#~ msgstr ""
+#~ "Fehlermeldung\") Wenn ein ungültiges Optionszeichen erkannt wird, dann "
+#~ "wird"
 
 #~ msgid "seen, getopts places the option character found into OPTARG.  If a"
-#~ msgstr "es der Shellvariablen OPTARG zugewiesen.  Wenn ein Argument fehlt, dann"
+#~ msgstr ""
+#~ "es der Shellvariablen OPTARG zugewiesen.  Wenn ein Argument fehlt, dann"
 
 #~ msgid "required argument is not found, getopts places a ':' into NAME and"
 #~ msgstr "wird der Shellvariablen NAME ein ':' zugewiesen und an OPTARG das "
 
 #~ msgid "sets OPTARG to the option character found.  If getopts is not in"
-#~ msgstr "Optionszeichen übergeben.  Wenn getopt sich nicht im \"stillen\" Modus"
+#~ msgstr ""
+#~ "Optionszeichen übergeben.  Wenn getopt sich nicht im \"stillen\" Modus"
 
 #~ msgid "silent mode, and an illegal option is seen, getopts places '?' into"
-#~ msgstr "befindet und ein ungültiges Optionszeichen erkannt wird, weist getopt der"
+#~ msgstr ""
+#~ "befindet und ein ungültiges Optionszeichen erkannt wird, weist getopt der"
 
 #~ msgid "NAME and unsets OPTARG.  If a required option is not found, a '?'"
-#~ msgstr "Variable Name '?' zu und löscht OPTARG.  Wenn eine erforderliche Option nicht"
+#~ msgstr ""
+#~ "Variable Name '?' zu und löscht OPTARG.  Wenn eine erforderliche Option "
+#~ "nicht"
 
 #~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is"
-#~ msgstr "gefunden wurde, wird `?` an NAME zugewiesen, OPTARG gelöscht und eine Fehler-"
+#~ msgstr ""
+#~ "gefunden wurde, wird `?` an NAME zugewiesen, OPTARG gelöscht und eine "
+#~ "Fehler-"
 
 #~ msgid "printed."
 #~ msgstr "meldung ausgegeben."
 
 #~ msgid "If the shell variable OPTERR has the value 0, getopts disables the"
-#~ msgstr "Wenn die Shellvariable OPTERR den Wert 0 besitzt, unterdrückt getopts die Aus-"
+#~ msgstr ""
+#~ "Wenn die Shellvariable OPTERR den Wert 0 besitzt, unterdrückt getopts die "
+#~ "Aus-"
 
 #~ msgid "printing of error messages, even if the first character of"
-#~ msgstr "gabe von Fehlermeldungen, auch dann, wenn das erste Zeichen von OPTSTRING kein"
+#~ msgstr ""
+#~ "gabe von Fehlermeldungen, auch dann, wenn das erste Zeichen von OPTSTRING "
+#~ "kein"
 
 #~ msgid "OPTSTRING is not a colon.  OPTERR has the value 1 by default."
 #~ msgstr "Doppelpunkt ist.  OPTERR hat standardmäßig den Wert 1."
 
 #~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
-#~ msgstr "Getopts wertet normalerweise die übergebenen Parameter $0 - $9 aus, aber wenn"
+#~ msgstr ""
+#~ "Getopts wertet normalerweise die übergebenen Parameter $0 - $9 aus, aber "
+#~ "wenn"
 
 #~ msgid "more arguments are given, they are parsed instead."
 #~ msgstr "mehr Argumente angegeben sind, werden diese auch ausgewertet."
@@ -4692,25 +4999,35 @@ msgstr ""
 #~ msgstr "Fürt Datei aus und ersetzt die Shell durch das angegebene Programm."
 
 #~ msgid "If FILE is not specified, the redirections take effect in this"
-#~ msgstr "Wenn kein Kommando angegeben ist, werden die Ein-/Ausgabeumleitungen auf die"
+#~ msgstr ""
+#~ "Wenn kein Kommando angegeben ist, werden die Ein-/Ausgabeumleitungen auf "
+#~ "die"
 
 #~ msgid "shell.  If the first argument is `-l', then place a dash in the"
-#~ msgstr "aufrufende Shell angewendet.  Wenn das erste Argument -l ist, dann wird dieses"
+#~ msgstr ""
+#~ "aufrufende Shell angewendet.  Wenn das erste Argument -l ist, dann wird "
+#~ "dieses"
 
 #~ msgid "zeroth arg passed to FILE, as login does.  If the `-c' option"
-#~ msgstr "als nulltes Argument an die Datei übergeben (wie login).  Mit der -c Option"
+#~ msgstr ""
+#~ "als nulltes Argument an die Datei übergeben (wie login).  Mit der -c "
+#~ "Option"
 
 #~ msgid "is supplied, FILE is executed with a null environment.  The `-a'"
-#~ msgstr "wird die Datei ohne gesetzte Umgebungsvariablen ausgeführt.  Die -a Option"
+#~ msgstr ""
+#~ "wird die Datei ohne gesetzte Umgebungsvariablen ausgeführt.  Die -a Option"
 
 #~ msgid "option means to make set argv[0] of the executed process to NAME."
 #~ msgstr "setzt argv[0] des ausgeführten Prozeßes auf Name."
 
 #~ msgid "If the file cannot be executed and the shell is not interactive,"
-#~ msgstr "Wenn die Datei nicht ausgeführt werden kann und die Shell nicht interaktiv ist,"
+#~ msgstr ""
+#~ "Wenn die Datei nicht ausgeführt werden kann und die Shell nicht "
+#~ "interaktiv ist,"
 
 #~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\""
-#~ msgstr "dann wird sie verlassen, außer die Variable \"no_exit_on_failed_exec\" ist"
+#~ msgstr ""
+#~ "dann wird sie verlassen, außer die Variable \"no_exit_on_failed_exec\" ist"
 
 #~ msgid "is set."
 #~ msgstr "gesetzt."
@@ -4719,8 +5036,11 @@ msgstr ""
 #~ msgstr "der Rückkehrstatus des zuletzt ausgeführten Kommandos verwendet."
 
 # fc
-#~ msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
-#~ msgstr "Anfang und Ende bezeichnen einen Bereich oder, wenn Anfang eine Zeichenkette"
+#~ msgid ""
+#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+#~ msgstr ""
+#~ "Anfang und Ende bezeichnen einen Bereich oder, wenn Anfang eine "
+#~ "Zeichenkette"
 
 #~ msgid "string, which means the most recent command beginning with that"
 #~ msgstr "ist, das letzte Kommando welches mit dieser Zeichkette beginnt."
@@ -4728,11 +5048,16 @@ msgstr ""
 #~ msgid "string."
 #~ msgstr " "
 
-#~ msgid "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
-#~ msgstr "   -e Editor ist der aufzurufende Texteditor.  Standardmäßig wird FCEDIT, dann"
+#~ msgid ""
+#~ "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+#~ msgstr ""
+#~ "   -e Editor ist der aufzurufende Texteditor.  Standardmäßig wird FCEDIT, "
+#~ "dann"
 
-#~ msgid "      then the editor which corresponds to the current readline editing"
-#~ msgstr "      EDITOR, anschließend der dem readline Modus entsprechende Editor"
+#~ msgid ""
+#~ "      then the editor which corresponds to the current readline editing"
+#~ msgstr ""
+#~ "      EDITOR, anschließend der dem readline Modus entsprechende Editor"
 
 #~ msgid "      mode, then vi."
 #~ msgstr "      und sonst vi aufgerufen."
@@ -4743,136 +5068,200 @@ msgstr ""
 #~ msgid "   -n means no line numbers listed."
 #~ msgstr "   -n unterdrückt das Anzeigen von Zeilennummern."
 
-#~ msgid "   -r means reverse the order of the lines (making it newest listed first)."
-#~ msgstr "   -r dreht die Sortierreihenfolge um (jüngster Eintrag wird zuerst angezeigt)."
+#~ msgid ""
+#~ "   -r means reverse the order of the lines (making it newest listed "
+#~ "first)."
+#~ msgstr ""
+#~ "   -r dreht die Sortierreihenfolge um (jüngster Eintrag wird zuerst "
+#~ "angezeigt)."
 
 #~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
-#~ msgstr "Mit `fc -s [Muster=Ersetzung ...] [command]' wird das Kommando wiederholt,"
+#~ msgstr ""
+#~ "Mit `fc -s [Muster=Ersetzung ...] [command]' wird das Kommando wiederholt,"
 
 #~ msgid "re-executed after the substitution OLD=NEW is performed."
 #~ msgstr "nachdem die Substitution Alt=Neu durchgeführt wurde."
 
 #~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
-#~ msgstr "Eine nützliche Aliasersetzung kann r='fc -s' sein, mit der z.B. durch `r cc`"
+#~ msgstr ""
+#~ "Eine nützliche Aliasersetzung kann r='fc -s' sein, mit der z.B. durch `r "
+#~ "cc`"
 
 #~ msgid "runs the last command beginning with `cc' and typing `r' re-executes"
-#~ msgstr "das letzte Kommando welches mit `cc' beginnt aufgerufen wird und die Eingabe"
+#~ msgstr ""
+#~ "das letzte Kommando welches mit `cc' beginnt aufgerufen wird und die "
+#~ "Eingabe"
 
 # fg
 #~ msgid "Place JOB_SPEC in the foreground, and make it the current job.  If"
 #~ msgstr "Bringt den mit `^Z' angehaltenen Job in den Vordergrund.  Wenn eine"
 
 #~ msgid "JOB_SPEC is not present, the shell's notion of the current job is"
-#~ msgstr "Jobbezeichnung angegeben ist, dann wird der zuletzt angehaltene Job im"
+#~ msgstr ""
+#~ "Jobbezeichnung angegeben ist, dann wird der zuletzt angehaltene Job im"
 
 #~ msgid "used."
 #~ msgstr "Vordergrund gestartet."
 
 # bg
 #~ msgid "Place JOB_SPEC in the background, as if it had been started with"
-#~ msgstr "Startet einen mit `^Z' angehaltenen Job im Hintergrund, als ob er mit `&'"
+#~ msgstr ""
+#~ "Startet einen mit `^Z' angehaltenen Job im Hintergrund, als ob er mit `&'"
 
 #~ msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
-#~ msgstr "gestartet worden wäre. Ist keine Jobbezeichnung angegeben, wird der zuletzt"
+#~ msgstr ""
+#~ "gestartet worden wäre. Ist keine Jobbezeichnung angegeben, wird der "
+#~ "zuletzt"
 
 #~ msgid "job is used."
 #~ msgstr "angehaltene Job im Hintergrund gestartet."
 
 # hash
 #~ msgid "For each NAME, the full pathname of the command is determined and"
-#~ msgstr "Für jeden angegebenen Namen wird der vollständige Pfadname des Kommandos"
+#~ msgstr ""
+#~ "Für jeden angegebenen Namen wird der vollständige Pfadname des Kommandos"
 
 #~ msgid "remembered.  If the -p option is supplied, PATHNAME is used as the"
-#~ msgstr "ermittelt und gemerkt.  Wenn die -p Option angegeben wird, dann wird der"
+#~ msgstr ""
+#~ "ermittelt und gemerkt.  Wenn die -p Option angegeben wird, dann wird der"
 
 #~ msgid "full pathname of NAME, and no path search is performed.  The -r"
-#~ msgstr "Pfadname verwendet und keine Suche durchgeführt.  Die -r Option löscht die"
+#~ msgstr ""
+#~ "Pfadname verwendet und keine Suche durchgeführt.  Die -r Option löscht die"
 
 #~ msgid "option causes the shell to forget all remembered locations.  If no"
-#~ msgstr "gespeicherten Pfade.  Wenn keine Option angegeben ist, dann werden alle"
+#~ msgstr ""
+#~ "gespeicherten Pfade.  Wenn keine Option angegeben ist, dann werden alle"
 
-#~ msgid "arguments are given, information about remembered commands is displayed."
+#~ msgid ""
+#~ "arguments are given, information about remembered commands is displayed."
 #~ msgstr "gespeicherten Kommandos angezeigt."
 
 # help
 #~ msgid "Display helpful information about builtin commands.  If PATTERN is"
-#~ msgstr "Gibt Hilfetexte für die eingebauten Kommandos aus.  Wenn ein Muster angegeben"
+#~ msgstr ""
+#~ "Gibt Hilfetexte für die eingebauten Kommandos aus.  Wenn ein Muster "
+#~ "angegeben"
 
 #~ msgid "specified, gives detailed help on all commands matching PATTERN,"
-#~ msgstr "ist, dann wird eine detailierte Beschreibung der Kommandos angezeigt, die dem"
+#~ msgstr ""
+#~ "ist, dann wird eine detailierte Beschreibung der Kommandos angezeigt, die "
+#~ "dem"
 
 #~ msgid "otherwise a list of the builtins is printed."
-#~ msgstr "Muster entsprechen.  Sonst werden die eingebauten Kommandos gelistet."
+#~ msgstr ""
+#~ "Muster entsprechen.  Sonst werden die eingebauten Kommandos gelistet."
 
 # history
 #~ msgid "Display the history list with line numbers.  Lines listed with"
-#~ msgstr "Zeigt den Kommandozeilenspeicher mit Zeilennummern an.  Mit `*' markierte"
+#~ msgstr ""
+#~ "Zeigt den Kommandozeilenspeicher mit Zeilennummern an.  Mit `*' markierte"
 
 #~ msgid "with a `*' have been modified.  Argument of N says to list only"
-#~ msgstr "Zeilen wurden verändert.  Mit einer Zahl als Argument wird nur die angegebene"
+#~ msgstr ""
+#~ "Zeilen wurden verändert.  Mit einer Zahl als Argument wird nur die "
+#~ "angegebene"
 
 #~ msgid "the last N lines.  The -c option causes the history list to be"
-#~ msgstr "Anzahl Zeilen ausgegeben.  Mit der `-c' Option kann der Kommandozeilenspeicher"
+#~ msgstr ""
+#~ "Anzahl Zeilen ausgegeben.  Mit der `-c' Option kann der "
+#~ "Kommandozeilenspeicher"
 
-#~ msgid "cleared by deleting all of the entries.  The `-w' option writes out the"
-#~ msgstr "gelöscht werden.  Ist die `-w' Option angegeben,  wird der Kommandozeilen-"
+#~ msgid ""
+#~ "cleared by deleting all of the entries.  The `-w' option writes out the"
+#~ msgstr ""
+#~ "gelöscht werden.  Ist die `-w' Option angegeben,  wird der Kommandozeilen-"
 
-#~ msgid "current history to the history file;  `-r' means to read the file and"
-#~ msgstr "speicher in die history Datei geschrieben. `-r' liest diese Datei und fügt"
+#~ msgid ""
+#~ "current history to the history file;  `-r' means to read the file and"
+#~ msgstr ""
+#~ "speicher in die history Datei geschrieben. `-r' liest diese Datei und fügt"
 
 #~ msgid "append the contents to the history list instead.  `-a' means"
-#~ msgstr "ihren Inhalt an den Kommandozeilenspeicher an.  Durch die Option `-a' kann der"
+#~ msgstr ""
+#~ "ihren Inhalt an den Kommandozeilenspeicher an.  Durch die Option `-a' "
+#~ "kann der"
 
 #~ msgid "to append history lines from this session to the history file."
-#~ msgstr "Kommandozeilenspeicher der Sitzung an die history Datei angefügt werden."
+#~ msgstr ""
+#~ "Kommandozeilenspeicher der Sitzung an die history Datei angefügt werden."
 
 #~ msgid "Argument `-n' means to read all history lines not already read"
-#~ msgstr "Das Argument `-n' bewirkt, daß alle Zeilen die noch nicht aus der history Datei"
+#~ msgstr ""
+#~ "Das Argument `-n' bewirkt, daß alle Zeilen die noch nicht aus der history "
+#~ "Datei"
 
 #~ msgid "from the history file and append them to the history list.  If"
-#~ msgstr "gelesen wurden an den Kommandozeilenspeicher angefügt werden.  Wenn ein Datei-"
+#~ msgstr ""
+#~ "gelesen wurden an den Kommandozeilenspeicher angefügt werden.  Wenn ein "
+#~ "Datei-"
 
 #~ msgid "FILENAME is given, then that is used as the history file else"
-#~ msgstr "name angegeben ist, dann wird dieser als Name der history Datei verwendet.  Sonst"
+#~ msgstr ""
+#~ "name angegeben ist, dann wird dieser als Name der history Datei "
+#~ "verwendet.  Sonst"
 
 #~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
-#~ msgstr "wird der Inhalt der Variablen $HISTFILE und anschließend ~/.bash_history verwendet."
+#~ msgstr ""
+#~ "wird der Inhalt der Variablen $HISTFILE und anschließend ~/.bash_history "
+#~ "verwendet."
 
 #~ msgid "If the -s option is supplied, the non-option ARGs are appended to"
-#~ msgstr "Durch die -s Option wird bewirkt, daß die Nicht-Options-Argumente als eigene"
+#~ msgstr ""
+#~ "Durch die -s Option wird bewirkt, daß die Nicht-Options-Argumente als "
+#~ "eigene"
 
 #~ msgid "the history list as a single entry.  The -p option means to perform"
-#~ msgstr "Zeile an den Kommandospeicher angefügt werden.  Mit -p wird für jedes Argument"
+#~ msgstr ""
+#~ "Zeile an den Kommandospeicher angefügt werden.  Mit -p wird für jedes "
+#~ "Argument"
 
-#~ msgid "history expansion on each ARG and display the result, without storing"
-#~ msgstr "die Kommandosubstitution durchgeführt und das Ergebnis angezeigt,  ohne jedoch"
+#~ msgid ""
+#~ "history expansion on each ARG and display the result, without storing"
+#~ msgstr ""
+#~ "die Kommandosubstitution durchgeführt und das Ergebnis angezeigt,  ohne "
+#~ "jedoch"
 
 #~ msgid "anything in the history list."
 #~ msgstr "etwas im Kommandozeilenspeicher abzulegen."
 
 # jobs
 #~ msgid "Lists the active jobs.  The -l option lists process id's in addition"
-#~ msgstr "Gibt eine Liste der aktiven Jobs aus.  Mit der -l Option werden zusätzlich die"
+#~ msgstr ""
+#~ "Gibt eine Liste der aktiven Jobs aus.  Mit der -l Option werden "
+#~ "zusätzlich die"
 
 #~ msgid "to the normal information; the -p option lists process id's only."
-#~ msgstr "Prozeßnummern und mit der -p Option nur die Prozeßnummern ausgsgegeben."
+#~ msgstr ""
+#~ "Prozeßnummern und mit der -p Option nur die Prozeßnummern ausgsgegeben."
 
-#~ msgid "If -n is given, only processes that have changed status since the last"
-#~ msgstr "Die Option -n bewirkt, daß nur Jobs angezeigt werden, die ihren Status seid dem"
+#~ msgid ""
+#~ "If -n is given, only processes that have changed status since the last"
+#~ msgstr ""
+#~ "Die Option -n bewirkt, daß nur Jobs angezeigt werden, die ihren Status "
+#~ "seid dem"
 
-#~ msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
-#~ msgstr "letzten Aufruf geändert haben. Jobbez. beschränkt die Anzeige auf diesen Job."
+#~ msgid ""
+#~ "notification are printed.  JOBSPEC restricts output to that job.  The"
+#~ msgstr ""
+#~ "letzten Aufruf geändert haben. Jobbez. beschränkt die Anzeige auf diesen "
+#~ "Job."
 
 #~ msgid "-r and -s options restrict output to running and stopped jobs only,"
-#~ msgstr "-r zeigt nur laufende und -s nur gestoppte Jobs an.  Wenn keine Optionen"
+#~ msgstr ""
+#~ "-r zeigt nur laufende und -s nur gestoppte Jobs an.  Wenn keine Optionen"
 
 #~ msgid "respectively.  Without options, the status of all active jobs is"
 #~ msgstr "angegeben sind, dann wird der Status aller aktiven Jobs angezeigt."
 
-#~ msgid "printed.  If -x is given, COMMAND is run after all job specifications"
-#~ msgstr "Wenn -x in der Kommandozeile angegeben ist, wird das Kommando ausgeführt und"
+#~ msgid ""
+#~ "printed.  If -x is given, COMMAND is run after all job specifications"
+#~ msgstr ""
+#~ "Wenn -x in der Kommandozeile angegeben ist, wird das Kommando ausgeführt "
+#~ "und"
 
-#~ msgid "that appear in ARGS have been replaced with the process ID of that job's"
+#~ msgid ""
+#~ "that appear in ARGS have been replaced with the process ID of that job's"
 #~ msgstr "vorher alle vorkommenden Jobspezifikationen durch ihre Prozeßnummer"
 
 #~ msgid "process group leader."
@@ -4884,35 +5273,56 @@ msgstr ""
 
 # kill
 #~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
-#~ msgstr "Sendet den durch pid (oder job) angegebenen Prozessen das Signal SIGSPEC.  Wenn"
+#~ msgstr ""
+#~ "Sendet den durch pid (oder job) angegebenen Prozessen das Signal "
+#~ "SIGSPEC.  Wenn"
 
-#~ msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
-#~ msgstr "kein Signal angegeben ist wird SIGTERM gesendet.  Mit der Option -l kann eine"
+#~ msgid ""
+#~ "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+#~ msgstr ""
+#~ "kein Signal angegeben ist wird SIGTERM gesendet.  Mit der Option -l kann "
+#~ "eine"
 
 #~ msgid "lists the signal names; if arguments follow `-l' they are assumed to"
-#~ msgstr "Liste der möglichen Signalnamen angezeigt werden.  Wenn Zahlen nach der Option"
+#~ msgstr ""
+#~ "Liste der möglichen Signalnamen angezeigt werden.  Wenn Zahlen nach der "
+#~ "Option"
 
 #~ msgid "be signal numbers for which names should be listed.  Kill is a shell"
-#~ msgstr "angegeben werden,  wird deren Signalbezeichnung angezeigt.  Kill ist aus zwei"
+#~ msgstr ""
+#~ "angegeben werden,  wird deren Signalbezeichnung angezeigt.  Kill ist aus "
+#~ "zwei"
 
 #~ msgid "builtin for two reasons: it allows job IDs to be used instead of"
-#~ msgstr "Gründen eine Shellfunktion: es können Jobbezeichnungen anstatt Prozeßnummern"
+#~ msgstr ""
+#~ "Gründen eine Shellfunktion: es können Jobbezeichnungen anstatt "
+#~ "Prozeßnummern"
 
 #~ msgid "process IDs, and, if you have reached the limit on processes that"
-#~ msgstr "genutzt werden und, wenn die maximale Anzahl laufender Prozesse erreicht ist"
+#~ msgstr ""
+#~ "genutzt werden und, wenn die maximale Anzahl laufender Prozesse erreicht "
+#~ "ist"
 
-#~ msgid "you can create, you don't have to start a process to kill another one."
-#~ msgstr "braucht kein weiterer Prozeß gestartet zu werden, um einen anderen zu beenden."
+#~ msgid ""
+#~ "you can create, you don't have to start a process to kill another one."
+#~ msgstr ""
+#~ "braucht kein weiterer Prozeß gestartet zu werden, um einen anderen zu "
+#~ "beenden."
 
 # let
 #~ msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
-#~ msgstr "Jedes Argument ist ein auszuwertender arithmetischer Ausdruck.  Es werden long"
+#~ msgstr ""
+#~ "Jedes Argument ist ein auszuwertender arithmetischer Ausdruck.  Es werden "
+#~ "long"
 
 #~ msgid "is done in long integers with no check for overflow, though division"
-#~ msgstr "integer Variablen verwendet.  Ein Überlauftest wird nicht ausgeführt, jedoch"
+#~ msgstr ""
+#~ "integer Variablen verwendet.  Ein Überlauftest wird nicht ausgeführt, "
+#~ "jedoch"
 
 #~ msgid "by 0 is trapped and flagged as an error.  The following list of"
-#~ msgstr "wird eine Division durch 0 erkannt und als Fehler gekennzeichnet.  Die"
+#~ msgstr ""
+#~ "wird eine Division durch 0 erkannt und als Fehler gekennzeichnet.  Die"
 
 #~ msgid "operators is grouped into levels of equal-precedence operators."
 #~ msgstr "Liste von Operatoren ist in Gruppen gleichen Vorrangs geordnet."
@@ -4972,7 +5382,8 @@ msgstr ""
 #~ msgstr "\t&=, ^=, |=\tZuweisungen."
 
 #~ msgid "is replaced by its value (coerced to a long integer) within"
-#~ msgstr "Ausdruck durch ihren in long integer umgewandelten Wert ersetzt. Um "
+#~ msgstr ""
+#~ "Ausdruck durch ihren in long integer umgewandelten Wert ersetzt. Um "
 
 #~ msgid "an expression.  The variable need not have its integer attribute"
 #~ msgstr "die Variable in einem Ausdruck verwenden zu können, muß ihr "
@@ -4984,7 +5395,8 @@ msgstr ""
 #~ msgstr "Die Operatoren werden in Reihenfolge ihres Vorrangs ausgewertet."
 
 #~ msgid "parentheses are evaluated first and may override the precedence"
-#~ msgstr "Geklammerte Teilausdrücke werden zuerst ausgewertet und können von den"
+#~ msgstr ""
+#~ "Geklammerte Teilausdrücke werden zuerst ausgewertet und können von den"
 
 #~ msgid "rules above."
 #~ msgstr "oben angegebenen Vorrangregeln abweichen."
@@ -4997,57 +5409,92 @@ msgstr ""
 
 # read
 #~ msgid "One line is read from the standard input, and the first word is"
-#~ msgstr "Es wird eine Zeile von der Standardeingabe gelesen und das erste Wort der"
+#~ msgstr ""
+#~ "Es wird eine Zeile von der Standardeingabe gelesen und das erste Wort der"
 
-#~ msgid "assigned to the first NAME, the second word to the second NAME, and so"
-#~ msgstr "ersten Variablen NAME zugewiesen, das zweite Wort der zweiten Variablen und so"
+#~ msgid ""
+#~ "assigned to the first NAME, the second word to the second NAME, and so"
+#~ msgstr ""
+#~ "ersten Variablen NAME zugewiesen, das zweite Wort der zweiten Variablen "
+#~ "und so"
 
-#~ msgid "on, with leftover words assigned to the last NAME.  Only the characters"
-#~ msgstr "weiter,  bis ein Wort der letzten Variablen zugewiesen wurde.  Nur die in $IFS"
+#~ msgid ""
+#~ "on, with leftover words assigned to the last NAME.  Only the characters"
+#~ msgstr ""
+#~ "weiter,  bis ein Wort der letzten Variablen zugewiesen wurde.  Nur die in "
+#~ "$IFS"
 
 #~ msgid "found in $IFS are recognized as word delimiters.  The return code is"
-#~ msgstr "angegebenen Zeichen werden als Trennzeichen erkannt.  Wenn kein EOF Zeichen"
+#~ msgstr ""
+#~ "angegebenen Zeichen werden als Trennzeichen erkannt.  Wenn kein EOF "
+#~ "Zeichen"
 
-#~ msgid "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
-#~ msgstr "aufgetreten ist, ist der Rückgabewert Null.  Wenn kein NAME angegeben wurde,"
+#~ msgid ""
+#~ "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
+#~ msgstr ""
+#~ "aufgetreten ist, ist der Rückgabewert Null.  Wenn kein NAME angegeben "
+#~ "wurde,"
 
-#~ msgid "line read is stored in the REPLY variable.  If the -r option is given,"
-#~ msgstr "verwendet read die REPLY Variable.  Durch die Option -r wird das Auswerten von"
+#~ msgid ""
+#~ "line read is stored in the REPLY variable.  If the -r option is given,"
+#~ msgstr ""
+#~ "verwendet read die REPLY Variable.  Durch die Option -r wird das "
+#~ "Auswerten von"
 
 #~ msgid "this signifies `raw' input, and backslash escaping is disabled.  If"
-#~ msgstr "mit `\\' markierten  Sonderzeichen unterdrückt.  Wenn die Option -r angegeben"
+#~ msgstr ""
+#~ "mit `\\' markierten  Sonderzeichen unterdrückt.  Wenn die Option -r "
+#~ "angegeben"
 
 #~ msgid "the `-p' option is supplied, the string supplied as an argument is"
-#~ msgstr "ist, dann wird die Eingabeaufforderung ohne einen abschließenden Zeilenumbruch"
+#~ msgstr ""
+#~ "ist, dann wird die Eingabeaufforderung ohne einen abschließenden "
+#~ "Zeilenumbruch"
 
-#~ msgid "output without a trailing newline before attempting to read.  If -a is"
-#~ msgstr "angezeigt.  Wenn die Option -a angegeben ist, dann wird die Eingabe an die"
+#~ msgid ""
+#~ "output without a trailing newline before attempting to read.  If -a is"
+#~ msgstr ""
+#~ "angezeigt.  Wenn die Option -a angegeben ist, dann wird die Eingabe an die"
 
-#~ msgid "supplied, the words read are assigned to sequential indices of ARRAY,"
-#~ msgstr "Feldvariable ARRAY übergeben und für jeden Eintrag der Index von Null beginnend"
+#~ msgid ""
+#~ "supplied, the words read are assigned to sequential indices of ARRAY,"
+#~ msgstr ""
+#~ "Feldvariable ARRAY übergeben und für jeden Eintrag der Index von Null "
+#~ "beginnend"
 
 #~ msgid "starting at zero.  If -e is supplied and the shell is interactive,"
-#~ msgstr "um Eins erhöht wird.  Mit der -e Option wird bei einer interaktiven Shell die"
+#~ msgstr ""
+#~ "um Eins erhöht wird.  Mit der -e Option wird bei einer interaktiven Shell "
+#~ "die"
 
 #~ msgid "readline is used to obtain the line."
-#~ msgstr "die readline Funktionen aktiviert, um die Eingabezeile zu editieren."
+#~ msgstr ""
+#~ "die readline Funktionen aktiviert, um die Eingabezeile zu editieren."
 
 # return
-#~ msgid "Causes a function to exit with the return value specified by N.  If N"
-#~ msgstr "Beendet eine Shellfunktion und setzt den Rückgabewert auf N.  Wenn kein Rückga-"
+#~ msgid ""
+#~ "Causes a function to exit with the return value specified by N.  If N"
+#~ msgstr ""
+#~ "Beendet eine Shellfunktion und setzt den Rückgabewert auf N.  Wenn kein "
+#~ "Rückga-"
 
 #~ msgid "is omitted, the return status is that of the last command."
-#~ msgstr "bewert angegeben ist, wird der des zuletzt ausgeführten Kommandos verwendet."
+#~ msgstr ""
+#~ "bewert angegeben ist, wird der des zuletzt ausgeführten Kommandos "
+#~ "verwendet."
 
 # set
 #~ msgid "    -a  Mark variables which are modified or created for export."
-#~ msgstr "    -a  Markiert erzeugte oder veränderte Variablen als exportierbar."
+#~ msgstr ""
+#~ "    -a  Markiert erzeugte oder veränderte Variablen als exportierbar."
 
 #~ msgid "    -b  Notify of job termination immediately."
 #~ msgstr "    -b  Zeigt das Beenden von Prozessen sofort an."
 
 #~ msgid "    -e  Exit immediately if a command exits with a non-zero status."
-#~ msgstr "    -e  Beendet die Shell sofort, wenn ein Kommando ein Fehler zurückliefert."
+#~ msgstr ""
+#~ "    -e  Beendet die Shell sofort, wenn ein Kommando ein Fehler "
+#~ "zurückliefert."
 
 #~ msgid "    -f  Disable file name generation (globbing)."
 #~ msgstr "    -f  Unterdrückt das Erzeugen von Dateinamen."
@@ -5055,17 +5502,22 @@ msgstr ""
 #~ msgid "    -h  Remember the location of commands as they are looked up."
 #~ msgstr "    -h  Speichert die eingegebenen Kommandos sofort."
 
-#~ msgid "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
-#~ msgstr "    -i  Erzwingt, daß die Shell interaktiv arbeitet.  Interaktive Shells"
+#~ msgid ""
+#~ "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
+#~ msgstr ""
+#~ "    -i  Erzwingt, daß die Shell interaktiv arbeitet.  Interaktive Shells"
 
 #~ msgid "        always read `~/.bashrc' on startup."
-#~ msgstr "        interpretieren beim Aufrufen den Inhalt der Datei  `~/.bashrc'."
+#~ msgstr ""
+#~ "        interpretieren beim Aufrufen den Inhalt der Datei  `~/.bashrc'."
 
 #~ msgid "    -k  All assignment arguments are placed in the environment for a"
-#~ msgstr "    -k  Die komplette Kommandozeile wird in die Umgebung der Funktion"
+#~ msgstr ""
+#~ "    -k  Die komplette Kommandozeile wird in die Umgebung der Funktion"
 
 #~ msgid "        command, not just those that precede the command name."
-#~ msgstr "        geschrieben, nicht bloß die Argumente nach dem Funktionsnamen."
+#~ msgstr ""
+#~ "        geschrieben, nicht bloß die Argumente nach dem Funktionsnamen."
 
 #~ msgid "    -m  Job control is enabled."
 #~ msgstr "    -m  Jobsteuerung wird aktiviert."
@@ -5086,7 +5538,9 @@ msgstr ""
 #~ msgstr "            braceexpand  Wie die Option -B."
 
 #~ msgid "            emacs        use an emacs-style line editing interface"
-#~ msgstr "            emacs        Schaltet den Kommandozeileneditor in den emacs-Stil."
+#~ msgstr ""
+#~ "            emacs        Schaltet den Kommandozeileneditor in den emacs-"
+#~ "Stil."
 
 #~ msgid "            errexit      same as -e"
 #~ msgstr "            errexit      Wie die Option -e."
@@ -5098,13 +5552,18 @@ msgstr ""
 #~ msgstr "            histexpand   Wie die Option -H."
 
 #~ msgid "            ignoreeof    the shell will not exit upon reading EOF"
-#~ msgstr "            ignoreeof    Shell wird nach dem  Lesen von EOF nicht verlassen ."
+#~ msgstr ""
+#~ "            ignoreeof    Shell wird nach dem  Lesen von EOF nicht "
+#~ "verlassen ."
 
 #~ msgid "            interactive-comments"
 #~ msgstr "            interactive-comments"
 
-#~ msgid "                         allow comments to appear in interactive commands"
-#~ msgstr "                         Kommentare werden auch in der Kommandozeile erlaubt."
+#~ msgid ""
+#~ "                         allow comments to appear in interactive commands"
+#~ msgstr ""
+#~ "                         Kommentare werden auch in der Kommandozeile "
+#~ "erlaubt."
 
 #~ msgid "            keyword      same as -k"
 #~ msgstr "            keyword      Wie die Option -k."
@@ -5133,10 +5592,13 @@ msgstr ""
 #~ msgid "            physical     same as -P"
 #~ msgstr "            physical     Wie die Option -P."
 
-#~ msgid "            posix        change the behavior of bash where the default"
-#~ msgstr "            posix        Ändert das Verhalten der Shell, wo sie vom,"
+#~ msgid ""
+#~ "            posix        change the behavior of bash where the default"
+#~ msgstr ""
+#~ "            posix        Ändert das Verhalten der Shell, wo sie vom,"
 
-#~ msgid "                         operation differs from the 1003.2 standard to"
+#~ msgid ""
+#~ "                         operation differs from the 1003.2 standard to"
 #~ msgstr "                         1003.2 Standard abweicht, zu einem POSIX "
 
 #~ msgid "                         match the standard"
@@ -5149,179 +5611,255 @@ msgstr ""
 #~ msgstr "            verbose      Wie die Option -v."
 
 #~ msgid "            vi           use a vi-style line editing interface"
-#~ msgstr "            vi           Schaltet den Kommandozeileneditor in den vi-Stil."
+#~ msgstr ""
+#~ "            vi           Schaltet den Kommandozeileneditor in den vi-Stil."
 
 #~ msgid "            xtrace       same as -x"
 #~ msgstr "            xtrace       Wie die Option -x."
 
-#~ msgid "    -p  Turned on whenever the real and effective user ids do not match."
-#~ msgstr "    -p  Ist aktiviert, wenn die reale und effektive Nutzer ID nicht überein-"
+#~ msgid ""
+#~ "    -p  Turned on whenever the real and effective user ids do not match."
+#~ msgstr ""
+#~ "    -p  Ist aktiviert, wenn die reale und effektive Nutzer ID nicht "
+#~ "überein-"
 
 #~ msgid "        Disables processing of the $ENV file and importing of shell"
-#~ msgstr "        stimmen.  Die $ENV Datei wird nicht ausgeführt und keine Shellfunk-"
+#~ msgstr ""
+#~ "        stimmen.  Die $ENV Datei wird nicht ausgeführt und keine "
+#~ "Shellfunk-"
 
-#~ msgid "        functions.  Turning this option off causes the effective uid and"
-#~ msgstr "        tionen importiert.  Das Deaktivieren dieser Option setzt die Effektive"
+#~ msgid ""
+#~ "        functions.  Turning this option off causes the effective uid and"
+#~ msgstr ""
+#~ "        tionen importiert.  Das Deaktivieren dieser Option setzt die "
+#~ "Effektive"
 
 #~ msgid "        gid to be set to the real uid and gid."
 #~ msgstr "        uid und gid auf die Reale uid und gid."
 
 #~ msgid "    -t  Exit after reading and executing one command."
-#~ msgstr "    -t  Beendet die Shell sofort nach Ausfühern eines einzelnen Kommandos."
+#~ msgstr ""
+#~ "    -t  Beendet die Shell sofort nach Ausfühern eines einzelnen Kommandos."
 
 #~ msgid "    -u  Treat unset variables as an error when substituting."
-#~ msgstr "    -u  Der Versuch leere (ungesetzte) Variablen zu erweitern erzeugt einen Fehler."
+#~ msgstr ""
+#~ "    -u  Der Versuch leere (ungesetzte) Variablen zu erweitern erzeugt "
+#~ "einen Fehler."
 
 #~ msgid "    -v  Print shell input lines as they are read."
 #~ msgstr "    -v  Gibt die Kommandozeilen aus wie sie gelesenen wurden."
 
 #~ msgid "    -x  Print commands and their arguments as they are executed."
-#~ msgstr "    -x  Gibt die Kommandos mit ihren Argumenten aus wie es ausgeführt wird."
+#~ msgstr ""
+#~ "    -x  Gibt die Kommandos mit ihren Argumenten aus wie es ausgeführt "
+#~ "wird."
 
 #~ msgid "    -B  the shell will perform brace expansion"
 #~ msgstr "    -B  Schaltet die Klammernerweiterung der Shell ein."
 
 #~ msgid "    -H  Enable ! style history substitution.  This flag is on"
-#~ msgstr "    -H  Schaltet den Zugriff auf den Kommandozeilenspeicher durch `!' ein."
+#~ msgstr ""
+#~ "    -H  Schaltet den Zugriff auf den Kommandozeilenspeicher durch `!' ein."
 
 #~ msgid "        by default."
 #~ msgstr "        Diese Option ist standardmäßig aktiviert."
 
 #~ msgid "    -C  If set, disallow existing regular files to be overwritten"
-#~ msgstr "    -C  Verhindert das Überschreiben von existierenden Dateien durch"
+#~ msgstr ""
+#~ "    -C  Verhindert das Überschreiben von existierenden Dateien durch"
 
 #~ msgid "        by redirection of output."
 #~ msgstr "        Umleiten der Ausgabe (wie noclobber)."
 
 #~ msgid "    -P  If set, do not follow symbolic links when executing commands"
-#~ msgstr "    -P  Symbolische Verweise werden beim Ausführen von Kommandos, wie z.B. cd"
+#~ msgstr ""
+#~ "    -P  Symbolische Verweise werden beim Ausführen von Kommandos, wie z."
+#~ "B. cd"
 
 #~ msgid "        such as cd which change the current directory."
 #~ msgstr "        welches das aktuelle Arbeitsverzeichnis ändert, ignoriert."
 
 #~ msgid "Using + rather than - causes these flags to be turned off.  The"
-#~ msgstr "Durch `+' an Stelle von `-' kann eine Option deaktiviert werden.  Die Optionen"
+#~ msgstr ""
+#~ "Durch `+' an Stelle von `-' kann eine Option deaktiviert werden.  Die "
+#~ "Optionen"
 
 #~ msgid "flags can also be used upon invocation of the shell.  The current"
-#~ msgstr "können auch beim Aufruf der Shell benutzt werden.  Die gegenwärtig aktivierten"
+#~ msgstr ""
+#~ "können auch beim Aufruf der Shell benutzt werden.  Die gegenwärtig "
+#~ "aktivierten"
 
-#~ msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
-#~ msgstr "Optionen sind in der Variablen $- gespeichert.  Die verbleibenden n Argumente"
+#~ msgid ""
+#~ "set of flags may be found in $-.  The remaining n ARGs are positional"
+#~ msgstr ""
+#~ "Optionen sind in der Variablen $- gespeichert.  Die verbleibenden n "
+#~ "Argumente"
 
 #~ msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
-#~ msgstr "sind Parameter und werden den Variablen $1, $2, .. $n zugewiesen.  Wenn kein"
+#~ msgstr ""
+#~ "sind Parameter und werden den Variablen $1, $2, .. $n zugewiesen.  Wenn "
+#~ "kein"
 
 #~ msgid "ARGs are given, all shell variables are printed."
 #~ msgstr "Argument angegeben ist, dann werden alle Shellvariablen ausgegeben."
 
 # unset
 #~ msgid "For each NAME, remove the corresponding variable or function.  Given"
-#~ msgstr "Für jeden angegebenen NAMEn wird die entsprechende Variable oder Funktion ge-"
+#~ msgstr ""
+#~ "Für jeden angegebenen NAMEn wird die entsprechende Variable oder Funktion "
+#~ "ge-"
 
 #~ msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
-#~ msgstr "löscht.  Mit `-v' werden nur Variablen und mit `-f' nur Funktionen gelöscht."
+#~ msgstr ""
+#~ "löscht.  Mit `-v' werden nur Variablen und mit `-f' nur Funktionen "
+#~ "gelöscht."
 
 #~ msgid "unset will only act on functions.  With neither flag, unset first"
-#~ msgstr "Wenn kein Schalter angegeben ist, wird zunächst eine Variable gesucht und wenn"
+#~ msgstr ""
+#~ "Wenn kein Schalter angegeben ist, wird zunächst eine Variable gesucht und "
+#~ "wenn"
 
 #~ msgid "tries to unset a variable, and if that fails, then tries to unset a"
-#~ msgstr "eine solche nicht gefunden wurde, dann wird versucht eine Funktion zu löschen."
+#~ msgstr ""
+#~ "eine solche nicht gefunden wurde, dann wird versucht eine Funktion zu "
+#~ "löschen."
 
-#~ msgid "function.  Some variables (such as PATH and IFS) cannot be unset; also"
-#~ msgstr "Einige Variablen (z.B. PATH und IFS) können nicht gelöscht werden.  Siehe"
+#~ msgid ""
+#~ "function.  Some variables (such as PATH and IFS) cannot be unset; also"
+#~ msgstr ""
+#~ "Einige Variablen (z.B. PATH und IFS) können nicht gelöscht werden.  Siehe"
 
 #~ msgid "see readonly."
 #~ msgstr "diesbezüglich auch die Hilfe der Funktion readonly."
 
 # export
 #~ msgid "NAMEs are marked for automatic export to the environment of"
-#~ msgstr "Die NAMEn werden für den automatischen Export in die Umgebung von der Shell"
+#~ msgstr ""
+#~ "Die NAMEn werden für den automatischen Export in die Umgebung von der "
+#~ "Shell"
 
 #~ msgid "subsequently executed commands.  If the -f option is given,"
-#~ msgstr "gestarteten Prozesse markiert.  Wenn die -f Option angegenen ist, dann bezeich-"
+#~ msgstr ""
+#~ "gestarteten Prozesse markiert.  Wenn die -f Option angegenen ist, dann "
+#~ "bezeich-"
 
 #~ msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
-#~ msgstr "nen die NAME'n Funktionen.  Wenn keine NAMEn angegeben sind, oder die `-p'"
+#~ msgstr ""
+#~ "nen die NAME'n Funktionen.  Wenn keine NAMEn angegeben sind, oder die `-p'"
 
 #~ msgid "is given, a list of all names that are exported in this shell is"
-#~ msgstr "Option angegeben ist, dann wird eine Liste aller von der Shell exportierter"
+#~ msgstr ""
+#~ "Option angegeben ist, dann wird eine Liste aller von der Shell "
+#~ "exportierter"
 
 #~ msgid "printed.  An argument of `-n' says to remove the export property"
-#~ msgstr "Namen ausgegeben.  Mit dem Argument `-n' wird die Exporteigenschaft des NAMENs"
+#~ msgstr ""
+#~ "Namen ausgegeben.  Mit dem Argument `-n' wird die Exporteigenschaft des "
+#~ "NAMENs"
 
 #~ msgid "from subsequent NAMEs.  An argument of `--' disables further option"
-#~ msgstr "gelöscht.  Ein Argument `--' verhindert, daß nach diesem Zeichen weitere"
+#~ msgstr ""
+#~ "gelöscht.  Ein Argument `--' verhindert, daß nach diesem Zeichen weitere"
 
 #~ msgid "processing."
 #~ msgstr "Optionen ausgewertet werden."
 
 # readonly
-#~ msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
-#~ msgstr "Die angegebenen NAMEn werden als Nur-Lesen markiert.  Deren Inhalte können"
+#~ msgid ""
+#~ "The given NAMEs are marked readonly and the values of these NAMEs may"
+#~ msgstr ""
+#~ "Die angegebenen NAMEn werden als Nur-Lesen markiert.  Deren Inhalte können"
 
 #~ msgid "not be changed by subsequent assignment.  If the -f option is given,"
-#~ msgstr "nicht mehr geändert werden.  Wenn die -f Option angegeben wird, dann werden nur"
+#~ msgstr ""
+#~ "nicht mehr geändert werden.  Wenn die -f Option angegeben wird, dann "
+#~ "werden nur"
 
 #~ msgid "then functions corresponding to the NAMEs are so marked.  If no"
-#~ msgstr "Funktionen markiert.  Ohne oder mit dem `-p' Argument, werden alle auf Nur- "
+#~ msgstr ""
+#~ "Funktionen markiert.  Ohne oder mit dem `-p' Argument, werden alle auf "
+#~ "Nur- "
 
-#~ msgid "arguments are given, or if `-p' is given, a list of all readonly names"
-#~ msgstr "Lesen gesetzte Namen ausgegeben.  Mit dem Argument `-n' kann die Nur-Lese"
+#~ msgid ""
+#~ "arguments are given, or if `-p' is given, a list of all readonly names"
+#~ msgstr ""
+#~ "Lesen gesetzte Namen ausgegeben.  Mit dem Argument `-n' kann die Nur-Lese"
 
-#~ msgid "is printed.  An argument of `-n' says to remove the readonly property"
-#~ msgstr "Eigenschaft für die angegebenen Namen entfernt werden.  Der `-a' Schalter"
+#~ msgid ""
+#~ "is printed.  An argument of `-n' says to remove the readonly property"
+#~ msgstr ""
+#~ "Eigenschaft für die angegebenen Namen entfernt werden.  Der `-a' Schalter"
 
 #~ msgid "from subsequent NAMEs.  The `-a' option means to treat each NAME as"
-#~ msgstr "bewirkt, daß jeder Name als Feldvariable behandelt wird.  Das Argument `--'"
+#~ msgstr ""
+#~ "bewirkt, daß jeder Name als Feldvariable behandelt wird.  Das Argument "
+#~ "`--'"
 
 #~ msgid "an array variable.  An argument of `--' disables further option"
 #~ msgstr "unterdrückt das Auswerten weiterer Optionen."
 
 # shift
-#~ msgid "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
-#~ msgstr "Die Positionsvariablen $N+1 ... werden nach $1 ... umbenannt.  Wenn N nicht"
+#~ msgid ""
+#~ "The positional parameters from $N+1 ... are renamed to $1 ...  If N is"
+#~ msgstr ""
+#~ "Die Positionsvariablen $N+1 ... werden nach $1 ... umbenannt.  Wenn N "
+#~ "nicht"
 
 #~ msgid "not given, it is assumed to be 1."
 #~ msgstr "angegeben ist, dann wird 1 verwendet."
 
 # source
 #~ msgid "Read and execute commands from FILENAME and return.  The pathnames"
-#~ msgstr "Liest und führt anschließend die Kommandos in DATEINAME aus.  $PATH wird"
+#~ msgstr ""
+#~ "Liest und führt anschließend die Kommandos in DATEINAME aus.  $PATH wird"
 
 #~ msgid "in $PATH are used to find the directory containing FILENAME."
 #~ msgstr "als Suchpfad benutzt, um DATEINAME zu finden."
 
 # suspend
 #~ msgid "Suspend the execution of this shell until it receives a SIGCONT"
-#~ msgstr "Hält das Ausführen der Shell solange an, bis sie das Signal SIGCONT empfängt."
+#~ msgstr ""
+#~ "Hält das Ausführen der Shell solange an, bis sie das Signal SIGCONT "
+#~ "empfängt."
 
 #~ msgid "signal.  The `-f' if specified says not to complain about this"
-#~ msgstr "Die `-f' Option unterdrückt eine Warnung, wenn es sich um eine Login Shell"
+#~ msgstr ""
+#~ "Die `-f' Option unterdrückt eine Warnung, wenn es sich um eine Login Shell"
 
 #~ msgid "being a login shell if it is; just suspend anyway."
 #~ msgstr "handelt und hält auch deren Abarbeitung an."
 
 # test
 #~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on"
-#~ msgstr "Liefert den Rückgabewert 0 (wahr) oder 1 (falsch), abhängig vom Ergebnis des"
+#~ msgstr ""
+#~ "Liefert den Rückgabewert 0 (wahr) oder 1 (falsch), abhängig vom Ergebnis "
+#~ "des"
 
 #~ msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
-#~ msgstr "Ausdruckes EXPR.  Die Ausdrücke können ein- (unär) oder zweistellig (binär) sein."
+#~ msgstr ""
+#~ "Ausdruckes EXPR.  Die Ausdrücke können ein- (unär) oder zweistellig "
+#~ "(binär) sein."
 
 #~ msgid "expressions are often used to examine the status of a file.  There"
-#~ msgstr "Einstellige Ausdrücke werden oft zum Ermitteln eines Dateizustandes verwendet."
+#~ msgstr ""
+#~ "Einstellige Ausdrücke werden oft zum Ermitteln eines Dateizustandes "
+#~ "verwendet."
 
 #~ msgid "are string operators as well, and numeric comparison operators."
-#~ msgstr "Es gibt außerden Zeichenketten- und numerische Vergleichsoperatoren."
+#~ msgstr ""
+#~ "Es gibt außerden Zeichenketten- und numerische Vergleichsoperatoren."
 
 #~ msgid "File operators:"
 #~ msgstr "Datei Operatoren:"
 
 #~ msgid "    -b FILE        True if file is block special."
-#~ msgstr "    -b DATEI       Wahr, wenn der Dateiname ein Blockgerät bezeichnet."
+#~ msgstr ""
+#~ "    -b DATEI       Wahr, wenn der Dateiname ein Blockgerät bezeichnet."
 
 #~ msgid "    -c FILE        True if file is character special."
-#~ msgstr "    -c DATEI       Wahr, wenn der Dateiname ein sequentielles Gerät bezeichnet."
+#~ msgstr ""
+#~ "    -c DATEI       Wahr, wenn der Dateiname ein sequentielles Gerät "
+#~ "bezeichnet."
 
 #~ msgid "    -d FILE        True if file is a directory."
 #~ msgstr "    -d DATEI       Wahr, wenn es ein Verzeichnis ist."
@@ -5330,52 +5868,76 @@ msgstr ""
 #~ msgstr "    -e DATEI       Wahr, wenn die Datei existiert."
 
 #~ msgid "    -f FILE        True if file exists and is a regular file."
-#~ msgstr "    -f DATEI       Wahr, wenn die Datei existiert und eine reguläre Datei ist."
+#~ msgstr ""
+#~ "    -f DATEI       Wahr, wenn die Datei existiert und eine reguläre Datei "
+#~ "ist."
 
 #~ msgid "    -g FILE        True if file is set-group-id."
 #~ msgstr "    -g DATEI       Wahr, wenn das SGID Bit gesetzt ist."
 
 #~ msgid "    -h FILE        True if file is a symbolic link.  Use \"-L\"."
-#~ msgstr "    -h DATEI       Wahr, wenn FILE symbolischer Verweis ist. (Besser -L verw.)"
+#~ msgstr ""
+#~ "    -h DATEI       Wahr, wenn FILE symbolischer Verweis ist. (Besser -L "
+#~ "verw.)"
 
 #~ msgid "    -L FILE        True if file is a symbolic link."
 #~ msgstr "    -L DATEI       Wahr, wenn FIIE einen symbolischen Verweis ist."
 
 #~ msgid "    -k FILE        True if file has its \"sticky\" bit set."
-#~ msgstr "    -k DATEI       Wahr, wenn nur der Besitzer die Datei ändern darf (sticky)."
+#~ msgstr ""
+#~ "    -k DATEI       Wahr, wenn nur der Besitzer die Datei ändern darf "
+#~ "(sticky)."
 
 #~ msgid "    -p FILE        True if file is a named pipe."
-#~ msgstr "    -p DATEI       Wahr, wenn FILE eine benannte Pipeline (named pipe) ist."
+#~ msgstr ""
+#~ "    -p DATEI       Wahr, wenn FILE eine benannte Pipeline (named pipe) "
+#~ "ist."
 
 #~ msgid "    -r FILE        True if file is readable by you."
-#~ msgstr "    -r DATEI       Wahr, wenn die Datei vom aktuellen Benutzer lesbar ist."
+#~ msgstr ""
+#~ "    -r DATEI       Wahr, wenn die Datei vom aktuellen Benutzer lesbar ist."
 
 #~ msgid "    -s FILE        True if file exists and is not empty."
-#~ msgstr "    -s DATEI       Wahr, wenn die Datei existiert und nicht leer ist."
+#~ msgstr ""
+#~ "    -s DATEI       Wahr, wenn die Datei existiert und nicht leer ist."
 
 #~ msgid "    -S FILE        True if file is a socket."
 #~ msgstr "    -S DATEI       Wahr, wenn die Datei ein \"Socket\" ist."
 
 #~ msgid "    -t FD          True if FD is opened on a terminal."
-#~ msgstr "    -t FD          Wahr, wenn die Dateinummer FD für ein Terminal geöffnet ist."
+#~ msgstr ""
+#~ "    -t FD          Wahr, wenn die Dateinummer FD für ein Terminal "
+#~ "geöffnet ist."
 
 #~ msgid "    -u FILE        True if the file is set-user-id."
-#~ msgstr "    -u DATEI       Wahr, wenn für diese Datei das SUID Bit gesetzt ist."
+#~ msgstr ""
+#~ "    -u DATEI       Wahr, wenn für diese Datei das SUID Bit gesetzt ist."
 
 #~ msgid "    -w FILE        True if the file is writable by you."
-#~ msgstr "    -w DATEI       Wahr, wenn die Datei vom aktuellen Benutzer schreibbar ist."
+#~ msgstr ""
+#~ "    -w DATEI       Wahr, wenn die Datei vom aktuellen Benutzer schreibbar "
+#~ "ist."
 
 #~ msgid "    -x FILE        True if the file is executable by you."
-#~ msgstr "    -x DATEI       Wahr, wenn die Datei vom aktuellen Benutzer ausführbar ist."
+#~ msgstr ""
+#~ "    -x DATEI       Wahr, wenn die Datei vom aktuellen Benutzer ausführbar "
+#~ "ist."
 
 #~ msgid "    -O FILE        True if the file is effectively owned by you."
-#~ msgstr "    -O DATEI       Wahr, wenn der aktuelle Benutzer Eigentümer der Datei ist."
+#~ msgstr ""
+#~ "    -O DATEI       Wahr, wenn der aktuelle Benutzer Eigentümer der Datei "
+#~ "ist."
 
-#~ msgid "    -G FILE        True if the file is effectively owned by your group."
-#~ msgstr "    -G DATEI       Wahr, wenn GID des Benutzers und der Datei übereinstimmen."
+#~ msgid ""
+#~ "    -G FILE        True if the file is effectively owned by your group."
+#~ msgstr ""
+#~ "    -G DATEI       Wahr, wenn GID des Benutzers und der Datei "
+#~ "übereinstimmen."
 
 #~ msgid "  FILE1 -nt FILE2  True if file1 is newer than (according to"
-#~ msgstr "  DATEI1 -nt DATEI2  Wahr, wenn der letzte Änderungszeitpunkt von DATEI1 jünger"
+#~ msgstr ""
+#~ "  DATEI1 -nt DATEI2  Wahr, wenn der letzte Änderungszeitpunkt von DATEI1 "
+#~ "jünger"
 
 #~ msgid "                   modification date) file2."
 #~ msgstr "                   ist als der von DATEI2."
@@ -5384,7 +5946,8 @@ msgstr ""
 #~ msgstr "  DATEI1 -ot DATEI2  Wahr, wenn DATEI1 älter ist als DATEI2."
 
 #~ msgid "  FILE1 -ef FILE2  True if file1 is a hard link to file2."
-#~ msgstr "  DATEI1 -ef DATEI2  Wahr, wenn beide Inodes übereinstimmen (hard link)."
+#~ msgstr ""
+#~ "  DATEI1 -ef DATEI2  Wahr, wenn beide Inodes übereinstimmen (hard link)."
 
 #~ msgid "String operators:"
 #~ msgstr "Operatoren für Zeichenketten (Strings):"
@@ -5396,7 +5959,9 @@ msgstr ""
 #~ msgstr "    -n STRING"
 
 #~ msgid "    STRING         True if string is not empty."
-#~ msgstr "    STRING         Wahr, wenn die Länge der Zeichenkette größer als Null ist."
+#~ msgstr ""
+#~ "    STRING         Wahr, wenn die Länge der Zeichenkette größer als Null "
+#~ "ist."
 
 #~ msgid "    STRING1 = STRING2"
 #~ msgstr "    STRING1 = STRING2"
@@ -5408,19 +5973,26 @@ msgstr ""
 #~ msgstr "    STRING1 != STRING2"
 
 #~ msgid "                   True if the strings are not equal."
-#~ msgstr "                   Wahr, wenn die Zeichenketten unterschiedlich sind."
+#~ msgstr ""
+#~ "                   Wahr, wenn die Zeichenketten unterschiedlich sind."
 
 #~ msgid "    STRING1 < STRING2"
 #~ msgstr "    STRING1 < STRING2"
 
-#~ msgid "                   True if STRING1 sorts before STRING2 lexicographically"
-#~ msgstr "                   Wahr, wenn STRING1 vor STRING2 alphabetisch geordnet ist."
+#~ msgid ""
+#~ "                   True if STRING1 sorts before STRING2 lexicographically"
+#~ msgstr ""
+#~ "                   Wahr, wenn STRING1 vor STRING2 alphabetisch geordnet "
+#~ "ist."
 
 #~ msgid "    STRING1 > STRING2"
 #~ msgstr "    STRING1 > STRING2"
 
-#~ msgid "                   True if STRING1 sorts after STRING2 lexicographically"
-#~ msgstr "                   Wahr, wenn STRING1 nach STRING2 alphabetisch geordnet ist."
+#~ msgid ""
+#~ "                   True if STRING1 sorts after STRING2 lexicographically"
+#~ msgstr ""
+#~ "                   Wahr, wenn STRING1 nach STRING2 alphabetisch geordnet "
+#~ "ist."
 
 #~ msgid "Other operators:"
 #~ msgstr "Andere Operatoren:"
@@ -5429,123 +6001,176 @@ msgstr ""
 #~ msgstr "    ! EXPR         Wahr, wenn der Ausdruck EXPR `falsch' liefert."
 
 #~ msgid "    EXPR1 -a EXPR2 True if both expr1 AND expr2 are true."
-#~ msgstr "    EXPR1 -a EXPR2 Wahr, wenn die Ausdrücke EXPR1 und EXPR2 `wahr' liefern."
+#~ msgstr ""
+#~ "    EXPR1 -a EXPR2 Wahr, wenn die Ausdrücke EXPR1 und EXPR2 `wahr' "
+#~ "liefern."
 
 #~ msgid "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
-#~ msgstr "    EXPR1 -o EXPR2 Wahr, wenn entweder EXPR1 oder EXPR2 wahr liefern."
+#~ msgstr ""
+#~ "    EXPR1 -o EXPR2 Wahr, wenn entweder EXPR1 oder EXPR2 wahr liefern."
 
 #~ msgid "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
-#~ msgstr "    arg1 OP arg2   Arithmetische Operatoren. OP kann -eq, -ne, -lt, -le, -gt"
+#~ msgstr ""
+#~ "    arg1 OP arg2   Arithmetische Operatoren. OP kann -eq, -ne, -lt, -le, -"
+#~ "gt"
 
 #~ msgid "                   -lt, -le, -gt, or -ge."
 #~ msgstr "                   oder -ge sein."
 
 #~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
-#~ msgstr "Diese binären arithmetischen Operatoren liefern Wahr, wenn ARG1 gleich,"
+#~ msgstr ""
+#~ "Diese binären arithmetischen Operatoren liefern Wahr, wenn ARG1 gleich,"
 
-#~ msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
-#~ msgstr "ungleich, kleiner als, kleiner gleich, größer als oder größer gleich"
+#~ msgid ""
+#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+#~ msgstr ""
+#~ "ungleich, kleiner als, kleiner gleich, größer als oder größer gleich"
 
 #~ msgid "than ARG2."
 #~ msgstr "ARG2 ist."
 
 # [
 #~ msgid "This is a synonym for the \"test\" builtin, but the last"
-#~ msgstr "Dies ist ein Synonym für die Shellfunktion test.  Das letzte Argument muß ein"
+#~ msgstr ""
+#~ "Dies ist ein Synonym für die Shellfunktion test.  Das letzte Argument muß "
+#~ "ein"
 
 #~ msgid "argument must be a literal `]', to match the opening `['."
 #~ msgstr "`]' sein, das mit dem öffnenden `[' korrespondiert."
 
 # times
 #~ msgid "Print the accumulated user and system times for processes run from"
-#~ msgstr "Gibt die verbrauchte Benutzer- und Systemzeit für die Shell und der von"
+#~ msgstr ""
+#~ "Gibt die verbrauchte Benutzer- und Systemzeit für die Shell und der von"
 
 #~ msgid "the shell."
 #~ msgstr "ihr gestarteten Prozesse aus."
 
 # trap
 #~ msgid "The command ARG is to be read and executed when the shell receives"
-#~ msgstr "Die Shell fängt die in SIG_SPEC angegebenen Signale ab führt das Kommando ARG"
+#~ msgstr ""
+#~ "Die Shell fängt die in SIG_SPEC angegebenen Signale ab führt das Kommando "
+#~ "ARG"
 
 #~ msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
-#~ msgstr "aus.  Wenn kein ARG angegeben ist, werden alle bezeichneten Signale zurück-"
+#~ msgstr ""
+#~ "aus.  Wenn kein ARG angegeben ist, werden alle bezeichneten Signale "
+#~ "zurück-"
 
 #~ msgid "reset to their original values.  If ARG is the null string each"
-#~ msgstr "gesetzt.  Ist ARG eine leere Zeichenkette, dann wird jedes angegebne Sig-"
+#~ msgstr ""
+#~ "gesetzt.  Ist ARG eine leere Zeichenkette, dann wird jedes angegebne Sig-"
 
 #~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
-#~ msgstr "nal von der Shell und den von ihr aufgerufenen Kommandos ignoriert.  Wenn das"
+#~ msgstr ""
+#~ "nal von der Shell und den von ihr aufgerufenen Kommandos ignoriert.  Wenn "
+#~ "das"
 
 #~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from"
-#~ msgstr "Signal EXIT (0) abgefangen wird, dann wird ARG bei Verlassen der Shell ausge-"
+#~ msgstr ""
+#~ "Signal EXIT (0) abgefangen wird, dann wird ARG bei Verlassen der Shell "
+#~ "ausge-"
 
 #~ msgid "the shell.  If SIGNAL_SPEC is DEBUG, ARG is executed after every"
-#~ msgstr "führt.  Durch Abfangen des Signals DEBUG, wird ARG nach jedem Kommando"
+#~ msgstr ""
+#~ "führt.  Durch Abfangen des Signals DEBUG, wird ARG nach jedem Kommando"
 
 #~ msgid "command.  If ARG is `-p' then the trap commands associated with"
-#~ msgstr "aufgerufen.  Mit `-p' werden Kommandos angezeigt, die für jedes abgefangene"
+#~ msgstr ""
+#~ "aufgerufen.  Mit `-p' werden Kommandos angezeigt, die für jedes "
+#~ "abgefangene"
 
 #~ msgid "each SIGNAL_SPEC are displayed.  If no arguments are supplied or if"
-#~ msgstr "Signal ausgeführt werden.  Wenn keine Argumente angegeben sind, oder wenn das"
+#~ msgstr ""
+#~ "Signal ausgeführt werden.  Wenn keine Argumente angegeben sind, oder wenn "
+#~ "das"
 
 #~ msgid "only `-p' is given, trap prints the list of commands associated with"
-#~ msgstr "Argument `-p' angegeben ist, wird eine  Liste der Kommandos für jedes abgefan-"
+#~ msgstr ""
+#~ "Argument `-p' angegeben ist, wird eine  Liste der Kommandos für jedes "
+#~ "abgefan-"
 
-#~ msgid "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
-#~ msgstr "gene Signal angezeigt.  SIGNAL_SPEC ist entweder ein Signalname (aus signal.h)"
+#~ msgid ""
+#~ "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
+#~ msgstr ""
+#~ "gene Signal angezeigt.  SIGNAL_SPEC ist entweder ein Signalname (aus "
+#~ "signal.h)"
 
-#~ msgid "or a signal number.  `trap -l' prints a list of signal names and their"
-#~ msgstr "oder eine Signalnummer.  `trap -l' gibt eine Liste der Signalnamen und der ent-"
+#~ msgid ""
+#~ "or a signal number.  `trap -l' prints a list of signal names and their"
+#~ msgstr ""
+#~ "oder eine Signalnummer.  `trap -l' gibt eine Liste der Signalnamen und "
+#~ "der ent-"
 
 #~ msgid "corresponding numbers.  Note that a signal can be sent to the shell"
-#~ msgstr "sprechenden Nummern aus.  Ein Signal kann an eine Shell mit dem Befehl \"kill"
+#~ msgstr ""
+#~ "sprechenden Nummern aus.  Ein Signal kann an eine Shell mit dem Befehl "
+#~ "\"kill"
 
 #~ msgid "with \"kill -signal $$\"."
 #~ msgstr "-signal $$\" gesendet werden."
 
 # type
 #~ msgid "For each NAME, indicate how it would be interpreted if used as a"
-#~ msgstr "Gibt aus, wie der angegebene NAME interpretiert würde, wenn er in der"
+#~ msgstr ""
+#~ "Gibt aus, wie der angegebene NAME interpretiert würde, wenn er in der"
 
 #~ msgid "If the -t option is used, returns a single word which is one of"
-#~ msgstr "Die Option -t bewirkt, daß eins der Worte: `alias', `keyword', `function',"
+#~ msgstr ""
+#~ "Die Option -t bewirkt, daß eins der Worte: `alias', `keyword', `function',"
 
-#~ msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
-#~ msgstr "`file' oder `' ausgegeben wird, wenn NAME ein Alias, ein in der Shell reser-"
+#~ msgid ""
+#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+#~ msgstr ""
+#~ "`file' oder `' ausgegeben wird, wenn NAME ein Alias, ein in der Shell "
+#~ "reser-"
 
-#~ msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
-#~ msgstr "viertes Wort, eine Skriptfunktion, eine eingebaute Shellfunktion, eine Datei"
+#~ msgid ""
+#~ "alias, shell reserved word, shell function, shell builtin, disk file,"
+#~ msgstr ""
+#~ "viertes Wort, eine Skriptfunktion, eine eingebaute Shellfunktion, eine "
+#~ "Datei"
 
 #~ msgid "or unfound, respectively."
 #~ msgstr "ist oder kein Kommandotyp gefunden wurde."
 
 #~ msgid "If the -p flag is used, either returns the name of the disk file"
-#~ msgstr "Wenn der -p Schalter angegeben ist, dann wird, wenn eine entsprechende Datei"
+#~ msgstr ""
+#~ "Wenn der -p Schalter angegeben ist, dann wird, wenn eine entsprechende "
+#~ "Datei"
 
 #~ msgid "that would be executed, or nothing if -t would not return `file'."
 #~ msgstr "existiert, ihr Name ausgegegeben,"
 
 #~ msgid "If the -a flag is used, displays all of the places that contain an"
-#~ msgstr "Mit dem -a Schalter werden alle ausführbaren Dateien mit dem Namen `file'"
+#~ msgstr ""
+#~ "Mit dem -a Schalter werden alle ausführbaren Dateien mit dem Namen `file'"
 
-#~ msgid "executable named `file'.  This includes aliases and functions, if and"
-#~ msgstr "angezeigt.  Dieses schließt Aliase und Funktionen ein, aber nur dann"
+#~ msgid ""
+#~ "executable named `file'.  This includes aliases and functions, if and"
+#~ msgstr ""
+#~ "angezeigt.  Dieses schließt Aliase und Funktionen ein, aber nur dann"
 
 #~ msgid "only if the -p flag is not also used."
 #~ msgstr "wenn nicht gleichzeitig der -p Schalter gesetzt ist."
 
 #~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t,"
-#~ msgstr "Type akzeptiert auch die Argumente -all, -path und -type an Stelle von -a,"
+#~ msgstr ""
+#~ "Type akzeptiert auch die Argumente -all, -path und -type an Stelle von -a,"
 
 #~ msgid "respectively."
 #~ msgstr "-p und -t."
 
 # ulimit
 #~ msgid "Ulimit provides control over the resources available to processes"
-#~ msgstr "Ulimit steuert die Ressourcen, die den von der Shell aufgerufenen Prozessen"
+#~ msgstr ""
+#~ "Ulimit steuert die Ressourcen, die den von der Shell aufgerufenen "
+#~ "Prozessen"
 
 #~ msgid "started by the shell, on systems that allow such control.  If an"
-#~ msgstr "zur Verfügung stehen, wenn das System Ressourcensteuerung unterstützt.  Wenn"
+#~ msgstr ""
+#~ "zur Verfügung stehen, wenn das System Ressourcensteuerung unterstützt.  "
+#~ "Wenn"
 
 #~ msgid "option is given, it is interpreted as follows:"
 #~ msgstr "eine Option angegebe ist, dann wird sie wie folgt interpretiert:"
@@ -5567,7 +6192,9 @@ msgstr ""
 #~ msgstr "    -d\tDie maximale Größe des Datensegmentes eines Prozesses."
 
 #~ msgid "    -m\tthe maximum resident set size"
-#~ msgstr "    -m\tMaximale Größe des nicht auszulagenden (residenten) Prozeßspeichers."
+#~ msgstr ""
+#~ "    -m\tMaximale Größe des nicht auszulagenden (residenten) "
+#~ "Prozeßspeichers."
 
 #~ msgid "    -s\tthe maximum stack size"
 #~ msgstr "    -s\tDie maximale Größe des Stapelspeichers."
@@ -5576,7 +6203,8 @@ msgstr ""
 #~ msgstr "    -t\tDie maximal verfügbare CPU-Zeit (in Sekunden)."
 
 #~ msgid "    -f\tthe maximum size of files created by the shell"
-#~ msgstr "    -f\tDie maximal erlaubte Größe für von der Shell erzeugte Dateien."
+#~ msgstr ""
+#~ "    -f\tDie maximal erlaubte Größe für von der Shell erzeugte Dateien."
 
 #~ msgid "    -p\tthe pipe buffer size"
 #~ msgstr "    -p\tDie Größe des Pipeline-Puffers."
@@ -5591,16 +6219,21 @@ msgstr ""
 #~ msgstr "    -v\tDie Größe des virtuellen Arbeitsspeichers."
 
 #~ msgid "If LIMIT is given, it is the new value of the specified resource."
-#~ msgstr "Wenn eine Grenze angegeben ist, wird die Resouce auf diesen Wert gesetzt."
+#~ msgstr ""
+#~ "Wenn eine Grenze angegeben ist, wird die Resouce auf diesen Wert gesetzt."
 
 #~ msgid "Otherwise, the current value of the specified resource is printed."
-#~ msgstr "Sonst wird der gegenwärtig eingestellte Wert ausgegeben.  Wenn keine Option"
+#~ msgstr ""
+#~ "Sonst wird der gegenwärtig eingestellte Wert ausgegeben.  Wenn keine "
+#~ "Option"
 
 #~ msgid "If no option is given, then -f is assumed.  Values are in 1k"
-#~ msgstr "angegeben ist wird -f verwendet.  Die Einheit ist 1k außer für -t, deren"
+#~ msgstr ""
+#~ "angegeben ist wird -f verwendet.  Die Einheit ist 1k außer für -t, deren"
 
 #~ msgid "increments, except for -t, which is in seconds, -p, which is in"
-#~ msgstr "Wert in Sekunden angegeben wird,  -p, dessen Einheit 512 bytes ist und -u,"
+#~ msgstr ""
+#~ "Wert in Sekunden angegeben wird,  -p, dessen Einheit 512 bytes ist und -u,"
 
 #~ msgid "increments of 512 bytes, and -u, which is an unscaled number of"
 #~ msgstr "für das die Anzahl der Prozesse verwendet"
@@ -5609,36 +6242,55 @@ msgstr ""
 #~ msgstr "wird."
 
 # umask
-#~ msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
-#~ msgstr "Die Dateierzeugungsmaske wird auf MODE gesetzt.  Wenn MODE nicht, oder -S"
+#~ msgid ""
+#~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+#~ msgstr ""
+#~ "Die Dateierzeugungsmaske wird auf MODE gesetzt.  Wenn MODE nicht, oder -S"
 
-#~ msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
-#~ msgstr "angegeben ist, dann wird die aktuelle Dateierzeugungsmaske ausgegeben."
+#~ msgid ""
+#~ "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+#~ msgstr ""
+#~ "angegeben ist, dann wird die aktuelle Dateierzeugungsmaske ausgegeben."
 
-#~ msgid "option makes the output symbolic; otherwise an octal number is output."
-#~ msgstr "Die `-S' Option bewirkt, daß die symbolische Entsprechung ausgegeben wird. "
+#~ msgid ""
+#~ "option makes the output symbolic; otherwise an octal number is output."
+#~ msgstr ""
+#~ "Die `-S' Option bewirkt, daß die symbolische Entsprechung ausgegeben "
+#~ "wird. "
 
 #~ msgid "If MODE begins with a digit, it is interpreted as an octal number,"
-#~ msgstr "Wenn MODE mit einer Ziffer beginnt, wird diese als Oktalzahl interpretiert."
+#~ msgstr ""
+#~ "Wenn MODE mit einer Ziffer beginnt, wird diese als Oktalzahl "
+#~ "interpretiert."
 
-#~ msgid "otherwise it is a symbolic mode string like that accepted by chmod(1)."
-#~ msgstr "Ansonsten wird eine symbolische Notation (analog chmod(1)) angenommen."
+#~ msgid ""
+#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)."
+#~ msgstr ""
+#~ "Ansonsten wird eine symbolische Notation (analog chmod(1)) angenommen."
 
 # wait
-#~ msgid "Wait for the specified process and report its termination status.  If"
-#~ msgstr "Wartet auf das Beenden der angegebenen Prozesse und gibt deren Rückgabewert"
+#~ msgid ""
+#~ "Wait for the specified process and report its termination status.  If"
+#~ msgstr ""
+#~ "Wartet auf das Beenden der angegebenen Prozesse und gibt deren "
+#~ "Rückgabewert"
 
 #~ msgid "N is not given, all currently active child processes are waited for,"
 #~ msgstr "aus.  Wenn keine Prozesse angegeben sind, wird auf alle aktiven"
 
 #~ msgid "and the return code is zero.  N may be a process ID or a job"
-#~ msgstr "Hintergrundprozesse gewartet und Null zurückgegeben.  An wait können"
+#~ msgstr ""
+#~ "Hintergrundprozesse gewartet und Null zurückgegeben.  An wait können"
 
 #~ msgid "specification; if a job spec is given, all processes in the job's"
-#~ msgstr "Prozeßnummern und Jobbezeichnungen übergeben werden.  Wenn Jobbezeichnungen"
+#~ msgstr ""
+#~ "Prozeßnummern und Jobbezeichnungen übergeben werden.  Wenn "
+#~ "Jobbezeichnungen"
 
 #~ msgid "pipeline are waited for."
-#~ msgstr "angegeben sind, dann wird auf alle Prozesse in der Job-Pipeline gewartet und"
+#~ msgstr ""
+#~ "angegeben sind, dann wird auf alle Prozesse in der Job-Pipeline gewartet "
+#~ "und"
 
 #~ msgid "and the return code is zero.  N is a process ID; if it is not given,"
 #~ msgstr "Null zurückgegeben."
@@ -5648,12 +6300,15 @@ msgstr ""
 
 # for
 #~ msgid "The `for' loop executes a sequence of commands for each member in a"
-#~ msgstr "`for' führt eine Reihe von Kommandos für jeden Eintrag einer Liste aus."
+#~ msgstr ""
+#~ "`for' führt eine Reihe von Kommandos für jeden Eintrag einer Liste aus."
 
-#~ msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+#~ msgid ""
+#~ "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
 #~ msgstr "Ohne `in WORTLISTE' wird als Argument `in \"$@\"' verwendet."
 
-#~ msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
+#~ msgid ""
+#~ "assumed.  For each element in WORDS, NAME is set to that element, and"
 #~ msgstr "NAME wird nacheinander ein Element aus WORTLISTE zugewiesen"
 
 #~ msgid "the COMMANDS are executed."
@@ -5661,34 +6316,48 @@ msgstr ""
 
 # select
 #~ msgid "The WORDS are expanded, generating a list of words.  The"
-#~ msgstr "Die WORTE werden erweitert und erzeugen eine Wortliste.  Diese wird als"
+#~ msgstr ""
+#~ "Die WORTE werden erweitert und erzeugen eine Wortliste.  Diese wird als"
 
 #~ msgid "set of expanded words is printed on the standard error, each"
 #~ msgstr "numerierte Liste auf dem Standardfehlerkanal ausgegeben."
 
 #~ msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
-#~ msgstr "Wenn `in WORTE' nicht angegeben ist, dann wird `in \"$@\"' verwendet."
+#~ msgstr ""
+#~ "Wenn `in WORTE' nicht angegeben ist, dann wird `in \"$@\"' verwendet."
 
 #~ msgid "is assumed.  The PS3 prompt is then displayed and a line read"
-#~ msgstr "Das PS3-Promt wird angezeigt und eine Zeile von der Standardeingabe gelesen."
+#~ msgstr ""
+#~ "Das PS3-Promt wird angezeigt und eine Zeile von der Standardeingabe "
+#~ "gelesen."
 
 #~ msgid "from the standard input.  If the line consists of the number"
-#~ msgstr "Wenn die gelesene Zeile eine Zeilennummer der angezeigten Liste enhält, dann"
+#~ msgstr ""
+#~ "Wenn die gelesene Zeile eine Zeilennummer der angezeigten Liste enhält, "
+#~ "dann"
 
 #~ msgid "corresponding to one of the displayed words, then NAME is set"
 #~ msgstr "wird NAME entsprechend dem WORT in der bezeichneten Zeile gesetzt."
 
 #~ msgid "to that word.  If the line is empty, WORDS and the prompt are"
-#~ msgstr "Wird eine leere Zeichenkette gelesen,  dann wird die Liste erneut angezeigt."
+#~ msgstr ""
+#~ "Wird eine leere Zeichenkette gelesen,  dann wird die Liste erneut "
+#~ "angezeigt."
 
 #~ msgid "redisplayed.  If EOF is read, the command completes.  Any other"
-#~ msgstr "Mir einem EOF Zeichen wird die Eingabe abgebrochen.  Jeder andere Inhalt der"
+#~ msgstr ""
+#~ "Mir einem EOF Zeichen wird die Eingabe abgebrochen.  Jeder andere Inhalt "
+#~ "der"
 
 #~ msgid "value read causes NAME to be set to null.  The line read is saved"
-#~ msgstr "Zeichenkette bewirkt, daß NAME auf Null gesetzt wird.  Die gelesene Zeile wird"
+#~ msgstr ""
+#~ "Zeichenkette bewirkt, daß NAME auf Null gesetzt wird.  Die gelesene Zeile "
+#~ "wird"
 
 #~ msgid "in the variable REPLY.  COMMANDS are executed after each selection"
-#~ msgstr "in der Variable REPLY gespeichert.  Die KOMMANDOS werden so lange wiederholt,"
+#~ msgstr ""
+#~ "in der Variable REPLY gespeichert.  Die KOMMANDOS werden so lange "
+#~ "wiederholt,"
 
 #~ msgid "until a break or return command is executed."
 #~ msgstr "bis die Schleife mit break oder return verlassen wird."
@@ -5701,34 +6370,47 @@ msgstr ""
 #~ msgstr "Das Zeichen `|' trennt mehrere Muster."
 
 # if
-#~ msgid "The if COMMANDS are executed.  If the exit status is zero, then the then"
-#~ msgstr "Die KOMMANDOS werden ausgewertet. Ist der Rückgabewert Null, dann werden die"
+#~ msgid ""
+#~ "The if COMMANDS are executed.  If the exit status is zero, then the then"
+#~ msgstr ""
+#~ "Die KOMMANDOS werden ausgewertet. Ist der Rückgabewert Null, dann werden "
+#~ "die"
 
-#~ msgid "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
-#~ msgstr "then KOMMANDOS ausgeführt. Ansonsten werden die elif KOMMANDOS der Reihe nach"
+#~ msgid ""
+#~ "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+#~ msgstr ""
+#~ "then KOMMANDOS ausgeführt. Ansonsten werden die elif KOMMANDOS der Reihe "
+#~ "nach"
 
-#~ msgid "in turn, and if the exit status is zero, the corresponding then COMMANDS"
-#~ msgstr "ausgewertet und bei einem Rückgabewert Null die dazugehörigen KOMMANDOS"
+#~ msgid ""
+#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS"
+#~ msgstr ""
+#~ "ausgewertet und bei einem Rückgabewert Null die dazugehörigen KOMMANDOS"
 
-#~ msgid "are executed and the if command completes.  Otherwise, the else COMMANDS"
+#~ msgid ""
+#~ "are executed and the if command completes.  Otherwise, the else COMMANDS"
 #~ msgstr "ausgeführt und if beendet. Sonst wird, wenn ein else Kommandozweig"
 
-#~ msgid "are executed, if present.  The exit status is the exit status of the last"
-#~ msgstr "existiert, dieser ausgeführt. Der Exitstatus ist der des letzten Kommandos"
+#~ msgid ""
+#~ "are executed, if present.  The exit status is the exit status of the last"
+#~ msgstr ""
+#~ "existiert, dieser ausgeführt. Der Exitstatus ist der des letzten Kommandos"
 
 #~ msgid "command executed, or zero if no condition tested true."
 #~ msgstr "oder Null, wenn keine Bedingung wahr ergab."
 
 # while
 #~ msgid "Expand and execute COMMANDS as long as the final command in the"
-#~ msgstr "Wiederholt den Schleifenkörper `do KOMMANDOS done' so lange die letzte"
+#~ msgstr ""
+#~ "Wiederholt den Schleifenkörper `do KOMMANDOS done' so lange die letzte"
 
 #~ msgid "`while' COMMANDS has an exit status of zero."
 #~ msgstr "Kommando `while KOMMANDOS' einen Rückkehrstatus Null liefert."
 
 # until
 #~ msgid "`until' COMMANDS has an exit status which is not zero."
-#~ msgstr "Kommando in `until KOMMANDOS' einen Rückkehrstatus ungleich Null liefert."
+#~ msgstr ""
+#~ "Kommando in `until KOMMANDOS' einen Rückkehrstatus ungleich Null liefert."
 
 # function
 #~ msgid "Create a simple command invoked by NAME which runs COMMANDS."
@@ -5742,20 +6424,29 @@ msgstr ""
 
 # grouping_braces
 #~ msgid "Run a set of commands in a group.  This is one way to redirect an"
-#~ msgstr "Führt Kommandos in einer Gruppe aus.  Das ist eine Möglichkeit die Ausgabe von"
+#~ msgstr ""
+#~ "Führt Kommandos in einer Gruppe aus.  Das ist eine Möglichkeit die "
+#~ "Ausgabe von"
 
 #~ msgid "entire set of commands."
 #~ msgstr "einer Gruppe Kommandos umzuleiten."
 
 # fg_percent
 #~ msgid "This is similar to the `fg' command.  Resume a stopped or background"
-#~ msgstr "Ist ähnlich dem `fg' Kommando.  Nimmt einen angehaltenen oder hintergrund Job"
+#~ msgstr ""
+#~ "Ist ähnlich dem `fg' Kommando.  Nimmt einen angehaltenen oder hintergrund "
+#~ "Job"
 
 #~ msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
-#~ msgstr "wieder auf.  Wenn eine Jobnummer angegeben ist, dann wird dieser aufgenommen."
+#~ msgstr ""
+#~ "wieder auf.  Wenn eine Jobnummer angegeben ist, dann wird dieser "
+#~ "aufgenommen."
 
-#~ msgid "WORD, then the job whose name begins with WORD is used.  Following the"
-#~ msgstr "Wenn eine Zeichenkette angegeben ist, dann wird der Job der mit diesen Zeichen"
+#~ msgid ""
+#~ "WORD, then the job whose name begins with WORD is used.  Following the"
+#~ msgstr ""
+#~ "Wenn eine Zeichenkette angegeben ist, dann wird der Job der mit diesen "
+#~ "Zeichen"
 
 #~ msgid "job specification with a `&' places the job in the background."
 #~ msgstr "beginnt wieder aufgenommen.  `&' bringt den Job in den Hintergrund."
@@ -5765,7 +6456,9 @@ msgstr ""
 #~ msgstr "BASH_VERSION    Versionsnummer der Bash."
 
 #~ msgid "CDPATH          A colon separated list of directories to search"
-#~ msgstr "CDPATH          Eine durch Doppelpunkt getrennte Liste von Verzeichnissen, die"
+#~ msgstr ""
+#~ "CDPATH          Eine durch Doppelpunkt getrennte Liste von "
+#~ "Verzeichnissen, die"
 
 #~ msgid "\t\twhen the argument to `cd' is not found in the current"
 #~ msgstr "\t\tdurchsucht werden, wenn das Argument von `cd' nicht im"
@@ -5773,14 +6466,17 @@ msgstr ""
 #~ msgid "\t\tdirectory."
 #~ msgstr "\t\taktuellen Verzeichnis gefunden wird."
 
-#~ msgid "HISTFILE        The name of the file where your command history is stored."
+#~ msgid ""
+#~ "HISTFILE        The name of the file where your command history is stored."
 #~ msgstr "HISTFILE        Datei, die den Kommandozeilenspeicher enthält.  "
 
 #~ msgid "HISTFILESIZE    The maximum number of lines this file can contain."
-#~ msgstr "HISTFILESIZE    Maximale Zeilenanzahl, die diese Datei enthalten darf."
+#~ msgstr ""
+#~ "HISTFILESIZE    Maximale Zeilenanzahl, die diese Datei enthalten darf."
 
 #~ msgid "HISTSIZE        The maximum number of history lines that a running"
-#~ msgstr "HISTSIZE        Maximale Anzahl von Zeilen, auf die der Historymechanismus"
+#~ msgstr ""
+#~ "HISTSIZE        Maximale Anzahl von Zeilen, auf die der Historymechanismus"
 
 #~ msgid "\t\tshell can access."
 #~ msgstr "\t\tder Shell zurückgreifen kann."
@@ -5788,11 +6484,15 @@ msgstr ""
 #~ msgid "HOME            The complete pathname to your login directory."
 #~ msgstr "HOME            Heimatverzeichnis des aktuellen Benutzers."
 
-#~ msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
-#~ msgstr "HOSTTYPE        CPU-Typ des Rechners, auf dem die Bash gegenwärtig läuft."
+#~ msgid ""
+#~ "HOSTTYPE        The type of CPU this version of Bash is running under."
+#~ msgstr ""
+#~ "HOSTTYPE        CPU-Typ des Rechners, auf dem die Bash gegenwärtig läuft."
 
-#~ msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
-#~ msgstr "IGNOREEOF       Legt die Reaktion der Shell auf ein EOF-Zeichen fest."
+#~ msgid ""
+#~ "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+#~ msgstr ""
+#~ "IGNOREEOF       Legt die Reaktion der Shell auf ein EOF-Zeichen fest."
 
 #~ msgid "\t\tcharacter as the sole input.  If set, then the value"
 #~ msgstr "\t\tWenn die Variable eine ganze Zahl enthält, wird diese Anzahl"
@@ -5807,16 +6507,19 @@ msgstr ""
 #~ msgstr "\t\tsignalisiert EOF das Ende der Eingabe."
 
 #~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
-#~ msgstr "MAILCHECK\tZeitintervall [s], in dem nach angekommener Post gesucht wird."
+#~ msgstr ""
+#~ "MAILCHECK\tZeitintervall [s], in dem nach angekommener Post gesucht wird."
 
 #~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
-#~ msgstr "MAILPATH\tEine durch Doppelpunkt getrennte Liste von Dateien, die nach"
+#~ msgstr ""
+#~ "MAILPATH\tEine durch Doppelpunkt getrennte Liste von Dateien, die nach"
 
 #~ msgid "\t\tfor new mail."
 #~ msgstr "\t\tneu angekommener Post durchsucht werden."
 
 #~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
-#~ msgstr "OSTYPE\t\tBetriebssystemversion, auf der die Bash gegenwärtig läuft."
+#~ msgstr ""
+#~ "OSTYPE\t\tBetriebssystemversion, auf der die Bash gegenwärtig läuft."
 
 #~ msgid "PATH            A colon-separated list of directories to search when"
 #~ msgstr "PATH\t\tDurch Doppelpunkt getrennte Liste von Verzeichnissen, die "
@@ -5825,22 +6528,29 @@ msgstr ""
 #~ msgstr "\t\tnach Kommandos durchsucht werden."
 
 #~ msgid "PROMPT_COMMAND  A command to be executed before the printing of each"
-#~ msgstr "PROMPT_COMMAND  Kommando, das vor der Anzeige einer primären Eingabeaufforderung"
+#~ msgstr ""
+#~ "PROMPT_COMMAND  Kommando, das vor der Anzeige einer primären "
+#~ "Eingabeaufforderung"
 
 #~ msgid "\t\tprimary prompt."
 #~ msgstr "\t\t(PS1) ausgeführt wird."
 
 #~ msgid "PS1             The primary prompt string."
-#~ msgstr "PS1             Zeichenkette, die die primäre Eingabeaufforderung enthält."
+#~ msgstr ""
+#~ "PS1             Zeichenkette, die die primäre Eingabeaufforderung enthält."
 
 #~ msgid "PS2             The secondary prompt string."
-#~ msgstr "PS2             Zeichenkette, die die sekundäre Eingabeaufforderung enthält."
+#~ msgstr ""
+#~ "PS2             Zeichenkette, die die sekundäre Eingabeaufforderung "
+#~ "enthält."
 
 #~ msgid "TERM            The name of the current terminal type."
 #~ msgstr "TERM            Name des aktuellen Terminaltyps."
 
 #~ msgid "auto_resume     Non-null means a command word appearing on a line by"
-#~ msgstr "auto_resume     Ein Wert ungleich Null bewirkt, daß ein einzelnes Kommando auf"
+#~ msgstr ""
+#~ "auto_resume     Ein Wert ungleich Null bewirkt, daß ein einzelnes "
+#~ "Kommando auf"
 
 #~ msgid "\t\titself is first looked for in the list of currently"
 #~ msgstr "\t\teiner Zeile zunächst in der Liste gegenwärtig gestoppter Jobs"
@@ -5866,14 +6576,17 @@ msgstr ""
 #~ msgid "command_oriented_history"
 #~ msgstr "command_oriented_history"
 
-#~ msgid "                Non-null means to save multiple-line commands together on"
+#~ msgid ""
+#~ "                Non-null means to save multiple-line commands together on"
 #~ msgstr "\t\tMehrzeilige Kommandos werden im Kommandozeilenspeicher in einer"
 
 #~ msgid "                a single history line."
 #~ msgstr "\t\tZeile abgelegt, wenn die Variable ungleich Null gesetzt ist."
 
 #~ msgid "histchars       Characters controlling history expansion and quick"
-#~ msgstr "histchars       Zeichen, die die Befehlswiederholung und die Schnellersetzung"
+#~ msgstr ""
+#~ "histchars       Zeichen, die die Befehlswiederholung und die "
+#~ "Schnellersetzung"
 
 #~ msgid "\t\tsubstitution.  The first character is the history"
 #~ msgstr "\t\tsteuern. An erster Stelle steht das Befehlswiederholungszeichen"
@@ -5891,7 +6604,8 @@ msgstr ""
 #~ msgstr "HISTCONTROL\tGesetzt auf `ignorespace' werden keine mit einem"
 
 #~ msgid "\t\tlines which begin with a space or tab on the history"
-#~ msgstr "\t\tLeerzeichen oder Tabulator beginnenden Zeilen im Kommandospeicher"
+#~ msgstr ""
+#~ "\t\tLeerzeichen oder Tabulator beginnenden Zeilen im Kommandospeicher"
 
 #~ msgid "\t\tlist.  Set to a value of `ignoredups', it means don't"
 #~ msgstr "\t\tabgelegt. Der Wert `ignoredups' verhindert das Speichern"
@@ -5910,7 +6624,9 @@ msgstr ""
 
 # pushd
 #~ msgid "Adds a directory to the top of the directory stack, or rotates"
-#~ msgstr "Legt ein Verzeichnisnamen auf den Verzeichnisstapel oder rotiert diesen so,"
+#~ msgstr ""
+#~ "Legt ein Verzeichnisnamen auf den Verzeichnisstapel oder rotiert diesen "
+#~ "so,"
 
 # Gibt's denn auch andere als "aktuelle" Arbeitsverzeichnisse?
 # "Arbeit" impliziert .m.E. "aktuell"
@@ -5919,16 +6635,20 @@ msgstr ""
 #~ msgstr "daß das Arbeitsverzeichnis auf der Spitze des Stapels liegt. Ohne"
 
 #~ msgid "directory.  With no arguments, exchanges the top two directories."
-#~ msgstr "Argumente werden die obersten zwei Verzeichnisse auf dem Stapel vertauscht."
+#~ msgstr ""
+#~ "Argumente werden die obersten zwei Verzeichnisse auf dem Stapel "
+#~ "vertauscht."
 
 #~ msgid "+N\tRotates the stack so that the Nth directory (counting"
-#~ msgstr "+N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs',"
+#~ msgstr ""
+#~ "+N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs',"
 
 #~ msgid "\tfrom the left of the list shown by `dirs') is at the top."
 #~ msgstr "gezählt von links) sich an der Spitze des Stapels befindet."
 
 #~ msgid "-N\tRotates the stack so that the Nth directory (counting"
-#~ msgstr "-N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs',"
+#~ msgstr ""
+#~ "-N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs',"
 
 #~ msgid "\tfrom the right) is at the top."
 #~ msgstr "gezählt von rechts) sich an der Spitze des Stapels befindet."
@@ -5943,17 +6663,22 @@ msgstr ""
 #~ msgstr "DIR\tLegt DIR auf die Spitze des Verzeichnisstapels und wechselt"
 
 #~ msgid "You can see the directory stack with the `dirs' command."
-#~ msgstr "Der Verzeichnisstapel kann mit dem Kommando `dirs' angezeigt werden."
+#~ msgstr ""
+#~ "Der Verzeichnisstapel kann mit dem Kommando `dirs' angezeigt werden."
 
 # pushd
 #~ msgid "Removes entries from the directory stack.  With no arguments,"
-#~ msgstr "Entfernt Einträge vom Verzeichnisstapel. Ohne Argumente wird die Spitze des"
+#~ msgstr ""
+#~ "Entfernt Einträge vom Verzeichnisstapel. Ohne Argumente wird die Spitze "
+#~ "des"
 
 #~ msgid "removes the top directory from the stack, and cd's to the new"
 #~ msgstr "Stapels entfernt und in das Verzeichnis gewechselt, das dann an der"
 
 #~ msgid "+N\tremoves the Nth entry counting from the left of the list"
-#~ msgstr "+N\tEntfernt den N'ten Eintrag vom Stapel,  gezählt von Null von der Liste,"
+#~ msgstr ""
+#~ "+N\tEntfernt den N'ten Eintrag vom Stapel,  gezählt von Null von der "
+#~ "Liste,"
 
 #~ msgid "\tshown by `dirs', starting with zero.  For example: `popd +0'"
 #~ msgstr "\tdie `dirs' anzeigt. Beispielsweise entfernen `popd +0' das"
@@ -5962,7 +6687,8 @@ msgstr ""
 #~ msgstr "\terste Verzeichnis und `popd +1' das zweite."
 
 #~ msgid "-N\tremoves the Nth entry counting from the right of the list"
-#~ msgstr "-N\tEntfernt den N'ten Eintrag vom Stapel, beginend rechts bei Null in der"
+#~ msgstr ""
+#~ "-N\tEntfernt den N'ten Eintrag vom Stapel, beginend rechts bei Null in der"
 
 #~ msgid "\tshown by `dirs', starting with zero.  For example: `popd -0'"
 #~ msgstr "\tListe, die `dirs' angeigt. Beispielsweise entfernen `popd -0'"
@@ -5970,8 +6696,10 @@ msgstr ""
 #~ msgid "\tremoves the last directory, `popd -1' the next to last."
 #~ msgstr "\tdas letzte Verzeichnis und `popd -1' das vorletzte."
 
-#~ msgid "-n\tsuppress the normal change of directory when removing directories"
-#~ msgstr "-n\tVerhindert das Wechseln des Arbeitsverzeichnisses wenn Verzeichnisse"
+#~ msgid ""
+#~ "-n\tsuppress the normal change of directory when removing directories"
+#~ msgstr ""
+#~ "-n\tVerhindert das Wechseln des Arbeitsverzeichnisses wenn Verzeichnisse"
 
 #~ msgid "\tfrom the stack, so only the stack is manipulated."
 #~ msgstr "\tvom Stapel entfernt werden, so daß nur der Stapel verändert wird."
index d8813f82503519b019a4a83d41122d1cb831bc38..cce9edc4f5b7c988923a915846caec5ea03a39f0 100644 (file)
Binary files a/po/en@boldquot.gmo and b/po/en@boldquot.gmo differ
index 9fd27a06a065df8d6ac4b39bf4e8dd7cd9170ee1..6deb295e158acd4489403fc2c12d513ccea508ed 100644 (file)
@@ -1,7 +1,7 @@
 # English translations for GNU bash package.
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the GNU bash package.
-# Automatically generated, 2011.
+# Automatically generated, 2012.
 #
 # All this catalog "translates" are quotation characters.
 # The msgids must be ASCII and therefore cannot contain real quotation
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU bash 4.2-release\n"
+"Project-Id-Version: GNU bash 4.2-maint\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
+"PO-Revision-Date: 2012-03-05 22:17-0500\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: en\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "bad array subscript"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: cannot convert indexed to associative array"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: invalid associative array key"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: cannot assign to non-numeric index"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: must use subscript when assigning associative array"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: cannot create: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: cannot find keymap for command"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: first non-whitespace character is not ‘\e[1m\"\e[0m’"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "no closing ‘\e[1m%c\e[0m’ in %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: missing colon separator"
@@ -94,36 +95,36 @@ msgstr "%s: missing colon separator"
 msgid "`%s': invalid alias name"
 msgstr "‘\e[1m%s\e[0m’: invalid alias name"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "line editing not enabled"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "‘\e[1m%s\e[0m’: invalid keymap name"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: cannot read: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "‘\e[1m%s\e[0m’: cannot unbind"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "‘\e[1m%s\e[0m’: unknown function name"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s is not bound to any keys.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s can be invoked via "
@@ -146,11 +147,15 @@ msgstr ""
 "    \n"
 "    Without EXPR, returns "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME not set"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "too many arguments"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD not set"
 
@@ -159,7 +164,7 @@ msgstr "OLDPWD not set"
 msgid "line %d: "
 msgstr "line %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "warning: "
@@ -169,11 +174,7 @@ msgstr "warning: "
 msgid "%s: usage: "
 msgstr "%s: usage: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "too many arguments"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: option requires an argument"
@@ -188,7 +189,7 @@ msgstr "%s: numeric argument required"
 msgid "%s: not found"
 msgstr "%s: not found"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: invalid option"
@@ -198,7 +199,7 @@ msgstr "%s: invalid option"
 msgid "%s: invalid option name"
 msgstr "%s: invalid option name"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "‘\e[1m%s\e[0m’: not a valid identifier"
@@ -211,7 +212,7 @@ msgstr "invalid octal number"
 msgid "invalid hex number"
 msgstr "invalid hex number"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "invalid number"
 
@@ -225,7 +226,7 @@ msgstr "%s: invalid signal specification"
 msgid "`%s': not a pid or valid job spec"
 msgstr "‘\e[1m%s\e[0m’: not a pid or valid job spec"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: readonly variable"
@@ -297,26 +298,26 @@ msgstr "%s: error retrieving current directory: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: ambiguous job spec"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: invalid action name"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: no completion specification"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "warning: -F option may not work as you expect"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "warning: -C option may not work as you expect"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "not currently executing completion function"
 
@@ -328,7 +329,7 @@ msgstr "can only be used in a function"
 msgid "cannot use `-f' to make functions"
 msgstr "cannot use ‘\e[1m-f\e[0m’ to make functions"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: readonly function"
@@ -338,7 +339,7 @@ msgstr "%s: readonly function"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: cannot destroy array variables in this way"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: cannot convert associative to indexed array"
@@ -367,8 +368,8 @@ msgstr "%s: not dynamically loaded"
 msgid "%s: cannot delete: %s"
 msgstr "%s: cannot delete: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: is a directory"
@@ -383,8 +384,7 @@ msgstr "%s: not a regular file"
 msgid "%s: file is too large"
 msgstr "%s: file is too large"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: cannot execute binary file"
@@ -508,7 +508,7 @@ msgstr "cannot use more than one of -anrw"
 msgid "history position"
 msgstr "history position"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: history expansion failed"
@@ -531,7 +531,7 @@ msgstr "%s: arguments must be process or job IDs"
 msgid "Unknown error"
 msgstr "Unknown error"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "expression expected"
 
@@ -540,12 +540,12 @@ msgstr "expression expected"
 msgid "%s: not an indexed array"
 msgstr "%s: not an indexed array"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: invalid file descriptor specification"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: invalid file descriptor: %s"
@@ -573,31 +573,31 @@ msgstr "empty array variable name"
 msgid "array variable support required"
 msgstr "array variable support required"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "‘\e[1m%s\e[0m’: missing format character"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "‘\e[1m%c\e[0m’: invalid time format specification"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "‘\e[1m%c\e[0m’: invalid format character"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "warning: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "missing hex digit for \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "missing unicode digit for \\%c"
@@ -749,17 +749,17 @@ msgstr ""
 "    \n"
 "    The ‘\e[1mdirs\e[0m’ builtin displays the directory stack."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: invalid timeout specification"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "read error: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "can only ‘\e[1mreturn\e[0m’ from a function or sourced script"
 
@@ -767,17 +767,17 @@ msgstr "can only ‘\e[1mreturn\e[0m’ from a function or sourced script"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "cannot simultaneously unset a function and a variable"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: cannot unset"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: cannot unset: readonly %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: not an array variable"
@@ -791,11 +791,11 @@ msgstr "%s: not a function"
 msgid "shift count"
 msgstr "shift count"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "cannot set and unset shell options simultaneously"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: invalid shell option name"
@@ -837,7 +837,7 @@ msgstr "%s is a function\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s is a shell builtin\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s is %s\n"
@@ -847,26 +847,26 @@ msgstr "%s is %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s is hashed (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: invalid limit argument"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "‘\e[1m%c\e[0m’: bad command"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: cannot get limit: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limit"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: cannot modify limit: %s"
@@ -885,7 +885,7 @@ msgstr "‘\e[1m%c\e[0m’: invalid symbolic mode operator"
 msgid "`%c': invalid symbolic mode character"
 msgstr "‘\e[1m%c\e[0m’: invalid symbolic mode character"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " line "
 
@@ -899,23 +899,23 @@ msgstr "last command: %s\n"
 msgid "Aborting..."
 msgstr "Aborting..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "unknown command error"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "bad command type"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "bad connector"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "bad jump"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: unbound variable"
@@ -930,102 +930,117 @@ msgstr "\atimed out waiting for input: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "cannot redirect standard input from /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: ‘\e[1m%c\e[0m’: invalid format character"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "pipe error"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximum function nesting level exceeded (%d)"
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restricted: cannot specify ‘\e[1m/\e[0m’ in command names"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: command not found"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bad interpreter"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: cannot execute binary file: %s"
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "‘\e[1m%s\e[0m’: is a special builtin"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "cannot duplicate fd %d to fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "expression recursion level exceeded"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "recursion stack underflow"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntax error in expression"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "attempted assignment to non-variable"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "division by 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: bad expassign token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "‘\e[1m:\e[0m’ expected for conditional expression"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exponent less than 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "identifier expected after pre-increment or pre-decrement"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "missing ‘\e[1m)\e[0m’"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntax error: operand expected"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntax error: invalid arithmetic operator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (error token is “\e[1m%s\e[0m”)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "invalid arithmetic base"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "value too great for base"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: expression error\n"
@@ -1034,163 +1049,163 @@ msgstr "%s: expression error\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: cannot access parent directories"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "cannot reset nodelay mode for fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "cannot allocate new file descriptor for bash input from fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer already exists for new fd %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forked pid %d appears in running job %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "deleting stopped job %d with process group %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) in the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marked as still alive"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no such pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Done"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stopped"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stopped(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Running"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Done(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Unknown status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "child setpgid (%ld to %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld is not a child of this shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No record of process %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: job %d is stopped"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: job has terminated"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: job %d already in background"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: turning on WNOHANG to avoid indefinite block"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: line %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd now: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp failed"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "cannot set terminal process group (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "no job control in this shell"
 
@@ -1259,7 +1274,7 @@ msgstr "register_alloc: %p already in table as allocated?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p already in table as free?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "invalid base"
 
@@ -1282,22 +1297,22 @@ msgstr "%s: bad network path specification"
 msgid "network operations not supported"
 msgstr "network operations not supported"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: cannot change locale (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: cannot change locale (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: cannot change locale (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: cannot change locale (%s): %s"
@@ -1328,118 +1343,118 @@ msgstr "syntax error: ‘\e[1m;\e[0m’ unexpected"
 msgid "syntax error: `((%s))'"
 msgstr "syntax error: ‘\e[1m((%s))\e[0m’"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: bad instruction type %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "here-document at line %d delimited by end-of-file (wanted ‘\e[1m%s\e[0m’)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: redirection instruction ‘\e[1m%d\e[0m’ out of range"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "unexpected EOF while looking for matching ‘\e[1m%c\e[0m’"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "unexpected EOF while looking for ‘\e[1m]]\e[0m’"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntax error in conditional expression: unexpected token ‘\e[1m%s\e[0m’"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "syntax error in conditional expression"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "unexpected token ‘\e[1m%s\e[0m’, expected ‘\e[1m)\e[0m’"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "expected ‘\e[1m)\e[0m’"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "unexpected argument ‘\e[1m%s\e[0m’ to conditional unary operator"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "unexpected argument to conditional unary operator"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "unexpected token ‘\e[1m%s\e[0m’, conditional binary operator expected"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "conditional binary operator expected"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "unexpected argument ‘\e[1m%s\e[0m’ to conditional binary operator"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "unexpected argument to conditional binary operator"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "unexpected token ‘\e[1m%c\e[0m’ in conditional command"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "unexpected token ‘\e[1m%s\e[0m’ in conditional command"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "unexpected token %d in conditional command"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntax error near unexpected token ‘\e[1m%s\e[0m’"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntax error near ‘\e[1m%s\e[0m’"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "syntax error: unexpected end of file"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "syntax error"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use “\e[1m%s\e[0m” to leave the shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "unexpected EOF while looking for matching ‘\e[1m)\e[0m’"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: function ‘\e[1m%s\e[0m’ not found"
@@ -1449,26 +1464,26 @@ msgstr "completion: function ‘\e[1m%s\e[0m’ not found"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: bad connector ‘\e[1m%d\e[0m’"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: invalid file descriptor"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: NULL file pointer"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: ‘\e[1m%c\e[0m’: invalid format character"
@@ -1506,33 +1521,33 @@ msgstr "%s: cannot assign fd to variable"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port not supported without networking"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "redirection error: cannot duplicate fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "could not find /tmp, please create!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp must be a valid directory name"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: invalid option"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "I have no name!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, version %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1541,42 +1556,42 @@ msgstr ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU long options:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Shell options:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s or -o option\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Type ‘\e[1m%s -c “\e[1mhelp set\e[0m”\e[0m’ for more information about shell "
 "options.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Type ‘\e[1m%s -c help\e[0m’ for more information about shell builtin commands.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Use the ‘\e[1mbashbug\e[0m’ command to report bugs.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: invalid operation"
@@ -1750,72 +1765,72 @@ msgstr "Unknown Signal #"
 msgid "Unknown Signal #%d"
 msgstr "Unknown Signal #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "bad substitution: no closing ‘\e[1m%s\e[0m’ in %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: cannot assign list to array member"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "cannot make pipe for process substitution"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "cannot make child for process substitution"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "cannot open named pipe %s for reading"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "cannot open named pipe %s for writing"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "cannot duplicate named pipe %s as fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "cannot make pipe for command substitution"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "cannot make child for command substitution"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: cannot duplicate pipe as fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameter null or not set"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: substring expression < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: bad substitution"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: cannot assign in this way"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
@@ -1823,12 +1838,12 @@ msgstr ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "bad substitution: no closing “\e[1m`\e[0m” in %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "no match: %s"
@@ -1865,78 +1880,78 @@ msgstr "%s: binary operator expected"
 msgid "missing `]'"
 msgstr "missing ‘\e[1m]\e[0m’"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "invalid signal number"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: bad value in trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: bad signal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "error importing function definition for ‘\e[1m%s\e[0m’"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "shell level (%d) too high, resetting to 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: no function context at current scope"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: no function context at current scope"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s has null exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "invalid character %d in exportstr for %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "no ‘\e[1m=\e[0m’ in exportstr for %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: head of shell_variables not a function context"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: no global_variables context"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: head of shell_variables not a temporary environment scope"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: cannot open as FILE"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: invalid value for trace file descriptor"
@@ -2012,10 +2027,10 @@ msgstr "unalias [-a] name [name ...]"
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 
 #: builtins.c:54
@@ -2215,16 +2230,16 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] name [name ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 
 #: builtins.c:172
 msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mode]"
 
 #: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [id]"
+msgid "wait [id ...]"
+msgstr "wait [id ...]"
 
 #: builtins.c:179
 msgid "wait [pid]"
@@ -2439,6 +2454,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2475,11 +2492,13 @@ msgstr ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2497,7 +2516,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2515,7 +2534,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2539,7 +2558,7 @@ msgstr ""
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2568,7 +2587,7 @@ msgstr ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2591,13 +2610,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2625,21 +2649,26 @@ msgstr ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of ‘\e[1m..\e[0m’\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof ‘\e[1m..\e[0m’\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if ‘\e[1m-L\e[0m’ were "
 "specified.\n"
+"    ‘\e[1m..\e[0m’ is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
 "when\n"
 "    -P is used; non-zero otherwise."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2667,7 +2696,7 @@ msgstr ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2683,7 +2712,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2695,7 +2724,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2707,7 +2736,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always fails."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2742,7 +2771,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2815,7 +2844,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2825,7 +2854,7 @@ msgstr ""
 "    \n"
 "    Obsolete.  See ‘\e[1mhelp declare\e[0m’."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2851,11 +2880,13 @@ msgstr ""
 "    Returns success unless an invalid option is supplied, an error occurs,\n"
 "    or the shell is not executing a function."
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2867,6 +2898,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2883,7 +2915,9 @@ msgid ""
 msgstr ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2895,6 +2929,7 @@ msgstr ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2909,7 +2944,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2931,7 +2966,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2981,7 +3016,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -3001,7 +3036,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3082,7 +3117,7 @@ msgstr ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3124,7 +3159,7 @@ msgstr ""
 "    Returns success unless COMMAND is not found or a redirection error "
 "occurs."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3136,7 +3171,7 @@ msgstr ""
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3150,7 +3185,7 @@ msgstr ""
 "executed\n"
 "    in a login shell."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3208,7 +3243,7 @@ msgstr ""
 "    Returns success or status of executed command; non-zero if an error "
 "occurs."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3228,7 +3263,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3252,7 +3287,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3296,7 +3331,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3336,7 +3371,7 @@ msgstr ""
 "    Returns success unless PATTERN is not found or an invalid option is "
 "given."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3401,7 +3436,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3445,7 +3480,7 @@ msgstr ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3475,7 +3510,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3515,7 +3550,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3601,7 +3636,7 @@ msgstr ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3638,14 +3673,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3683,17 +3721,20 @@ msgstr ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3713,7 +3754,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3779,7 +3820,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3861,7 +3902,7 @@ msgstr ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3879,7 +3920,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3915,7 +3956,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3949,7 +3990,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3985,7 +4026,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4003,7 +4044,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4027,7 +4068,7 @@ msgstr ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4051,7 +4092,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4209,7 +4250,7 @@ msgstr ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4222,7 +4263,7 @@ msgstr ""
 "must\n"
 "    be a literal ‘\e[1m]\e[0m’, to match the opening ‘\e[1m[\e[0m’."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4242,7 +4283,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4327,7 +4368,7 @@ msgstr ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4385,7 +4426,7 @@ msgstr ""
 "    Returns success if all of the NAMEs are found; fails if any are not "
 "found."
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4414,6 +4455,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4455,6 +4499,9 @@ msgstr ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values ‘\e[1msoft\e[0m’, ‘\e[1mhard\e[0m’, and ‘\e[1munlimited\e[0m’ "
@@ -4470,7 +4517,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4502,37 +4549,37 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4556,7 +4603,7 @@ msgstr ""
 "is\n"
 "    given."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4580,7 +4627,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4610,7 +4657,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4647,7 +4694,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4675,7 +4722,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4693,7 +4740,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4731,7 +4778,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4749,7 +4796,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4767,7 +4814,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4789,7 +4836,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the exit status of COMMAND."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4813,7 +4860,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4831,7 +4878,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4856,7 +4903,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4874,7 +4921,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4928,7 +4975,7 @@ msgstr ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5032,7 +5079,7 @@ msgstr ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5090,7 +5137,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5142,7 +5189,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5197,7 +5244,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5235,7 +5282,7 @@ msgstr ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5253,8 +5300,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5283,8 +5330,8 @@ msgstr ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5297,7 +5344,7 @@ msgstr ""
 "assignment\n"
 "    error occurs."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5347,7 +5394,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5369,7 +5416,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5428,7 +5475,7 @@ msgstr ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -5506,7 +5553,7 @@ msgstr ""
 "or\n"
 "    not an indexed array."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 46cb2bc64b496a441ceee1659fad76e1494e5716..520d28a3a8227f953402d7c586bd82a004e9a3ad 100644 (file)
Binary files a/po/en@quot.gmo and b/po/en@quot.gmo differ
index ec46fb1458c1249bf7392d9cf3260e2a06739abc..c5de9334783d8b82274cca7447a00e26a2fb600f 100644 (file)
@@ -1,7 +1,7 @@
 # English translations for GNU bash package.
-# Copyright (C) 2011 Free Software Foundation, Inc.
+# Copyright (C) 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the GNU bash package.
-# Automatically generated, 2011.
+# Automatically generated, 2012.
 #
 # All this catalog "translates" are quotation characters.
 # The msgids must be ASCII and therefore cannot contain real quotation
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU bash 4.2-release\n"
+"Project-Id-Version: GNU bash 4.2-maint\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
+"PO-Revision-Date: 2012-03-05 22:17-0500\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
+"Language: en\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "bad array subscript"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: cannot convert indexed to associative array"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: invalid associative array key"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: cannot assign to non-numeric index"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: must use subscript when assigning associative array"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: cannot create: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: cannot find keymap for command"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: first non-whitespace character is not ‘\"’"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "no closing ‘%c’ in %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: missing colon separator"
@@ -91,36 +92,36 @@ msgstr "%s: missing colon separator"
 msgid "`%s': invalid alias name"
 msgstr "‘%s’: invalid alias name"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "line editing not enabled"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "‘%s’: invalid keymap name"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: cannot read: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "‘%s’: cannot unbind"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "‘%s’: unknown function name"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s is not bound to any keys.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s can be invoked via "
@@ -143,11 +144,15 @@ msgstr ""
 "    \n"
 "    Without EXPR, returns "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME not set"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "too many arguments"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD not set"
 
@@ -156,7 +161,7 @@ msgstr "OLDPWD not set"
 msgid "line %d: "
 msgstr "line %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "warning: "
@@ -166,11 +171,7 @@ msgstr "warning: "
 msgid "%s: usage: "
 msgstr "%s: usage: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "too many arguments"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: option requires an argument"
@@ -185,7 +186,7 @@ msgstr "%s: numeric argument required"
 msgid "%s: not found"
 msgstr "%s: not found"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: invalid option"
@@ -195,7 +196,7 @@ msgstr "%s: invalid option"
 msgid "%s: invalid option name"
 msgstr "%s: invalid option name"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "‘%s’: not a valid identifier"
@@ -208,7 +209,7 @@ msgstr "invalid octal number"
 msgid "invalid hex number"
 msgstr "invalid hex number"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "invalid number"
 
@@ -222,7 +223,7 @@ msgstr "%s: invalid signal specification"
 msgid "`%s': not a pid or valid job spec"
 msgstr "‘%s’: not a pid or valid job spec"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: readonly variable"
@@ -294,26 +295,26 @@ msgstr "%s: error retrieving current directory: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: ambiguous job spec"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: invalid action name"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: no completion specification"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "warning: -F option may not work as you expect"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "warning: -C option may not work as you expect"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "not currently executing completion function"
 
@@ -325,7 +326,7 @@ msgstr "can only be used in a function"
 msgid "cannot use `-f' to make functions"
 msgstr "cannot use ‘-f’ to make functions"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: readonly function"
@@ -335,7 +336,7 @@ msgstr "%s: readonly function"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: cannot destroy array variables in this way"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: cannot convert associative to indexed array"
@@ -364,8 +365,8 @@ msgstr "%s: not dynamically loaded"
 msgid "%s: cannot delete: %s"
 msgstr "%s: cannot delete: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: is a directory"
@@ -380,8 +381,7 @@ msgstr "%s: not a regular file"
 msgid "%s: file is too large"
 msgstr "%s: file is too large"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: cannot execute binary file"
@@ -502,7 +502,7 @@ msgstr "cannot use more than one of -anrw"
 msgid "history position"
 msgstr "history position"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: history expansion failed"
@@ -525,7 +525,7 @@ msgstr "%s: arguments must be process or job IDs"
 msgid "Unknown error"
 msgstr "Unknown error"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "expression expected"
 
@@ -534,12 +534,12 @@ msgstr "expression expected"
 msgid "%s: not an indexed array"
 msgstr "%s: not an indexed array"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: invalid file descriptor specification"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: invalid file descriptor: %s"
@@ -567,31 +567,31 @@ msgstr "empty array variable name"
 msgid "array variable support required"
 msgstr "array variable support required"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "‘%s’: missing format character"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "‘%c’: invalid time format specification"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "‘%c’: invalid format character"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "warning: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "missing hex digit for \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "missing unicode digit for \\%c"
@@ -740,17 +740,17 @@ msgstr ""
 "    \n"
 "    The ‘dirs’ builtin displays the directory stack."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: invalid timeout specification"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "read error: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "can only ‘return’ from a function or sourced script"
 
@@ -758,17 +758,17 @@ msgstr "can only ‘return’ from a function or sourced script"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "cannot simultaneously unset a function and a variable"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: cannot unset"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: cannot unset: readonly %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: not an array variable"
@@ -782,11 +782,11 @@ msgstr "%s: not a function"
 msgid "shift count"
 msgstr "shift count"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "cannot set and unset shell options simultaneously"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: invalid shell option name"
@@ -828,7 +828,7 @@ msgstr "%s is a function\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s is a shell builtin\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s is %s\n"
@@ -838,26 +838,26 @@ msgstr "%s is %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s is hashed (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: invalid limit argument"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "‘%c’: bad command"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: cannot get limit: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limit"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: cannot modify limit: %s"
@@ -876,7 +876,7 @@ msgstr "‘%c’: invalid symbolic mode operator"
 msgid "`%c': invalid symbolic mode character"
 msgstr "‘%c’: invalid symbolic mode character"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " line "
 
@@ -890,23 +890,23 @@ msgstr "last command: %s\n"
 msgid "Aborting..."
 msgstr "Aborting..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "unknown command error"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "bad command type"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "bad connector"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "bad jump"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: unbound variable"
@@ -921,102 +921,117 @@ msgstr "\atimed out waiting for input: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "cannot redirect standard input from /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: ‘%c’: invalid format character"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "pipe error"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr "%s: maximum function nesting level exceeded (%d)"
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restricted: cannot specify ‘/’ in command names"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: command not found"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bad interpreter"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: cannot execute binary file: %s"
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr "‘%s’: is a special builtin"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "cannot duplicate fd %d to fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "expression recursion level exceeded"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "recursion stack underflow"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntax error in expression"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "attempted assignment to non-variable"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "division by 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: bad expassign token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "‘:’ expected for conditional expression"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exponent less than 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "identifier expected after pre-increment or pre-decrement"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "missing ‘)’"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntax error: operand expected"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntax error: invalid arithmetic operator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (error token is “%s”)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "invalid arithmetic base"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "value too great for base"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: expression error\n"
@@ -1025,163 +1040,163 @@ msgstr "%s: expression error\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: cannot access parent directories"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "cannot reset nodelay mode for fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "cannot allocate new file descriptor for bash input from fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer already exists for new fd %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forked pid %d appears in running job %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "deleting stopped job %d with process group %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) in the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marked as still alive"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no such pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Done"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stopped"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stopped(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Running"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Done(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Unknown status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "child setpgid (%ld to %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld is not a child of this shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No record of process %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: job %d is stopped"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: job has terminated"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: job %d already in background"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: turning on WNOHANG to avoid indefinite block"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: line %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd now: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp failed"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "cannot set terminal process group (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "no job control in this shell"
 
@@ -1250,7 +1265,7 @@ msgstr "register_alloc: %p already in table as allocated?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p already in table as free?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "invalid base"
 
@@ -1273,22 +1288,22 @@ msgstr "%s: bad network path specification"
 msgid "network operations not supported"
 msgstr "network operations not supported"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: cannot change locale (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: cannot change locale (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: cannot change locale (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: cannot change locale (%s): %s"
@@ -1319,118 +1334,118 @@ msgstr "syntax error: ‘;’ unexpected"
 msgid "syntax error: `((%s))'"
 msgstr "syntax error: ‘((%s))’"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: bad instruction type %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "here-document at line %d delimited by end-of-file (wanted ‘%s’)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: redirection instruction ‘%d’ out of range"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "unexpected EOF while looking for matching ‘%c’"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "unexpected EOF while looking for ‘]]’"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntax error in conditional expression: unexpected token ‘%s’"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "syntax error in conditional expression"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "unexpected token ‘%s’, expected ‘)’"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "expected ‘)’"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "unexpected argument ‘%s’ to conditional unary operator"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "unexpected argument to conditional unary operator"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "unexpected token ‘%s’, conditional binary operator expected"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "conditional binary operator expected"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "unexpected argument ‘%s’ to conditional binary operator"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "unexpected argument to conditional binary operator"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "unexpected token ‘%c’ in conditional command"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "unexpected token ‘%s’ in conditional command"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "unexpected token %d in conditional command"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntax error near unexpected token ‘%s’"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntax error near ‘%s’"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "syntax error: unexpected end of file"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "syntax error"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use “%s” to leave the shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "unexpected EOF while looking for matching ‘)’"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: function ‘%s’ not found"
@@ -1440,26 +1455,26 @@ msgstr "completion: function ‘%s’ not found"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: bad connector ‘%d’"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: invalid file descriptor"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: NULL file pointer"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: ‘%c’: invalid format character"
@@ -1497,33 +1512,33 @@ msgstr "%s: cannot assign fd to variable"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port not supported without networking"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "redirection error: cannot duplicate fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "could not find /tmp, please create!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp must be a valid directory name"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: invalid option"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "I have no name!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, version %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1532,39 +1547,39 @@ msgstr ""
 "Usage:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU long options:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Shell options:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s or -o option\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Type ‘%s -c “help set”’ for more information about shell options.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Type ‘%s -c help’ for more information about shell builtin commands.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Use the ‘bashbug’ command to report bugs.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: invalid operation"
@@ -1738,72 +1753,72 @@ msgstr "Unknown Signal #"
 msgid "Unknown Signal #%d"
 msgstr "Unknown Signal #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "bad substitution: no closing ‘%s’ in %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: cannot assign list to array member"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "cannot make pipe for process substitution"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "cannot make child for process substitution"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "cannot open named pipe %s for reading"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "cannot open named pipe %s for writing"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "cannot duplicate named pipe %s as fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "cannot make pipe for command substitution"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "cannot make child for command substitution"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: cannot duplicate pipe as fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameter null or not set"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: substring expression < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: bad substitution"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: cannot assign in this way"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
@@ -1811,12 +1826,12 @@ msgstr ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "bad substitution: no closing “`” in %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "no match: %s"
@@ -1853,78 +1868,78 @@ msgstr "%s: binary operator expected"
 msgid "missing `]'"
 msgstr "missing ‘]’"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "invalid signal number"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: bad value in trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: bad signal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "error importing function definition for ‘%s’"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "shell level (%d) too high, resetting to 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: no function context at current scope"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: no function context at current scope"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s has null exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "invalid character %d in exportstr for %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "no ‘=’ in exportstr for %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: head of shell_variables not a function context"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: no global_variables context"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: head of shell_variables not a temporary environment scope"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: cannot open as FILE"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: invalid value for trace file descriptor"
@@ -2000,10 +2015,10 @@ msgstr "unalias [-a] name [name ...]"
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 
 #: builtins.c:54
@@ -2203,16 +2218,16 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] name [name ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
+msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 
 #: builtins.c:172
 msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mode]"
 
 #: builtins.c:175
-msgid "wait [id]"
-msgstr "wait [id]"
+msgid "wait [id ...]"
+msgstr "wait [id ...]"
 
 #: builtins.c:179
 msgid "wait [pid]"
@@ -2426,6 +2441,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2462,11 +2479,13 @@ msgstr ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2484,7 +2503,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2502,7 +2521,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2526,7 +2545,7 @@ msgstr ""
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2554,7 +2573,7 @@ msgstr ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2577,13 +2596,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2611,20 +2635,25 @@ msgstr ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of ‘..’\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof ‘..’\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if ‘-L’ were specified.\n"
+"    ‘..’ is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
 "when\n"
 "    -P is used; non-zero otherwise."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2652,7 +2681,7 @@ msgstr ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2668,7 +2697,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2680,7 +2709,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2692,7 +2721,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always fails."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2726,7 +2755,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2798,7 +2827,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2808,7 +2837,7 @@ msgstr ""
 "    \n"
 "    Obsolete.  See ‘help declare’."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2834,11 +2863,13 @@ msgstr ""
 "    Returns success unless an invalid option is supplied, an error occurs,\n"
 "    or the shell is not executing a function."
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2850,6 +2881,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2866,7 +2898,9 @@ msgid ""
 msgstr ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2878,6 +2912,7 @@ msgstr ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2892,7 +2927,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2914,7 +2949,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2964,7 +2999,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2984,7 +3019,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3062,7 +3097,7 @@ msgstr ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3104,7 +3139,7 @@ msgstr ""
 "    Returns success unless COMMAND is not found or a redirection error "
 "occurs."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3116,7 +3151,7 @@ msgstr ""
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3130,7 +3165,7 @@ msgstr ""
 "executed\n"
 "    in a login shell."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3186,7 +3221,7 @@ msgstr ""
 "    Returns success or status of executed command; non-zero if an error "
 "occurs."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3206,7 +3241,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3230,7 +3265,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3274,7 +3309,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3314,7 +3349,7 @@ msgstr ""
 "    Returns success unless PATTERN is not found or an invalid option is "
 "given."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3378,7 +3413,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3422,7 +3457,7 @@ msgstr ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3452,7 +3487,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3492,7 +3527,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3578,7 +3613,7 @@ msgstr ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3615,14 +3650,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3660,17 +3698,20 @@ msgstr ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3690,7 +3731,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3756,7 +3797,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3838,7 +3879,7 @@ msgstr ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3856,7 +3897,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3892,7 +3933,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3926,7 +3967,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3962,7 +4003,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3980,7 +4021,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4004,7 +4045,7 @@ msgstr ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4028,7 +4069,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4186,7 +4227,7 @@ msgstr ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4198,7 +4239,7 @@ msgstr ""
 "    This is a synonym for the “test” builtin, but the last argument must\n"
 "    be a literal ‘]’, to match the opening ‘[’."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4218,7 +4259,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Always succeeds."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4302,7 +4343,7 @@ msgstr ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4358,7 +4399,7 @@ msgstr ""
 "    Returns success if all of the NAMEs are found; fails if any are not "
 "found."
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4387,6 +4428,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4428,6 +4472,9 @@ msgstr ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for the\n"
@@ -4442,7 +4489,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4474,37 +4521,37 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4528,7 +4575,7 @@ msgstr ""
 "is\n"
 "    given."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4550,7 +4597,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4580,7 +4627,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4616,7 +4663,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4644,7 +4691,7 @@ msgstr ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4662,7 +4709,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4700,7 +4747,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4718,7 +4765,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4736,7 +4783,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4758,7 +4805,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the exit status of COMMAND."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4782,7 +4829,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4800,7 +4847,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4824,7 +4871,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4842,7 +4889,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4894,7 +4941,7 @@ msgstr ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4998,7 +5045,7 @@ msgstr ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5056,7 +5103,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5106,7 +5153,7 @@ msgstr ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5160,7 +5207,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5198,7 +5245,7 @@ msgstr ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5216,8 +5263,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5246,8 +5293,8 @@ msgstr ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5260,7 +5307,7 @@ msgstr ""
 "assignment\n"
 "    error occurs."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5310,7 +5357,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5332,7 +5379,7 @@ msgstr ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5390,7 +5437,7 @@ msgstr ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -5468,7 +5515,7 @@ msgstr ""
 "or\n"
 "    not an indexed array."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index c1367bcafb2e4c4e4260365b4be8ebcebe286ae8..c73ba2c1b618f564ae80f9250e4789b3b83005c9 100644 (file)
Binary files a/po/eo.gmo and b/po/eo.gmo differ
index 1460ae7594b2d236aee84c3963ed056fe5bf3395..81857f785ab3a285368b1ca4a125348b4f65f4f3 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -26,7 +26,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-02-20 19:14+0600\n"
 "Last-Translator: Sergio Pokrovskij <sergio.pokrovskij@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -36,51 +36,51 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "Misa tabel-indico"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: Maleblas konverti entjerindican tabelon en asocitabelon"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: Misa asocitabela ŝlosilo"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: Valorizato havu nombran indicon"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: Valorizante per asocitabelo uzu indicon"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: Ne prosperis krei: %s"
 
 # XXX: internal_error
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: Mankas klavartabelo por komando"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: La unua ne-blankspaca signo ne estas „\"‟"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "Mankas ferma „%c‟ en %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: Mankas disiga dupunkto"
@@ -90,36 +90,36 @@ msgstr "%s: Mankas disiga dupunkto"
 msgid "`%s': invalid alias name"
 msgstr "%s: Maltaŭgas por uzi kiel alinomon"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "liniredaktado ne estas ebligita"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s‟: Misa nomo por klavartabelo"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: Ne eblas legi: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: Ne eblas malligi"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: Nekonata funkcinomo"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s malhavas klavligon\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s vokeblas per "
@@ -142,11 +142,15 @@ msgstr ""
 "\n"
 "  Sen ESPR liveras "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME malhavas valoron"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "Tro multe da argumentoj"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD malhavas valoron"
 
@@ -155,7 +159,7 @@ msgstr "OLDPWD malhavas valoron"
 msgid "line %d: "
 msgstr "linio %dª: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "Averto: "
@@ -165,11 +169,7 @@ msgstr "Averto: "
 msgid "%s: usage: "
 msgstr "%s: Uzmaniero: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "Tro multe da argumentoj"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: La opcio bezonas argumenton"
@@ -184,7 +184,7 @@ msgstr "%s: Necesas nombra argumento"
 msgid "%s: not found"
 msgstr "%s: Ne trovita"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: Misa opcio"
@@ -194,7 +194,7 @@ msgstr "%s: Misa opcio"
 msgid "%s: invalid option name"
 msgstr "%s: Misa opcinomo"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "„%s‟ ne estas taŭga nomo"
@@ -207,7 +207,7 @@ msgstr "Misa okuma nombro"
 msgid "invalid hex number"
 msgstr "Misa 16uma nombro"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "Misa nombro"
 
@@ -221,7 +221,7 @@ msgstr "%s: Misa signalindiko"
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s‟: Nek proceznumero, nek taŭga laborindiko"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: Nurlega variablo"
@@ -293,26 +293,26 @@ msgstr "%s: Eraro ĉe provo determini la kurantan dosierujon: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: Ambigua laborindiko"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: Misa nomo de ago"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: Kompletigo ne estas specifita"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "Averto: La opcio -F povas funkcii alie ol vi eble supozas"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "Averto: La opcio -C povas funkcii alie ol vi eble supozas"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "Ni ne estas en plenumado de kompletiga funkcio"
 
@@ -324,7 +324,7 @@ msgstr "Uzeblas nur ene de funkcio"
 msgid "cannot use `-f' to make functions"
 msgstr "„-f‟ ne estas uzebla por fari funkciojn"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: Nurlega funkcio"
@@ -334,7 +334,7 @@ msgstr "%s: Nurlega funkcio"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "$%s: ĉi tiel ne eblas neniigi variablojn"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: Ne eblas konverti asocitabelon en entjerindican tabelon"
@@ -363,8 +363,8 @@ msgstr "%s: Ne ŝargita dinamike"
 msgid "%s: cannot delete: %s"
 msgstr "%s: Ne eblas forigi: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s estas dosierujo"
@@ -379,8 +379,7 @@ msgstr "%s: Ne ordinara dosiero"
 msgid "%s: file is too large"
 msgstr "%s: Tro granda dosiero"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: Neplenumebla duuma dosiero"
@@ -465,7 +464,8 @@ msgstr[1] "Ŝelaj komandoj kongruaj kun la ŝlosilvortoj '"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
 "Helpaĵo pri „%s‟ malestas.\n"
 "Provu «help help» aŭ «man -k %s» aŭ «info %s»."
@@ -502,7 +502,7 @@ msgstr "Ne pli ol unu el -anrw estas uzebla"
 msgid "history position"
 msgstr "pozicio en la historio"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: Historia malvolvo fiaskis"
@@ -525,7 +525,7 @@ msgstr "%s: Argumento estu proceznumero aŭ laborindiko"
 msgid "Unknown error"
 msgstr "Nekonata eraro"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "Mankas esprimo"
 
@@ -534,12 +534,12 @@ msgstr "Mankas esprimo"
 msgid "%s: not an indexed array"
 msgstr "%s: ĝi ne estas entjerindica tabelo"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: Misa indiko de dosiernumero"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: Misa dosiernumero: %s"
@@ -568,31 +568,31 @@ msgstr "Mankas nomo de tabelvariablo"
 msgid "array variable support required"
 msgstr "necesas subteno de tabelvariabloj"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s‟: Mankas formata signo"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%c: Misa tempoformato"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c‟: Misa signo formata"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "Averto: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "Mankas 16uma cifero por \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "Post „%c‟ mankas unikoda cifero"
@@ -629,10 +629,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Listigu la kurantan dosierujstakon. La dosierujoj trafas en\n"
@@ -740,35 +742,36 @@ msgstr ""
 "\n"
 "    Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: Misa indiko de atendotempo"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "Lega (read) eraro: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "„return‟ sencas nur en funkcio aŭ punkte vokita („.‟, „source‟) skripto"
+msgstr ""
+"„return‟ sencas nur en funkcio aŭ punkte vokita („.‟, „source‟) skripto"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "Ne eblas samtempe malaktivigi funkcion kaj variablon"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: Malaktivigo fiaskis"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: Malaktivigo fiaskis: nurlega %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: Ne tabela variablo"
@@ -782,11 +785,11 @@ msgstr "%s: Ne funkcio"
 msgid "shift count"
 msgstr "Nombrilo de „shift‟"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "Maleblas samtempe ŝalti kaj malŝalti ŝelan opcion"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: Misa nomo de ŝela opcio"
@@ -828,7 +831,7 @@ msgstr "%s estas funkcio\n"
 msgid "%s is a shell builtin\n"
 msgstr "„%s‟ estas primitiva komando de la ŝelo\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "„%s‟ estas „%s‟\n"
@@ -838,26 +841,26 @@ msgstr "„%s‟ estas „%s‟\n"
 msgid "%s is hashed (%s)\n"
 msgstr "„%s‟ estas metita en hakettabelon (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: Maltaŭga argumento por limo"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "„%c‟: Misa komando"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: Fiaskis provo legi limon: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limo"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: Malprosperis ŝanĝi limon: %s"
@@ -878,7 +881,7 @@ msgstr "„%c‟: Maltaŭga simbolo por atingorajta modifilo"
 msgid "`%c': invalid symbolic mode character"
 msgstr "„%c‟: La signo ne estas simbolo de atingorajta kategorio"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " linio "
 
@@ -892,23 +895,23 @@ msgstr "La ĵusa komando: %s\n"
 msgid "Aborting..."
 msgstr "Ĉesigado ..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "Nekonata komand-eraro"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "Misa komandotipo"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "Misa stir-operacio"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "Misa salto"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: Neligita variablo"
@@ -925,103 +928,118 @@ msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Fiaskis provo nomumi la disponaĵon «/dev/null» ĉefenigujo: %s"
 
 # XXX: internal error:
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c‟: Misa formatsigno"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "Eraro en dukto"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: Malpermesitas uzi „/‟ en komandonomoj"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: Komando ne trovita"
 
 # XXX: internal error:
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: Misa interpretilo"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: Neplenumebla duuma dosiero"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "„%s‟ estas primitiva komando de la ŝelo\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Ne eblas kunnomumi al dosiernumero %d la dosiernumeron %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "Tro profunda rekursio en esprimo"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "Rekursistako elĉerpita"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "Sintaksa eraro en esprimo"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "Provo valorizi ne-variablon"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "Divido per 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "CIMO: Misa operacisigno en kombinita valorizsimbolo"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "„:‟ mankas kondiĉa esprimo"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "Negativa eksponento"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "Post antaŭkremento aperu nomo de variablo"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "Mankas „)‟"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "Sintaksa eraro: Mankas operando"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "Sintaksa eraro: Misa operacisimbolo aritmetika"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (misa simbolo estas „%s‟)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "Maltaŭga bazo nombrosistema"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "Tro granda valoro por bazo de nombrosistemo"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: Misa esprimo\n"
@@ -1030,167 +1048,167 @@ msgstr "%s: Misa esprimo\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd: Ne eblas atingi patrajn dosierujojn"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "Ne eblas reŝalti senprokrastan reĝimon por dosiernumero %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "Maleblas disponigi novan dosiernumeron por Baŝa enigo el n-ro %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: La nova dosiernumero (fd %d) jam havas bufron"
 
 # ZZZ: sys_error (_("start_pipeline: pgrp pipe"));
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: procezgrupo dukto"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "Forke farita proceznumero %d aperas en rulata laboro %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "Haltigita laboro %d kun procezgrupo %ld estas forigata"
 
 # ifdef DEBUG ... internal_warning():
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) in the_pipeline"
 
 # ifdef DEBUG ... internal_warning():
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) marked as still alive"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: Ne estas tia proceznumero (%ld)!"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signalo %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Farite"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Haltigita"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Haltigita(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Rulata"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Farite(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Eliro %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Nekonata stato"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(nekropsio elŝutita)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (labordosierujo: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "provo atribui (setpgid) procezgrupon %2$ld de la procezido %1$ld"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: La procezo %ld ne estas ido de ĉi tiu ŝelo"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Malestas informoj pri procezo %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: La laboro %d estas haltigita"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: La laboro finiĝis"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: La laboro %d jam estas fona"
 
 # XXX: internal warning:
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: WNOHANG iĝas ŝaltita por eviti nedifintan pendiĝon"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: linio %dª: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr "(nekropsio elŝutita)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(nun labordosierujo estas: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp fiaskis"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: liniaranĝo"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid()"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "ne prosperis atribui grupon (%d) de terminala procezo"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "Ĉi tiu ŝelo ne disponigas laborregadon"
 
@@ -1272,7 +1290,7 @@ msgstr "register_alloc: %p jam en la tabelo kvazaŭ kreita (?)\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p jam en la tabelo kvazaŭ malokupita (?)\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "Misa bazo nombrosistema"
 
@@ -1300,25 +1318,25 @@ msgid "network operations not supported"
 msgstr "Reta funkciado ne disponeblas"
 
 # XXX: internal warning:
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: Maleblas ŝanĝi lokaĵaron (%s)"
 
 # XXX: internal warning:
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: Maleblas ŝanĝi lokaĵaron (%s): %s"
 
 # XXX: fatal_error
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: ne eblas ŝanĝi la lokaĵaron (%s)"
 
 # XXX: fatal_error
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: ne eblas ŝanĝi la lokaĵaron (%s): %s"
@@ -1349,121 +1367,121 @@ msgstr "Sintaksa eraro: Neatendita „;‟"
 msgid "syntax error: `((%s))'"
 msgstr "Sintaksa eraro: „((%s))‟"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: Misa ordontipo %d"
 
 # internal_warning():
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "Tuj-dokumenton de linio %d limigas dosierfino (mankas „%s‟)"
 
 # XXX: programming_error
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: Alidirektada komando „%d‟ ekster sia variejo"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "Neatendita dosierfino dum serĉo de responda „%c‟"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "Neatendita dosierfino dum serĉo de „]]‟"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "Sintaksa eraro en kondiĉa esprimo: Neatendita simbolo „%s‟"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "Sintaksa eraro en kondiĉa esprimo"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "Nekonvena simbolo „%s‟ anstataŭ „)‟"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "Mankas „)‟"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "La argumento „%s‟ ne konvenas por unuloka kondiĉa operacisimbolo"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "Maltaŭga argumento por unuloka kondiĉa operacisimbolo"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "Misa simbolo „%s‟ anstataŭ duloka kondiĉa operacisigno"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "ĉi tie devas esti duloka kondiĉa operacisigno"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "La argumento „%s‟ ne konvenas por duloka kondiĉa operacisimbolo"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "<maltaŭga argumento por duloka kondiĉa operacisimbolo"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "Misa simbolo „%c‟ en kondiĉa komando"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "Misa simbolo „%s‟ en kondiĉa komando"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "Misa simbolo „%d‟ en kondiĉa komando"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "Sintaksa eraro apud neatendita simbolo „%s‟"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "Sintaksa eraro apud „%s‟"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "Sintaksa eraro: Neatendita dosierfino"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "Sintaksa eraro"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Uzu «%s» por eliri el la ŝelo.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Neatendita dosierfino dum serĉo de responda „)‟"
 
 # XXX: internal_error
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "Kompletigo: Funkcio „%s‟ ne trovita"
@@ -1474,29 +1492,29 @@ msgstr "Kompletigo: Funkcio „%s‟ ne trovita"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: Misa stir-operacio „%d‟"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: Misa dosiernumero"
 
 # XXX: internal error:
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: dosierreferenco == NULL"
 
 # XXX: internal error:
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
 # XXX: programming_error
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c‟: Misa formatsigno"
@@ -1539,33 +1557,33 @@ msgstr "%s: Maleblas konservi la dosiernumeron en la variablo"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "«/dev/(tcp|udp)/host/port» ne disponeblas ekster retumado"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "Alidirektada eraro: Fiaskis kunnomumo al dosiernumero"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "Mankas «/tmp», bv krei ĝin!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "«/tmp» devas esti valida dosierujo"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: Misa opcio"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Mi ne havas nomon!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNUa «bash», versio %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1574,41 +1592,41 @@ msgstr ""
 "Uzo:\t%s [GNUa opcio longforma] [opcio] ...\n"
 "\t%s [GNUa opcio longforma] [opcio] SKRIPTODOSIERO ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNUaj opcioj longformaj:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Ŝelaj opcioj:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD aŭ -c komando aŭ -O shopt_opcio\t\t(nur voko)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s aŭ -o opcio\n"
 
 # bash --help
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Por pluaj informoj pri la opcioj tajpu: «%s -c \"help set\"»\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Por scii pli pri la primitivaj ŝelkomandoj tajpu: „%s -c help‟\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Por raporti pri eraroj uzu la komandon „bashbug‟\n"
 
 # XXX: internal_error
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: Misa operacio"
@@ -1821,82 +1839,85 @@ msgstr "Nekonata signalnumero"
 msgid "Unknown Signal #%d"
 msgstr "Nekonata signalo n-ro %d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "Misa anstataŭigo: Mankas ferma „%s‟ en %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: Maleblas valorizi tabelanon per listo"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "Ne prosperis fari dukton por proceza anstataŭigo"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "Ne prosperis krei idon por proceza anstataŭigo"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "Ne prosperis malfermi nomitan dukton %s porlegan"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "Ne prosperis malfermi nomitan dukton %s por skribado"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "Ne prosperis kunnomumi nomhavan dukton %s kiel dosiernumeron %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "Ne prosperis fari dukton por komanda anstataŭigo"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "Ne prosperis krei procezidon por komanda anstataŭigo"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: Ne prosperis kunnomumi la dosiernumeron 1 al dukto"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: Parametro estas NUL aŭ malaktiva"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: subĉeno-esprimo < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: Misa anstataŭigo"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: ĉi tiel ne valorizebla"
 
 # XXX: internal warning:
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "Ontaj versioj de la ŝelo plenumos komputon kiel aritmetikan anstataŭigon"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"Ontaj versioj de la ŝelo plenumos komputon kiel aritmetikan anstataŭigon"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Misa anstataŭigo: Mankas ferma „`‟ en %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "Nenio kongrua: %s"
@@ -1933,89 +1954,91 @@ msgstr "%s: Tie devas esti duloka operacisigno"
 msgid "missing `]'"
 msgstr "Mankas „]‟"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "Misa signalnumero"
 
 # XXX: internal_warning
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: Misa valoro en trap_list[%d]: %p"
 
 # XXX: internal_warning
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: Signaltraktilo SIG_DFL resendas %d (%s) al mi mem"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Misa signalnumero %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "Eraro ĉe importo de funkcidifino por „%s‟"
 
 # XXX: internal_warning
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "%d estas tro granda ŝelnivelo; mallevita ĝis 1"
 
 # XXX: internal_error
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: Malestas funkcia kunteksto en ĉi-regiono"
 
 # XXX: internal_error
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: Malestas funkcia kunteksto en ĉi-regiono"
 
 # XXX: internal_error
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "«exportstr» de %s estas NUL"
 
 # XXX: internal_error
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "Misa signo %d en eksporta signoĉeno por „%s‟"
 
 # XXX: internal_error
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "Mankas „=‟ en eksporta signoĉeno por „%s‟"
 
 # XXX: internal_error
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: La kapo de „shell_variables‟ ne estas funkcia kunteksto"
+msgstr ""
+"pop_var_context: La kapo de „shell_variables‟ ne estas funkcia kunteksto"
 
 # XXX: internal_error
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: Mankas kunteksto de „global_variables‟"
 
 # XXX: internal_error
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: La kapo de „shell_variables‟ ne estas provizora regiono"
 
 # XXX: internal_error
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: Ne malfermeblas kiel DOSIERO"
 
 # XXX: internal_error
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: Misa valoro por spurada dosiernumero (trace file descriptor)"
@@ -2025,7 +2048,9 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 ĉe «Free Software Foundation, Inc.»"
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
 msgstr ""
 "La permesilo estas GPLv3+; t.e. GNU GPL, versio 3ª aŭ pli nova.\n"
 "La tekston vd ĉe <http://gnu.org/licenses/gpl.html>\n"
@@ -2038,12 +2063,14 @@ msgstr "GNUa «bash», versio %s (%s)\n"
 #: version.c:91 version2.c:88
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "Ĉi tiu programo estas libera; vi rajtas libere ĝin ŝanĝi kaj pludoni.\n"
+msgstr ""
+"Ĉi tiu programo estas libera; vi rajtas libere ĝin ŝanĝi kaj pludoni.\n"
 
 #: version.c:92 version2.c:89
 #, c-format
 msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "NENIA GARANTIO estas donita, tiom kiom tion permesas la koncerna leĝo.\n"
+msgstr ""
+"NENIA GARANTIO estas donita, tiom kiom tion permesas la koncerna leĝo.\n"
 
 #: version2.c:86
 #, c-format
@@ -2052,7 +2079,9 @@ msgstr "Copyright (C) 2009 ĉe «Free Software Foundation, Inc.»\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
 msgstr ""
 "La permesilo estas GPLv2+; t.e. GNU GPL, versio 2ª aŭ pli nova.\n"
 "Ties tekston vd ĉe <http://gnu.org/licenses/gpl.html>\n"
@@ -2088,7 +2117,10 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] NOMO [NOMO ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m KLAVARTABELO] [-f DOSIERNOMO] [-q NOMO]\n"
 "          [-u NOMO] [-r KLAVAĴO] [-x KLAVAĴO:ŜELKOMANDO]\n"
@@ -2201,7 +2233,9 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [ŜABLONO ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
 msgstr ""
 "history [-c] [-d DEŜOVO] [n] aŭ\n"
 "history -awr [DOSIERNOMO] aŭ\n"
@@ -2218,7 +2252,9 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [LABORINDIKO ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
 msgstr ""
 "kill [-s SIGSNOM | -n SIGNUM | -SIGNOM] [PN | LABORINDIKO] ... aŭ\n"
 "kill -l [SIGNOM]"
@@ -2228,7 +2264,9 @@ msgid "let arg [arg ...]"
 msgstr "let ARG [ARG ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
 msgstr ""
 "read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO]\n"
 "     [-n NSIGN] [-N NSIGN] [-p INVIT] [-t TLIM]\n"
@@ -2291,7 +2329,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] NOMO [NOMO ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [LIMO]"
 
 #: builtins.c:172
@@ -2299,7 +2338,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [REĜIMO]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [IND]"
 
 #: builtins.c:179
@@ -2327,8 +2367,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case VORTO in [ŜABLONO [| ŜABLONO]...) KOMANDOJ ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if KOMANDOJ; then KOMANDOJ; [ elif KOMANDOJ; then KOMANDOJ; ]... [ else KOMANDOJ; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if KOMANDOJ; then KOMANDOJ; [ elif KOMANDOJ; then KOMANDOJ; ]... [ else "
+"KOMANDOJ; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2389,27 +2433,42 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v VAR] FORMATO [ARGUMENTOJ]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
 msgstr ""
 "complete [-abcdefgjksuv] [-pr] [-DE] [-o OPCIO] [-A AGO] [-G GLOBŜAB]\n"
 "         [-W VORTLISTO]  [-F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB]\n"
 "         [-P PREFIKSO] [-S SUFFIKSO] [NOMO ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o OPCIO]  [-A AGO] [-G GLOBŜAB] [-W vORTLISTO]  [-F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB] [-P PREFIKSO] [-S SUFFIKSO] [VORTO]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o OPCIO]  [-A AGO] [-G GLOBŜAB] [-W vORTLISTO]  [-"
+"F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB] [-P PREFIKSO] [-S SUFFIKSO] [VORTO]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o OPCIO] [-DE] [NOMO ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO] [-c KVANTO] [TABELO]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO] "
+"[-c KVANTO] [TABELO]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO] [-c KVANTO] [TABELO]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C "
+"RETROVOKO] [-c KVANTO] [TABELO]"
 
 #  alias:
 #: builtins.c:254
@@ -2427,7 +2486,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Difinu aŭ listigu alinomojn.\n"
@@ -2467,6 +2527,7 @@ msgstr ""
 #      [-r KLAVAĴO] [-x KLAVAĴO:ŜELKOMANDO]
 #      [KLAVAĴO:READLINE-FUNKCIO AŬ READLINE-KOMANDO]
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2478,24 +2539,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2532,7 +2599,7 @@ msgstr ""
 "    0, krom se nekonata opcio estas donita aŭ eraro okazis."
 
 # exit:
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2551,7 +2618,7 @@ msgstr ""
 "    Ĝi estas 0, kondiĉe ke N estas pli granda ol aŭ egala al 1."
 
 # continue:
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2572,13 +2639,14 @@ msgstr ""
 
 # builtin [shell-builtin [arg ...]]
 # builtin [ŜELAĴO [ARG ...]]
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2597,7 +2665,7 @@ msgstr ""
 
 # caller [expr] =>
 # caller [ESPRIMO]
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2626,33 +2694,46 @@ msgstr ""
 "    estas valida."
 
 # cd:
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Ŝanĝu la kurantan laboran dosierujon de la ŝelo.\n"
@@ -2684,7 +2765,7 @@ msgstr ""
 "    $PWD sukcese valoriziĝis; nenulo aliokaze."
 
 # pwd [-LP]
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2713,7 +2794,7 @@ msgstr ""
 "    0, krom se aperas misa opcio aŭ la kuranta dosierujo estas\n"
 "    nelegebla."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2730,7 +2811,7 @@ msgstr ""
 "    Ĉiam sukcesa."
 
 # true
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2743,7 +2824,7 @@ msgstr ""
 "    Ĉiam sukcesa."
 
 # false:
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2757,12 +2838,13 @@ msgstr ""
 
 # command [-pVv] command [arg ...]
 # command [-pVv] KOMANDO [ARG ...]
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2792,7 +2874,7 @@ msgstr ""
 
 # declare [-afFirtx] [-p] [name[=value] ...]
 # declare [-aAfFilrtux] [-p] [NOMO[=VALORO] ...]
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2822,7 +2904,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2863,7 +2946,7 @@ msgstr ""
 "    Sukceso, krom se aperas misa opcio aŭ okazas eraro."
 
 # typeset [-aAfFilrtux] [-p] name[=value] ...
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2875,7 +2958,7 @@ msgstr ""
 
 # local [option] name[=value] ...
 # local [OPCIO] NOMO[=VALORO] ...
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2902,11 +2985,14 @@ msgstr ""
 "    estas plenumanta funkcion."
 
 # echo:
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2918,6 +3004,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2962,7 +3049,7 @@ msgstr ""
 "    Sukcesa, krom se okazas elig-eraro."
 
 # echo [-n] [ARG ...]
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2986,7 +3073,7 @@ msgstr ""
 
 # enable [-a] [-dnps] [-f filename] [name ...]
 # enable [-a] [-dnps] [-f DOSIERNOMO] [NOMO ...]
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -3038,11 +3125,12 @@ msgstr ""
 "    eraro."
 
 # eval [ARG ...]
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3058,7 +3146,7 @@ msgstr ""
 
 # getopts optstring name [arg] =>
 # getopts OPCIĈENO NOMO [ARG]
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3138,12 +3226,13 @@ msgstr ""
 
 # exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
 # exec [-cl] [-a NOMO] [KOMANDO [ARGUMENTOJ ...]] [ALIDIREKTADO ...]
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3151,11 +3240,13 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Anstataŭigu la ŝelon je la donita komando\n"
 "\n"
@@ -3177,7 +3268,7 @@ msgstr ""
 "    alirektado."
 
 # exit [n]
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3190,11 +3281,12 @@ msgstr ""
 "    estas tiu de la plej ĵuse plenumita komando."
 
 # logout [N]
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Adiaŭ, saluta ŝelo!\n"
@@ -3206,17 +3298,19 @@ msgstr ""
 #      fc -s [pat=rep] [command] =>
 # fc [-e REDAKTILO] [-lnr] [UNUA] [LASTA] aŭ
 # fc -s [ŜABLONO=ANST] [KOMANDO]
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3230,7 +3324,8 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Eligu aŭ plenumu komandojn el la historilisto\n"
 "\n"
@@ -3258,7 +3353,7 @@ msgstr ""
 "    eraro."
 
 # fg [job_spec] => fg [LABORINDIKO]
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3279,12 +3374,14 @@ msgstr ""
 "    Tiu de la dialogigita komando; aŭ malsukceso, se okazis eraro."
 
 # bg [job_spec] => bg [LABORINDIKO]
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3301,12 +3398,13 @@ msgstr ""
 "    eraro."
 
 # hash [-lr] [-p VOJNOMO] [-dt] [NOMO ...]
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3346,7 +3444,7 @@ msgstr ""
 
 # help [-ds] [pattern ...]
 # help [-ds] [ŜABLONO ...]
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3364,7 +3462,8 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Vidigu informon pri prmitivaj komandoj\n"
 "\n"
@@ -3390,7 +3489,7 @@ msgstr ""
 # history [-c] [-d DEŜOVO] [n] aŭ
 # history -awr [DOSIERNOMO] aŭ
 # history -ps ARG [ARG...]
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3417,7 +3516,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3462,7 +3562,7 @@ msgstr ""
 #     jobs -x command [args] =>
 # jobs [-lnprs] [LABORINDIKO ...] aŭ
 # jobs -x KOMANDO [ARGS]
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3508,7 +3608,7 @@ msgstr ""
 "    Ĉe „-x‟, la elirstato de la KOMANDO."
 
 # disown [-h] [-ar] [jobspec ...]
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3544,7 +3644,7 @@ msgstr ""
 #      kill -l [sigspec] =>
 # kill [-s SIGSNOM | -n SIGNUM | -SIGNOM] PN | LABORINDIKO ... aŭ
 # kill -l [SIGNOM]
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3588,14 +3688,15 @@ msgstr ""
 
 # let arg [arg ...]
 # let ARG [ARG ...]
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3677,18 +3778,22 @@ msgstr ""
 #      [-p prompt] [-t timeout] [-u fd] [name ...]
 # read [-ers] [-a TABELO] [-d DISIG] [-i TEKSTO] [-n NSIGN] [-N NSIGN]
 #      [-p INVIT] [-t TLIM] [-u DN] [NOMO ...]
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3700,22 +3805,28 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Legu linion el la ĉefenigujo kaj disigu ĝin en kampojn\n"
@@ -3761,7 +3872,7 @@ msgstr ""
 
 # return [n]
 # return [N]
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3783,7 +3894,8 @@ msgstr ""
 
 # set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
 # set [-abefhkmnptuvxBCHP] [-o OPCINOMO] [--] [ARG ...]
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3826,7 +3938,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3848,7 +3961,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3951,7 +4064,7 @@ msgstr ""
 
 # unset [-f] [-v] [name ...]
 # unset [-f] [-v] [NOMO ...]
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3961,7 +4074,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3988,12 +4102,13 @@ msgstr ""
 
 # export [-fn] [name[=value] ...] or export -p
 # export [-fn] [NOMO[=VALORO] ...]  aŭ  export -p
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -4023,7 +4138,7 @@ msgstr ""
 
 # readonly [-af] [name[=value] ...] or readonly -p
 # readonly [-aAf] [NOMO[=VALORO] ...]  aŭ  readonly -p
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4060,7 +4175,7 @@ msgstr ""
 "    Sukceso, krom se aperas nevalida nomo aŭ misa opcio."
 
 # shift [n]
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4077,7 +4192,7 @@ msgstr ""
 
 # source filename [arguments]
 # source DOSIERNOMO [ARGUMENTOJ]
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4102,7 +4217,7 @@ msgstr ""
 "    DOSIERNOMO ne legeblas."
 
 # suspend [-f]
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4128,7 +4243,7 @@ msgstr ""
 
 # test [expr]
 # test [ESPRIMO]
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4162,7 +4277,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4183,7 +4299,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4279,7 +4396,7 @@ msgstr ""
 "    argumento."
 
 # [ arg... ]
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4289,11 +4406,12 @@ msgstr ""
 "Ĉi tiu estas sinonimo de la primitivo „test‟; tamen la lasta\n"
 "    argumento devas esti „]‟ fermanta la esprimon komencitan per „[‟."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4309,11 +4427,12 @@ msgstr ""
 
 # trap [-lp] [[arg] signal_spec ...]
 # trap [-lp] [[ARG] SIGNALINDIKO ...]
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4322,26 +4441,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Kaptu signalojn kaj aliajn eventojn\n"
 "\n"
@@ -4379,7 +4506,7 @@ msgstr ""
 
 # type [-afptP] name [name ...]
 # type [-afptP] NOMO [NOMO ...]
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4405,7 +4532,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Vidigu informon pri tipo de komando\n"
 "\n"
@@ -4436,11 +4564,13 @@ msgstr ""
 
 # ulimit [-SHacdefilmnpqrstuvx] [limit]
 # ulimit [-SHacdefilmnpqrstuvx] [LIMO]
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4464,6 +4594,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4519,7 +4652,7 @@ msgstr ""
 
 # umask [-p] [-S] [mode]
 # umask [-p] [-S] [REĜIMO]
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4554,19 +4687,22 @@ msgstr ""
 
 # wait [id]
 # wait [IND]
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Atendu ke laboro finiĝu, kaj liveru elirstaton\n"
 "\n"
@@ -4582,7 +4718,7 @@ msgstr ""
 
 # wait [pid]
 # wait [PN]
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4591,7 +4727,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Atendu ke procezo finiĝu, kaj liveru elirstaton\n"
@@ -4606,7 +4743,7 @@ msgstr ""
 
 # for NAME [in WORDS ... ] ; do COMMANDS; done
 # for NOMO [in VORTOJ ... ] ; do KOMANDOJ; done
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4630,7 +4767,7 @@ msgstr ""
 
 # for (( exp1; exp2; exp3 )); do COMMANDS; done
 # for (( ESPR1; ESPR2; ESPR3 )); do KOMANDOJ; done
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4662,7 +4799,7 @@ msgstr ""
 
 # select NAME [in WORDS ... ;] do COMMANDS; done
 # select NONO [in VORTOJ ... ;] do KOMANDOJ; done
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4699,7 +4836,7 @@ msgstr ""
 
 # time [-p] PIPELINE
 # time [-p] DUKTO
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4730,7 +4867,7 @@ msgstr ""
 
 # case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
 # case VORTO in [ŜABLONO [| ŜABLONO]...) KOMANDOJ ;;]... esac
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4752,16 +4889,21 @@ msgstr ""
 # [ else COMMANDS; ] fi
 # if KOMANDOJ; then KOMANDOJ;[ elif KOMANDOJ; then KOMANDOJ; ]...
 # [ else KOMANDOJ; ] fi
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4779,7 +4921,7 @@ msgstr ""
 
 # while COMMANDS; do COMMANDS; done
 # while KOMANDOJ; do KOMANDOJ; done
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4799,7 +4941,7 @@ msgstr ""
 
 # until COMMANDS; do COMMANDS; done
 # until KOMANDOJ; do KOMANDOJ; done
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4819,7 +4961,7 @@ msgstr ""
 
 # coproc [NAME] command [redirections]
 # coproc [NOMO] KOMANDO [ALIDIREKTADOJ]
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4843,12 +4985,13 @@ msgstr ""
 
 # function name { COMMANDS ; } or name () { COMMANDS ; }
 # function NOMO { KOMANDOJ ; }  aŭ  NOMO () { KOMANDOJ ; }
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4867,7 +5010,7 @@ msgstr ""
 
 # grouping_braces: { COMMANDS ; }
 # { KOMANDOJ ; }
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4887,7 +5030,7 @@ msgstr ""
 
 # job_spec [&]
 # LABORINDIKO [&]
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4912,7 +5055,7 @@ msgstr ""
 
 # (( expression ))
 # (( ESPRIMO ))
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4932,13 +5075,16 @@ msgstr ""
 
 # [[ expression ]]
 # [[ ESPRIMO ]]
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4980,7 +5126,7 @@ msgstr ""
 
 # help var
 # variables - Names and meanings of some shell variables
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5087,7 +5233,7 @@ msgstr ""
 
 # pushd [-n] [+N | -N | dir]
 # pushd [-n] [+N | -N | DOSIERUJO]
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5146,7 +5292,7 @@ msgstr ""
 "    Sukceso, krom se aperas misa argumento aŭ se cd malsukcesas."
 
 # popd [-n] [+N | -N]
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5195,7 +5341,7 @@ msgstr ""
 "    Sukceso, krom se aperas misa argumento aŭ se cd malsukcesas."
 
 # dirs [-clpv] [+N] [-N]
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5212,10 +5358,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5247,12 +5395,13 @@ msgstr ""
 
 # shopt [-pqsu] [-o] [optname ...]
 # shopt [-pqsu] [-o] [OPCINOMO ...]
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5285,7 +5434,8 @@ msgstr ""
 
 # printf [-v var] format [arguments]
 # printf [-v VAR] FORMATO [ARGUMENTOJ]
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5293,22 +5443,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Aranĝu kaj eligu argumentojn argumentojn laŭ formato\n"
@@ -5334,12 +5490,14 @@ msgstr ""
 # complete [-abcdefgjksuv] [-pr] [-DE] [-o OPCIO] [-A AGO] [-G GLOBŜAB]
 #          [-W VORTLISTO]  [-F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB]
 #          [-P PREFIKSO] [-S SUFFIKSO] [NOMO ...]
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5385,12 +5543,13 @@ msgstr ""
 # compgen [-abcdefgjksuv] [-o OPCIO]  [-A AGO] [-G GLOBŜAB]
 #      [-W vORTLISTO]  [-F FUNKCIO] [-C KOMANDO] [-X FILTROŜAB]
 #      [-P PREFIKSO] [-S SUFFIKSO] [VORTO]
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5405,13 +5564,16 @@ msgstr ""
 "    Sukceso, krom se aperas misa opcio aŭ okazas eraro."
 
 # compopt [-o|+o OPCIO] [-DE] [NOMO ...]
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5461,22 +5623,28 @@ msgstr ""
 #      [-c quantum] [array]
 # mapfile [-n NOMBRILO] [-O ORIGINO] [-s NOMBRILO] [-t] [-u DN] [-C RETROVOKO]
 #      [-c KVANTO] [TABELO] 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5486,11 +5654,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Legu liniojn el la ĉefenigujo en tabelvariablon\n"
@@ -5527,7 +5697,7 @@ msgstr ""
 
 # readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback]
 #        [-c quantum] [array]
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 309e997582adbe0bfc954c28a4792da62eb307c4..580e0daef6d1d5cf98ac63168d418aabae3f9a90 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index d95fa3059a139de0b95f32aeac7f3d5ca9dd6064..85518227b1123a34c5c06356dc9a7228a2b0ab5c 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-08-14 11:55-0500\n"
 "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -17,50 +17,52 @@ msgstr ""
 "Content-Transfer-Encoding: 8-bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "subíndice de matriz incorrecto"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: no se puede convertir la matriz de indizada a asociativa"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: índice de matriz asociativa inválido"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: no se puede asignar a un índice que no es numérico"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: se debe usar un subíndice al asignar a una matriz asociativa"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: no se puede crear: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: no se puede encontrar la combinación de teclas para la orden"
+msgstr ""
+"bash_execute_unix_command: no se puede encontrar la combinación de teclas "
+"para la orden"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: el primer carácter que no es espacio en blanco no es `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "no hay un `%c' que cierre en %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: falta un `:' separador"
@@ -70,36 +72,36 @@ msgstr "%s: falta un `:' separador"
 msgid "`%s': invalid alias name"
 msgstr "`%s': nombre de alias inválido"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "no se activó la edición de línea"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': nombre de combinación de teclas inválido"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: no se puede leer: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: no se puede borrar la asignación"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': nombre de función desconocido"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s no está asignado a ninguna tecla.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s se puede invocar a través de "
@@ -122,11 +124,15 @@ msgstr ""
 "    \n"
 "    Sin EXPR, devuelve "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME no está definido"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "demasiados argumentos"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD no está definido"
 
@@ -135,7 +141,7 @@ msgstr "OLDPWD no está definido"
 msgid "line %d: "
 msgstr "línea %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "aviso: "
@@ -145,11 +151,7 @@ msgstr "aviso: "
 msgid "%s: usage: "
 msgstr "%s: uso: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "demasiados argumentos"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: la opción requiere un argumento"
@@ -164,7 +166,7 @@ msgstr "%s: se requiere un argumento numérico"
 msgid "%s: not found"
 msgstr "%s: no se encontró"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: opción inválida"
@@ -174,7 +176,7 @@ msgstr "%s: opción inválida"
 msgid "%s: invalid option name"
 msgstr "%s: nombre de opción inválido"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': no es un identificador válido"
@@ -187,7 +189,7 @@ msgstr "número octal inválido"
 msgid "invalid hex number"
 msgstr "número hexadecimal inválido"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "número inválido"
 
@@ -201,7 +203,7 @@ msgstr "%s: especificación de señal inválida"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': no es un pid o una especificación válida de trabajo"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variable de sólo lectura"
@@ -273,26 +275,26 @@ msgstr "%s: error al obtener el directorio actual: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: especificación de trabajo ambigua"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: nombre de acción inválido"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: no hay completado de especificación"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "aviso: es posible que la opción -F no funcione como se espera"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "aviso: es posible que la opción -C no funcione como se espera"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "no se está ejecutando la función de completado"
 
@@ -306,7 +308,7 @@ msgstr "sólo se puede usar dentro de una función"
 msgid "cannot use `-f' to make functions"
 msgstr "no se puede usar `-f' para hacer funciones"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: función de sólo lectura"
@@ -316,7 +318,7 @@ msgstr "%s: función de sólo lectura"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: no se pueden destruir variables de matriz de esta forma"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: no se puede convertir una matriz asociativa a indizada"
@@ -345,8 +347,8 @@ msgstr "%s: no se cargó dinámicamente"
 msgid "%s: cannot delete: %s"
 msgstr "%s: no se puede borrar: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: es un directorio"
@@ -363,8 +365,7 @@ msgstr "%s: el fichero es demasiado grande"
 
 # file=fichero. archive=archivo. Si no, es imposible traducir tar. sv
 # De acuerdo. Corregido en todo el fichero. cfuga
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: no se puede ejecutar el fichero binario"
@@ -448,8 +449,11 @@ msgstr[1] "Órdenes del shell que coinciden con la palabra `"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "no hay temas de ayuda que coincidan con `%s'.  Pruebe `help help' o `man -k %s' o `info %s'."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"no hay temas de ayuda que coincidan con `%s'.  Pruebe `help help' o `man -k "
+"%s' o `info %s'."
 
 #: builtins/help.def:185
 #, c-format
@@ -474,7 +478,8 @@ msgstr ""
 "Use `man -k' o `info' para saber más sobre las órdenes que no están en\n"
 "esta lista.\n"
 "\n"
-"Un asterisco (*) junto a un nombre significa que el comando está desactivado.\n"
+"Un asterisco (*) junto a un nombre significa que el comando está "
+"desactivado.\n"
 "\n"
 
 #: builtins/history.def:154
@@ -485,7 +490,7 @@ msgstr "no se puede usar más de uno de -anrw"
 msgid "history position"
 msgstr "posición en la historia"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: falló la expansión de la historia"
@@ -508,7 +513,7 @@ msgstr "%s: los argumentos deben ser procesos o IDs de trabajos"
 msgid "Unknown error"
 msgstr "Error desconocido"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "se esperaba una expresión"
 
@@ -517,12 +522,12 @@ msgstr "se esperaba una expresión"
 msgid "%s: not an indexed array"
 msgstr "%s: no es una matriz indizada"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: especificación de descriptor de fichero inválida"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descriptor de fichero inválido: %s"
@@ -550,31 +555,31 @@ msgstr "nombre de variable de matriz vacío"
 msgid "array variable support required"
 msgstr "se requiere el soporte de variable de matriz"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': falta el carácter de formato"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': especificación de formato de tiempo inválida"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': carácter de formato inválido"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "aviso: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "falta el dígito hexadecimal para \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "falta el dígito unicode para \\%c"
@@ -610,10 +615,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Muestra la lista de directorios actualmente grabados.  Los directorios\n"
@@ -719,35 +726,36 @@ msgstr ""
 "    \n"
 "    La orden interna `dirs' muestra la pila de directorios."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: especificación de tiempo de expiración inválida"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "error de lectura: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "sólo se puede usar `return' en una función o un guión leído con `source'"
+msgstr ""
+"sólo se puede usar `return' en una función o un guión leído con `source'"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "no se puede borrar al mismo tiempo una función y una variable"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: no se puede borrar"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: no se puede borrar: %s es de solo lectura"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: no es una variable de matriz"
@@ -761,11 +769,11 @@ msgstr "%s: no es una función"
 msgid "shift count"
 msgstr "cuenta de shift"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "no se pueden activar y desactivar opciones del shell simultáneamente"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nombre de opción del shell inválido"
@@ -807,7 +815,7 @@ msgstr "%s: es una función\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s es una orden interna del shell\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s is %s\n"
@@ -817,26 +825,26 @@ msgstr "%s is %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s está asociado (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: límite de argumento inválido"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': orden errónea"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: no se puede obtener el límite: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "límite"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: no se puede modificar el límite: %s"
@@ -855,7 +863,7 @@ msgstr "`%c': operador de modo simbólico inválido"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': carácter de modo simbólico inválido"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " línea "
 
@@ -869,23 +877,23 @@ msgstr "última orden: %s\n"
 msgid "Aborting..."
 msgstr "Abortando..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "error de orden desconocido"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "tipo de orden erróneo"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "conector erróneo"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "salto erróneo"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variable sin asignar"
@@ -900,107 +908,125 @@ msgstr "\aha expirado mientras esperaba alguna entrada: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "no se puede redirigir la salida estándar desde /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': carácter de formato inválido"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "error de tubería"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: no se encontró la orden"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: intérprete erróneo"
 
-#: execute_cmd.c:5144
+# file=fichero. archive=archivo. Si no, es imposible traducir tar. sv
+# De acuerdo. Corregido en todo el fichero. cfuga
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: no se puede ejecutar el fichero binario"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s es una orden interna del shell\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "no se puede duplicar el df %d al df %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "se ha excedido el nivel de recursión de la expresión"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "desbordamiento de la base de la pila de recursión"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "error sintáctico en la expresión"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "se intentó asignar a algo que no es una variable"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "división por 0"
 
 # token en bison fue traducido como terminal. ¿Lo traducimos igual aquí
 # o lo dejamos como 'unidad' o 'elemento'? cfuga
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bicho: elemento de asignación de expresión erróneo"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "se esperaba `:' para la expresión condicional"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exponente menor que 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr "se esperaba un identificador después del pre-incremento o pre-decremento"
+msgstr ""
+"se esperaba un identificador después del pre-incremento o pre-decremento"
 
 # falta , singular em+
 # mmmh, puede faltar más de un paréntesis cfuga
 # tiene razón Enrique, es singular. cfuga
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "falta un `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "error sintáctico: se esperaba un operando"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "error sintáctico: operador aritmético inválido"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (el elemento de error es \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "base aritmética inválida"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valor demasiado grande para la base"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: error de expresión\n"
@@ -1009,167 +1035,170 @@ msgstr "%s: error de expresión\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: no se puede acceder a los directorios padre"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "no se puede reestablecer el modo nodelay para el df %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "no se puede asignar un nuevo descriptor de fichero para la entrada de bash desde el df %d"
+msgstr ""
+"no se puede asignar un nuevo descriptor de fichero para la entrada de bash "
+"desde el df %d"
 
 # buffer: espacio intermedio , alojamiento intermedio ( me gusta menos )
 # em+
 # almacenamiento intermedio. cfuga
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr "save_bash_input: el almacenamiento intermedio ya existe para el nuevo df %d"
+msgstr ""
+"save_bash_input: el almacenamiento intermedio ya existe para el nuevo df %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: tubería de pgrp"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "el pid `forked' %d aparece en el trabajo en ejecución %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "borrando el trabajo detenido %d con grupo de proceso %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: el proceso %5ld (%s) en the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) se marca como vivo aún"
 
 # Cambiaría 'hay' por 'existe' em+
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: no existe tal pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Señal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Hecho"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Detenido"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Detenido(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Ejecutando"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Hecho(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Salida %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Estado desconocido"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(`core' generado) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (dir ahora: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid hijo (%ld a %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld no es un proceso hijo de este shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: No hay un registro del proceso %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: el trabajo %d está detenido"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: el trabajo ha terminado"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: el trabajo %d ya está en segundo plano"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: se activa WNOHANG para evitar el bloque indefinido"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: línea %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (`core' generado)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(dir ahora: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs_control: falló getpgrp"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs_control: disciplina de línea"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "no se puede establecer el grupo de proceso de terminal (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "no hay control de trabajos en este shell"
 
@@ -1205,7 +1234,8 @@ msgstr "free: se llamó con un argumento de bloque sin asignar"
 
 #: lib/malloc/malloc.c:896
 msgid "free: underflow detected; mh_nbytes out of range"
-msgstr "free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
+msgstr ""
+"free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
 
 #: lib/malloc/malloc.c:902
 msgid "free: start and end chunk sizes differ"
@@ -1217,7 +1247,8 @@ msgstr "realloc: se llamó con un argumento de bloque sin asignar"
 
 #: lib/malloc/malloc.c:1016
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
+msgstr ""
+"realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango"
 
 #: lib/malloc/malloc.c:1022
 msgid "realloc: start and end chunk sizes differ"
@@ -1238,7 +1269,7 @@ msgstr "register_alloc: ¿%p ya está en la tabla como asignado?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: ¿%p ya está en la tabla como libre?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "base inválida"
 
@@ -1261,22 +1292,22 @@ msgstr "%s: especificación de ruta de red errónea"
 msgid "network operations not supported"
 msgstr "no hay soporte para operaciones de red"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: no se puede cambiar el local (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: no se puede cambiar el local (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: no se puede cambiar el local (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: no se puede cambiar el local (%s): %s"
@@ -1307,86 +1338,89 @@ msgstr "error sintáctico: `;' inesperado"
 msgid "syntax error: `((%s))'"
 msgstr "error sintáctico: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipo de instrucción %d erróneo"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "el documento-aquí en la línea %d está delimitado por fin-de-fichero (se esperaba `%s')"
+msgstr ""
+"el documento-aquí en la línea %d está delimitado por fin-de-fichero (se "
+"esperaba `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr "make_redirection: la instrucción de redirección `%d' está fuera de rango"
+msgstr ""
+"make_redirection: la instrucción de redirección `%d' está fuera de rango"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "EOF inesperado mientras se buscaba un `%c' coincidente"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "EOF inesperado mientras se buscaba `]]'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "error sintáctico en la expresión condicional: elemento inesperado `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "error sintáctico en la expresión condicional"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "elemento inesperado `%s', se esperaba `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "se esperaba `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argumento inesperado `%s' para el operador unario condicional"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "argumento inesperado para el operador unario condicional"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "elemento inesperado `%s', se esperaba un operador binario condicional"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "se esperaba un operador binario condicional"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argumento inesperado `%s' para el operador binario condicional"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "argumento inesperado para el operador binario condicional"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "elemento inesperado `%c' en la orden condicional"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "elemento inesperado `%s' en la orden condicional"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "elemento inesperado %d en la orden condicional"
@@ -1397,12 +1431,12 @@ msgstr "elemento inesperado %d en la orden condicional"
 # provocado por el símbolo. Simplemente estar cerca del mismo. cfuga
 # Por consistencia con el siguiente, yo borraría la coma. sv
 # Cierto. Coma borrada. cfuga
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "error sintáctico cerca del elemento inesperado `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "error sintáctico cerca de `%s'"
@@ -1411,24 +1445,24 @@ msgstr "error sintáctico cerca de `%s'"
 # no se esperaba el final de la línea em+
 # Ojo, que end of file es fin de fichero, no de línea. sv
 # Se hicieron ambos cambios. cfuga
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "error sintáctico: no se esperaba el final del fichero"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "error sintáctico"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use \"%s\" para dejar el shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF inesperado mientras se buscaba un `)' coincidente"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: no se encuentra la función `%s'"
@@ -1438,26 +1472,26 @@ msgstr "completion: no se encuentra la función `%s'"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: COMPSPEC nulo"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector erróneo `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: descriptor de fichero inválido"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: puntero a fichero NULL"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': carácter de formato inválido"
@@ -1495,19 +1529,19 @@ msgstr "%s: no se puede asignar el fd a la variable"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "no se admite /dev/(tcp|udp)/anfitrion/puerto sin red"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "error de redirección: no se puede duplicar el df"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "¡no se puede encontrar /tmp, crear por favor!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp debe ser un nombre de directorio válido"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opción inválida"
@@ -1515,11 +1549,11 @@ msgstr "%c%c: opción inválida"
 # Yo pondría "no tengo ningún nombre". sv
 # Revisé el código fuente de bash. Es un mensaje de error cuando no se
 # encuentra el nombre del usuario que ejecuta el shell. cfuga
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "¡No tengo nombre de usuario!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versión %s-(%s)\n"
@@ -1529,7 +1563,7 @@ msgstr "GNU bash, versión %s-(%s)\n"
 # traducido en otras ocasiones. Sehll script lo henmos traducido
 # como guión del shell , eso es seguro ... así que puede estar
 # bien así , ya lo verán otros em+
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1538,39 +1572,43 @@ msgstr ""
 "Modo de empleo:\t%s [opción GNU larga] [opción] ...\n"
 "\t%s [opción GNU larga] [opción] guión-del-shell\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Opciones GNU largas:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opciones del shell:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD o -c orden o -O opcion_shopt\t\t(sólo invocación)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s o -o opción\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Teclee `%s -c \"help set\"' para más información sobre las opciones del shell.\n"
+msgstr ""
+"Teclee `%s -c \"help set\"' para más información sobre las opciones del "
+"shell.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Teclee `%s -c help' para más información sobre las órdenes internas del shell.\n"
+msgstr ""
+"Teclee `%s -c help' para más información sobre las órdenes internas del "
+"shell.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Use la orden `bashbug' para reportar bichos.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operación inválida"
@@ -1755,81 +1793,85 @@ msgstr "Señal Desconocida #"
 msgid "Unknown Signal #%d"
 msgstr "Señal Desconocida #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "sustitución errónea: no hay un `%s' que cierre en %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: no se puede asignar una lista a un miembro de la matriz"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "no se puede crear la tubería para la sustitución del proceso"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "no se puede crear un proceso hijo para la sustitución del proceso"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "no se puede abrir la tubería llamada %s para lectura"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "no se puede abrir la tubería llamada %s para escritura"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "no se puede duplicar la tubería llamada %s como df %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "no se pueden crear la tubería para la sustitución de la orden"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "no se puede crear un proceso hijo para la sustitución de la orden"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: no se puede duplicar la tubería como df 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parámetro nulo o no establecido"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expresión de subcadena < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: sustitución errónea"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: no se puede asignar de esta forma"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "versiones futuras del intérprete obligarán la evaluación como una sustitución aritmética"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"versiones futuras del intérprete obligarán la evaluación como una "
+"sustitución aritmética"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sustitución errónea: no hay una \"`\" que cierre en %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "no hay coincidencia: %s"
@@ -1873,76 +1915,81 @@ msgstr "%s: se esperaba un operador binario"
 msgid "missing `]'"
 msgstr "falta un `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "número de señal inválido"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí mismo"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí "
+"mismo"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: señal errónea %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "error al importar la definición de la función para `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "el nivel de shell (%d) es demasiado alto, se reestablece a 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: no hay contexto de función en el ámbito actual"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: no hay contexto de función en el ámbito actual"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s tiene exportstr nulo"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "carácter inválido %d en exportstr para %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "no hay `=' en exportstr para %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: la cabeza de shell_variables no es un contexto de función"
+msgstr ""
+"pop_var_context: la cabeza de shell_variables no es un contexto de función"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: no es un contexto global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope: la cabeza de shell_variables no es un ámbito de ambiente temporal"
+msgstr ""
+"pop_scope: la cabeza de shell_variables no es un ámbito de ambiente temporal"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: no se puede abrir como FICHERO"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: valor inválido para el descriptor de fichero de rastreo"
@@ -1952,8 +1999,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licencia GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1963,7 +2014,8 @@ msgstr "GNU bash, versión %s (%s)\n"
 #: version.c:91 version2.c:88
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "Esto es software libre; usted es libre de cambiarlo y redistribuirlo.\n"
+msgstr ""
+"Esto es software libre; usted es libre de cambiarlo y redistribuirlo.\n"
 
 #: version.c:92 version2.c:89
 #, c-format
@@ -1977,8 +2029,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licencia GPLv2+: GPL de GNU versión 2 o posterior <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licencia GPLv2+: GPL de GNU versión 2 o posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -2009,8 +2065,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nombre [nombre ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m comb_teclas] [-f fichero] [-q nombre] [-u nombre] [-r secteclas] [-x secteclas:orden-shell] [secteclas:función-readline u orden-readline]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m comb_teclas] [-f fichero] [-q nombre] [-u nombre] [-r "
+"secteclas] [-x secteclas:orden-shell] [secteclas:función-readline u orden-"
+"readline]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2117,8 +2179,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [patrón ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d despl] [n] ó history -anrw [fichero] ó history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d despl] [n] ó history -anrw [fichero] ó history -ps arg "
+"[arg...]"
 
 # jobspec no es sólo el pid del proceso, puede ser tambien
 # el nombre de la orden que se creo con el proceso em+
@@ -2134,16 +2200,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [idtrabajo ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s id_señal | -n num_señal | -id_señal] pid | idtrabajo ... ó kill -l [id_señal]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s id_señal | -n num_señal | -id_señal] pid | idtrabajo ... ó kill -l "
+"[id_señal]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p prompt] [-t tiempo] [-u df] [nombre ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p "
+"prompt] [-t tiempo] [-u df] [nombre ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2204,7 +2278,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nombre [nombre ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"
 
 #: builtins.c:172
@@ -2212,7 +2287,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [modo]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2240,8 +2316,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ÓRDENES ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if ÓRDENES; then ÓRDENES; [ elif ÓRDENES; then ÓRDENES; ]...[ else ÓRDENES; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if ÓRDENES; then ÓRDENES; [ elif ÓRDENES; then ÓRDENES; ]...[ else "
+"ÓRDENES; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2300,24 +2380,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formato [argumentos]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S sufijo] [nombre ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
+"W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S "
+"sufijo] [nombre ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S sufijo] [palabra]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W "
+"listapalabras] [-F función] [-C orden] [-X patfiltro] [-P prefijo] [-S "
+"sufijo] [palabra]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o opción] [-DE] [nombre ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c quantum] [matriz]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c "
+"quantum] [matriz]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c quantum] [matriz]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n cuenta] [-O origen] [-s cuenta] [-t] [-u df] [-C llamada] [-c "
+"quantum] [matriz]"
 
 # Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv
 # Lo mismo de antes: el alias es expandido -> el alias se expande. sv
@@ -2338,7 +2437,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Define o muestra aliases.\n"
@@ -2376,6 +2476,7 @@ msgstr ""
 # lee 'la'... em+
 # Corregido. Además, es plural: lee las asignaciones... cfuga
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2387,24 +2488,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2419,19 +2526,26 @@ msgstr ""
 "    \n"
 "    Opciones:\n"
 "    \n"
-"      -m  comb_teclas    Usa COMB_TECLAS como la combinación de teclas por la\n"
-"                         duración de esta orden.  Los nombres de combinaciones\n"
+"      -m  comb_teclas    Usa COMB_TECLAS como la combinación de teclas por "
+"la\n"
+"                         duración de esta orden.  Los nombres de "
+"combinaciones\n"
 "                         de teclas aceptables son emacs, emacs-standard,\n"
 "                         emacs-meta, emacs-ctlx, vi, vi-move, vi-command y\n"
 "                         vi-insert.\n"
 "      -l                 Enlista los nombres de las funciones.\n"
-"      -P                 Enlista los nombres de las funciones y asignaciones.\n"
-"      -p                 Enlista las funciones y asignaciones en una forma que\n"
+"      -P                 Enlista los nombres de las funciones y "
+"asignaciones.\n"
+"      -p                 Enlista las funciones y asignaciones en una forma "
+"que\n"
 "                         se puede reusar como entrada.\n"
-"      -S                 Enlista las secuencias de teclas que invocan macros\n"
+"      -S                 Enlista las secuencias de teclas que invocan "
+"macros\n"
 "                         y sus valores.\n"
-"      -s                 Enlista las secuencias de teclas que invocan macros\n"
-"                         y sus valores en una forma que se pueden reusar como\n"
+"      -s                 Enlista las secuencias de teclas que invocan "
+"macros\n"
+"                         y sus valores en una forma que se pueden reusar "
+"como\n"
 "                         entrada.\n"
 "      -V                 Enlista los nombres de variables y valores.\n"
 "      -v                 Enlista los nombres de variables y valores en una\n"
@@ -2448,7 +2562,7 @@ msgstr ""
 "    bind devuelve 0 a menos que se presente una opción desconocida o suceda\n"
 "    un error."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2466,7 +2580,7 @@ msgstr ""
 "    Estado de salida:\n"
 "    El estado de salida es 0 a menos que N no sea mayor o igual a 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2479,18 +2593,20 @@ msgstr ""
 "Continúa iteraciones for, while o until\n"
 "    \n"
 "    Continúa la siguiente iteración del ciclo FOR, WHILE o UNTIL\n"
-"    circundante.  Si se especifica N, retoma en el N-ésimo ciclo circundante.\n"
+"    circundante.  Si se especifica N, retoma en el N-ésimo ciclo "
+"circundante.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    El estado de salida es 0 a menos que N no sea mayor o igual a 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2499,7 +2615,8 @@ msgstr ""
 "Ejecuta órdenes internas del shell\n"
 "    \n"
 "    Ejecuta la ORDEN-INTERNA-SHELL con los argumentos ARGs sin realizar\n"
-"    la búsqueda interna de órdenes.  Esto es útil cuando desea reimplementar\n"
+"    la búsqueda interna de órdenes.  Esto es útil cuando desea "
+"reimplementar\n"
 "    una orden interna del shell como una función de shell, pero necesita\n"
 "    ejecutar la orden interna dentro de la función.\n"
 "    \n"
@@ -2507,7 +2624,7 @@ msgstr ""
 "    Devuelve el estado de salida de la ORDEN-INTERNA-SHELL, o falso si la\n"
 "    ORDEN-INTERNA-SHELL no es una orden interna de shell."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2538,33 +2655,46 @@ msgstr ""
 # Slash lo venimos traduciendo por barra inclinada , y backslash
 # por barra invertida em++
 # Corregido en toda la traducción. cfuga
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Cambia el directorio de trabajo del shell.\n"
@@ -2596,7 +2726,7 @@ msgstr ""
 "    Devuelve 0 si se cambia el directorio, y si $PWD está definido con\n"
 "    éxito cuando se usa -P; de otra forma es diferente a cero."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2624,7 +2754,7 @@ msgstr ""
 "    Devuelve 0 a menos que se de una opción inválida o no se pueda leer\n"
 "    el directorio actual."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2640,7 +2770,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Siempre con éxito."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2652,7 +2782,7 @@ msgstr ""
 "    Estado de salida:\n"
 "    Siempre con éxito."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2664,12 +2794,13 @@ msgstr ""
 "    Estado de salida:\n"
 "    Siempre falla."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2684,8 +2815,10 @@ msgstr ""
 "Ejecuta una orden simple o muestra información sobre órdenes.\n"
 "    \n"
 "    Ejecuta la ORDEN con ARGumentos, suprimiendo la búsqueda de funciones\n"
-"    de shell, o muestra información sobre las ÓRDENes especificadas. Se puede\n"
-"    usar para invocar órdenes en disco cuando existe una función con el mismo\n"
+"    de shell, o muestra información sobre las ÓRDENes especificadas. Se "
+"puede\n"
+"    usar para invocar órdenes en disco cuando existe una función con el "
+"mismo\n"
 "    nombre.\n"
 "    \n"
 "    Opciones:\n"
@@ -2699,7 +2832,7 @@ msgstr ""
 "    Devuelve el estado de salida de la ORDEN, o falla si no se encuentra\n"
 "    la ORDEN."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2729,7 +2862,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2772,7 +2906,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se de una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2782,7 +2916,7 @@ msgstr ""
 "    \n"
 "    Obsoleto.  Consulte `help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2808,11 +2942,14 @@ msgstr ""
 "    Devuelve con éxito a menos que se de una opción inválida, suceda\n"
 "    un error, o el shell no esté ejecutando una función."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2824,6 +2961,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2849,7 +2987,8 @@ msgstr ""
 "      -E\tdesactiva explícitamente la interpretación de caracteres de\n"
 "    \tde escape de barra invertida\n"
 "    \n"
-"    `echo' interpreta los siguientes caracteres de escape de barra invertida:\n"
+"    `echo' interpreta los siguientes caracteres de escape de barra "
+"invertida:\n"
 "     \\a\talerta (timbre)\n"
 "     \\b\tespacio hacia atrás\n"
 "     \\c\tsuprime toda salida a continuación\n"
@@ -2868,7 +3007,7 @@ msgstr ""
 "    Estado de salida:\n"
 "    Devuelve con éxito a menos que suceda un error de escritura."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2890,7 +3029,7 @@ msgstr ""
 "    Estado de salida:\n"
 "    Devuelve con éxito a menos que suceda un error de escritura."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2923,11 +3062,13 @@ msgstr ""
 "    la orden interna del shell, sin usar el nombre de ruta completo.\n"
 "    \n"
 "    Opciones:\n"
-"      -a\tmuestra la lista de órdenes internas indicando si están activas o no\n"
+"      -a\tmuestra la lista de órdenes internas indicando si están activas o "
+"no\n"
 "      -n\tdesactiva cada NOMBRE o muestra la lista de órdenes internas\n"
 "    \tdesactivadas\n"
 "      -p\tmuestra la lista de órdenes internas en una forma reusable\n"
-"      -s\tmuestra sólo los nombres de las órdenes internas `especiales' Posix\n"
+"      -s\tmuestra sólo los nombres de las órdenes internas `especiales' "
+"Posix\n"
 "    \n"
 "    Opciones que controlan la carga dinámica:\n"
 "      -f\tcarga la orden interna NOMBRE del objeto compartido FICHERO\n"
@@ -2939,14 +3080,16 @@ msgstr ""
 "    del shell, ejecute `enable -n test'.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve con éxito a menos que NOMBRE no sea una orden interna del shell\n"
+"    Devuelve con éxito a menos que NOMBRE no sea una orden interna del "
+"shell\n"
 "    o suceda un error."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2954,7 +3097,8 @@ msgid ""
 msgstr ""
 "Ejecuta argumentos como una orden de shell.\n"
 "    \n"
-"    Combina los ARGumentos en una sola cadena, usa el resultado como entrada\n"
+"    Combina los ARGumentos en una sola cadena, usa el resultado como "
+"entrada\n"
 "    para el shell, y ejecuta las órdenes resultantes.\n"
 "    \n"
 "    Estado de Salida:\n"
@@ -2965,7 +3109,7 @@ msgstr ""
 # en una de dos formas -> en una de las dos formas siguientes em+
 # dar argumentos -> especificar em+
 # De acuerdo. cfuga
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3045,12 +3189,13 @@ msgstr ""
 "    Devuelve con éxito si se encuentra una opción; falla si se encuentra\n"
 "    el final de las opciones o sucede un error."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3058,17 +3203,20 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Reemplaza el shell con la orden dada.\n"
 "    \n"
 "    Ejecuta la ORDEN, reemplazando este shell con el programa especificado.\n"
 "    Los ARGUMENTOS se vuelven los argumentos de la ORDEN.  Si no se\n"
-"    especifica la ORDEN, cualquir redirección toma efecto en el shell actual.\n"
+"    especifica la ORDEN, cualquir redirección toma efecto en el shell "
+"actual.\n"
 "    \n"
 "    Opciones:\n"
 "      -a nombre\tpasa el NOMBRE como el argumento cero de la ORDEN\n"
@@ -3082,7 +3230,7 @@ msgstr ""
 "    Devuelve éxito a menos que no se encuentre la ORDEN o que suceda un\n"
 "    error de redirección."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3091,14 +3239,16 @@ msgid ""
 msgstr ""
 "Termina el shell.\n"
 "    \n"
-"    Termina el shell con un estado de N.  Si se omite N, el estado de salida\n"
+"    Termina el shell con un estado de N.  Si se omite N, el estado de "
+"salida\n"
 "    es el mismo de la última orden ejecutada."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Termina un shell de entrada.\n"
@@ -3106,17 +3256,19 @@ msgstr ""
 "    Termina un shell de entrada con un estado de salida de N. Devuelve un\n"
 "    error si no se ejecuta en un shell de entrada."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3130,12 +3282,14 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Muestra o ejecuta órdenes de la lista de historia.\n"
 "    \n"
 "    fc se usa para listar o editar y reejecutar órdenes de la lista de\n"
-"    historia.  PRIMERO y ÚLTIMO pueden ser números que especifican el rango,\n"
+"    historia.  PRIMERO y ÚLTIMO pueden ser números que especifican el "
+"rango,\n"
 "    o PRIMERO puede ser una cadena, que significa la orden más reciente que\n"
 "    comience con esa cadena.\n"
 "    \n"
@@ -3143,7 +3297,8 @@ msgstr ""
 "    \t\tdespués EDITOR, después vi\n"
 "       -l lista líneas en lugar de editar\n"
 "       -n omite los números de línea al listar\n"
-"       -r inverte el orden de las líneas (muestra primero las más recientes)\n"
+"       -r inverte el orden de las líneas (muestra primero las más "
+"recientes)\n"
 "    \n"
 "    Con el formato `fc -s [pat=rep ...] [orden]', la ORDEN se\n"
 "    ejecuta de nuevo después de realizar la sustitución ANT=NUEVO.\n"
@@ -3153,10 +3308,11 @@ msgstr ""
 "    `r' re-ejecuta la última orden.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve con éxito o el estado de la orden ejecutada; si sucede un error\n"
+"    Devuelve con éxito o el estado de la orden ejecutada; si sucede un "
+"error\n"
 "    es diferente de cero."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3174,14 +3330,17 @@ msgstr ""
 "    la noción del shell del trabajo actual.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    El estado del comando ubicado en primer plano, o falla si sucede un error."
+"    El estado del comando ubicado en primer plano, o falla si sucede un "
+"error."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3197,12 +3356,13 @@ msgstr ""
 "    Devuelve éxito a menos que el control de trabajos no esté activado o\n"
 "    suceda un error."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3241,7 +3401,7 @@ msgstr ""
 "    Devuelve con éxito a menos que no se encuentre NOMBRE o se proporcione\n"
 "    una opción inválida."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3259,7 +3419,8 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Muestra información sobre órdenes internas.\n"
 "    \n"
@@ -3281,7 +3442,7 @@ msgstr ""
 "    Devuelve con éxito a menos que no se encuentre PATRÓN o se proporcione\n"
 "    una opción inválida."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3308,7 +3469,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3322,7 +3484,8 @@ msgstr ""
 "      -c\tborra la lista de historia eliminando todas las entradas\n"
 "      -d despl\tborra la entrada de la histora en la posición DESPL\n"
 "    \n"
-"      -a\tagrega las líneas de histora de esta sesión al fichero de historia\n"
+"      -a\tagrega las líneas de histora de esta sesión al fichero de "
+"historia\n"
 "      -n\tlee todas las líneas de historia que no se han leído del fichero\n"
 "    \tde historia\n"
 "      -r\tlee el fichero de historia y agrega el contenido al fichero\n"
@@ -3342,7 +3505,7 @@ msgstr ""
 "    tiempo asociada con cada entrada de historia mostrada.  No se muestra\n"
 "    ninguna marca de tiempo de otra forma."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3376,7 +3539,8 @@ msgstr ""
 "    \tla información normal\n"
 "      -n\tsolo muestra los procesos que han cambia de estado desde\n"
 "    \tla última notificación\n"
-"      -p\tsolo muestra los id's de los procesos      -r\trestringe la salida a los trabajos en ejecución\n"
+"      -p\tsolo muestra los id's de los procesos      -r\trestringe la salida "
+"a los trabajos en ejecución\n"
 "      -s\trestringe la salida a los trabajos detenidos\n"
 "    \n"
 "    Si se especifica -x, la ORDEN se ejecuta después de que todas las\n"
@@ -3387,7 +3551,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se de una opción inválida o suceda un\n"
 "    error.  Si se usa -x, devuelve el estado de salida de la ORDEN."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3418,7 +3582,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcionen una opción o un\n"
 "    IDTRABAJO inválidos."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3457,7 +3621,8 @@ msgstr ""
 "    procesos si ha alcanzado el límite de procesos que puede crear.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve con éxito a menos que se de una opción inválida o suceda un error."
+"    Devuelve con éxito a menos que se de una opción inválida o suceda un "
+"error."
 
 # "a ser evaluada" no está en español. sv
 # Cierto. ¿Así está mejor? cfuga
@@ -3467,14 +3632,15 @@ msgstr ""
 # No sé si existe precedencia en español, pero me suena fatal.
 # Yo pondría simplemente "prioridad". sv
 # Creo que si existe, pero tu sugerencia es mejor. cfuga
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3553,18 +3719,22 @@ msgstr ""
 "    Si el último ARGumento se evalúa como 0, let devuelve 1; de otra\n"
 "    forma, let devuelve 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3576,28 +3746,35 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Lee una línea de la salida estándar y la divide en campos.\n"
 "    \n"
 "    Lee una sola línea de la entrada estándar, o del descriptor de\n"
-"    fichero FD si se proporciona la opción -u.  La línea se divide en campos\n"
+"    fichero FD si se proporciona la opción -u.  La línea se divide en "
+"campos\n"
 "    con separación de palabras, y la primera palabra se asigna al primer\n"
 "    NOMBRE, la segunda palabra al segundo NOMBRE, y así sucesivamente, con\n"
 "    las palabras restantes asignadas al último NOMBRE.  Sólo los caracteres\n"
@@ -3637,7 +3814,7 @@ msgstr ""
 "    línea, el tiempo de read expire, o se proporcione un descriptor de\n"
 "    fichero inválido como el argumento de -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3650,14 +3827,17 @@ msgid ""
 msgstr ""
 "Devuelve de una función de shell.\n"
 "    \n"
-"    Causa que una función o un guión leído termine con el valor de devolución\n"
+"    Causa que una función o un guión leído termine con el valor de "
+"devolución\n"
 "    especificado por N.  Si se omite N, el estado de devolución es el de\n"
 "    la última orden ejecutada dentro de la función o guión.\n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve N, o falla si el shell no está ejecutando una función o un guión."
+"    Devuelve N, o falla si el shell no está ejecutando una función o un "
+"guión."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3700,7 +3880,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3722,7 +3903,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3743,7 +3924,8 @@ msgstr ""
 "Establece o borra los valores de las opciones de shell y los parámetros\n"
 "posicionales.\n"
 "    \n"
-"    Cambia el valor de los atributos de shell y los parámetros posicionales,\n"
+"    Cambia el valor de los atributos de shell y los parámetros "
+"posicionales,\n"
 "    o muestra los nombres y valores de las variables de shell.\n"
 "    \n"
 "    Opciones:\n"
@@ -3753,7 +3935,8 @@ msgstr ""
 "          diferente a cero.\n"
 "      -f  Desactiva la generación de nombres de ficheros (englobamiento).\n"
 "      -h  Recuerda la ubicación de las órdenes como se localizaron.\n"
-"      -k  Todos los argumentos de asignación se colocan en el ambiente para una\n"
+"      -k  Todos los argumentos de asignación se colocan en el ambiente para "
+"una\n"
 "          orden, no solo aquellos que preceden al nombre de la orden.\n"
 "      -m  Activa el control de trabajos.\n"
 "      -n  Lee órdenes pero no las ejecuta.\n"
@@ -3761,7 +3944,8 @@ msgstr ""
 "          Establece la variable correspondiente a nombre-opcion:\n"
 "              allexport    igual que -a\n"
 "              braceexpand  igual que -B\n"
-"              emacs        usa una interfaz de edición de línea estilo emacs\n"
+"              emacs        usa una interfaz de edición de línea estilo "
+"emacs\n"
 "              errexit      igual que -e\n"
 "              errtrace     igual que -E\n"
 "              functrace    igual que -T\n"
@@ -3770,7 +3954,8 @@ msgstr ""
 "              history      activa la historia de órdenes\n"
 "              ignoreeof    el shell no terminará después de leer EOF\n"
 "              interactive-comments\n"
-"                           permite que haya comentarios en órdenes interactivas\n"
+"                           permite que haya comentarios en órdenes "
+"interactivas\n"
 "              keyword      igual que -k\n"
 "              monitor      igual que -m\n"
 "              noclobber    igual que -C\n"
@@ -3781,11 +3966,14 @@ msgstr ""
 "              nounset      igual que -u\n"
 "              onecmd       igual que -t\n"
 "              physical     igual que -P\n"
-"              pipefail     el valor de devolución de una tubería es el estado\n"
-"                           del último comando en salir con un estado diferente\n"
+"              pipefail     el valor de devolución de una tubería es el "
+"estado\n"
+"                           del último comando en salir con un estado "
+"diferente\n"
 "                           de cero, o cero si ninguna orden termina con un\n"
 "                           estado diferente de cero\n"
-"              posix        cambia el comportamiento de bash donde la operación\n"
+"              posix        cambia el comportamiento de bash donde la "
+"operación\n"
 "                           por defecto difiere del estándar Posix para que\n"
 "                           coincida con el estándar\n"
 "              privileged   igual que -p\n"
@@ -3794,7 +3982,8 @@ msgstr ""
 "              xtrace       igual que -x\n"
 "      -p  Activo cuando los ids real y efectivo del usuario no coinciden.\n"
 "          Desactiva el procesamiento del fichero $ENV y la importación de\n"
-"          funciones de shell.  Si se desactiva esta opción causa que el uid y\n"
+"          funciones de shell.  Si se desactiva esta opción causa que el uid "
+"y\n"
 "          el gid efectivos sean iguales al uid y el gid real.\n"
 "      -t  Termina después de leer y ejecutar una orden.\n"
 "      -u  Trata las variables sin definir como un error al sustituir.\n"
@@ -3806,24 +3995,30 @@ msgstr ""
 "      -E  Si se activa, las funciones del shell heredan la trampa ERR.\n"
 "      -H  Activa el estilo de sustitución de historia ! . Esta opción está\n"
 "          activa por defecto cuando el shell es interactivo.\n"
-"      -P  Si se activa, no sigue enlaces simbólicos cuando se ejecutan órdenes\n"
+"      -P  Si se activa, no sigue enlaces simbólicos cuando se ejecutan "
+"órdenes\n"
 "          como cd, que cambian el directorio actual.\n"
 "      -T  Si se activa, las funciones del shell heredan la trampa DEBUG.\n"
-"      --  Asigna cualquier argumento restante a los parámetros posicionales.\n"
-"          Si no restan argumentos, se desactivan los parámetros posicionales.\n"
-"      -   Asigna cualquier argumento restante a los parámetros posicionales.\n"
+"      --  Asigna cualquier argumento restante a los parámetros "
+"posicionales.\n"
+"          Si no restan argumentos, se desactivan los parámetros "
+"posicionales.\n"
+"      -   Asigna cualquier argumento restante a los parámetros "
+"posicionales.\n"
 "          Las opciones -x y -v se desactivan.\n"
 "    \n"
 "    Si se usa + en lugar de - causa que estas opciones se desactiven. Las\n"
-"    opciones también se pueden usar en la invocación del shell.  El conjunto\n"
+"    opciones también se pueden usar en la invocación del shell.  El "
+"conjunto\n"
 "    actual de opciones se puede encontrar en $-.  Los n ARGs restantes son\n"
-"    parámetros posicionales que se asignan, en orden, a $1, $2, .. $n.  Si no\n"
+"    parámetros posicionales que se asignan, en orden, a $1, $2, .. $n.  Si "
+"no\n"
 "    se proporciona ningún ARG, se muestran todas las variables del shell.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve con éxito a menos que se proporcione una opción inválida."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3833,7 +4028,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3858,12 +4054,13 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    un NOMBRE sea de sólo lectura."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3877,7 +4074,8 @@ msgid ""
 msgstr ""
 "Establece el atributo de exportación para las variables de shell.\n"
 "    \n"
-"    Marca cada NOMBRE para exportación automática al ambiente para las órdenes\n"
+"    Marca cada NOMBRE para exportación automática al ambiente para las "
+"órdenes\n"
 "    ejecutadas subsecuentemente.  Si se proporciona un VALOR, se asigna el\n"
 "    VALOR antes de exportar.\n"
 "    \n"
@@ -3892,7 +4090,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o que\n"
 "    NOMBRE sea inválido."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3914,14 +4112,16 @@ msgstr ""
 "Marca las variables de shell para evitar su modificación.\n"
 "    \n"
 "    Marca cada NOMBRE como de sólo lectura; los valores de esos NOMBREs\n"
-"    no se pueden modificar por asignaciones subsecuentes.  Si se proporciona\n"
+"    no se pueden modificar por asignaciones subsecuentes.  Si se "
+"proporciona\n"
 "    un VALOR, se asigna el VALOR antes de marcar como de sólo lectura.\n"
 "    \n"
 "    Opciones:\n"
 "      -a\tse refiere a variables de matriz indizada\n"
 "      -A\tse refiere a variables de matriz asociativa\n"
 "      -f\tse refiere a funciones de shell\n"
-"      -p\tmuestra una lista de todas las variables y funciones de sólo lectura\n"
+"      -p\tmuestra una lista de todas las variables y funciones de sólo "
+"lectura\n"
 "    \n"
 "    El argumento `--' desactiva el procesamiento posterior de opciones.\n"
 "    \n"
@@ -3929,7 +4129,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    el NOMBRE sea inválido."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3947,7 +4147,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve con éxito a menos que N sea negativo o mayor que $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3964,13 +4164,14 @@ msgstr ""
 "    \n"
 "    Lee y ejecuta órdenes del FICHERO en el shell actual.  Se utilizan las\n"
 "    entradas en $PATH para encontrar el directorio que contiene el FICHERO.\n"
-"    Si se proporciona ARGUMENTOS, se convierten en los parámetros posicionales\n"
+"    Si se proporciona ARGUMENTOS, se convierten en los parámetros "
+"posicionales\n"
 "    cuando se ejecuta el FICHERO.\n"
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada del FICHERO; falla si\n"
 "    no se puede leer el FICHERO."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3986,7 +4187,8 @@ msgstr ""
 "Suspende la ejecución del shell.\n"
 "    \n"
 "    Suspende la ejecución de este shell hasta que recibe una señal SIGCONT.\n"
-"    Los shells de entrada no se pueden suspender, a menos que sean forzados.\n"
+"    Los shells de entrada no se pueden suspender, a menos que sean "
+"forzados.\n"
 "    \n"
 "    Opciones:\n"
 "      -f\tfuerza la suspensión, aún si el shell es un shell de entrada\n"
@@ -3995,7 +4197,7 @@ msgstr ""
 "    Devuelve con éxito a menos que no esté activo el control de trabajos o\n"
 "    suceda un error."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4029,7 +4231,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -4050,7 +4253,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4091,11 +4295,14 @@ msgstr ""
 "      -c FICHERO     Verdadero si el fichero es especial de caracteres.\n"
 "      -d FICHERO     Verdadero si el fichero es un directorio.\n"
 "      -e FICHERO     Verdadero si el fichero existe.\n"
-"      -f FICHERO     Verdadero si el fichero existe y es un fichero regular.\n"
-"      -g FICHERO     Verdadero si el fichero tiene activado el set-group-id.\n"
+"      -f FICHERO     Verdadero si el fichero existe y es un fichero "
+"regular.\n"
+"      -g FICHERO     Verdadero si el fichero tiene activado el set-group-"
+"id.\n"
 "      -h FICHERO     Verdadero si el fichero es un enlace simbólico.\n"
 "      -L FICHERO     Verdadero si el fichero es un enlace simbólico.\n"
-"      -k FICHERO     Verdadero si el fichero tiene el bit `sticky' activado.\n"
+"      -k FICHERO     Verdadero si el fichero tiene el bit `sticky' "
+"activado.\n"
 "      -p FICHERO     Verdadero si el fichero es una tubería nombrada.\n"
 "      -r FICHERO     Verdadero si el fichero es legible para usted.\n"
 "      -s FICHERO     Verdadero si el fichero existe y no está vacío.\n"
@@ -4106,7 +4313,8 @@ msgstr ""
 "      -x FICHERO     Verdadero si usted puede ejecutar el fichero.\n"
 "      -O FICHERO     Verdadero si usted efectivamente posee el fichero.\n"
 "      -G FICHERO     Verdadero si su grupo efectivamente posee el fichero.\n"
-"      -N FICHERO     Verdadero si el fichero se modificó desde la última lectura.\n"
+"      -N FICHERO     Verdadero si el fichero se modificó desde la última "
+"lectura.\n"
 "    \n"
 "      FICH1 -nt FICH2  Verdadero si fich1 es más reciente que fich2\n"
 "                       (de acuerdo a la fecha de modificación).\n"
@@ -4151,7 +4359,7 @@ msgstr ""
 "    Devuelve con éxito si EXPR evalúa a verdadero; falla si EXPR evalúa a\n"
 "    falso o se proporciona un argumento inválido."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4163,11 +4371,12 @@ msgstr ""
 "    Este es un sinónimo para la orden interna \"test\", pero el último\n"
 "    argumento debe ser un `]' literal, que coincida con el `[' inicial."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4175,17 +4384,19 @@ msgid ""
 msgstr ""
 "Muestra los tiempos de proceso.\n"
 "    \n"
-"    Muestra los tiempos de usuario y sistema acumulados por el shell y todos\n"
+"    Muestra los tiempos de usuario y sistema acumulados por el shell y "
+"todos\n"
 "    sus procesos hijos.\n"
 "    \n"
 "    Estado de salida:\n"
 "    Siempre con éxito."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4194,26 +4405,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Atrapa señales y otros eventos.\n"
 "    \n"
@@ -4238,7 +4457,8 @@ msgstr ""
 "    asociadas con cada señal.\n"
 "    \n"
 "    Opciones:\n"
-"      -l\tmuestra una lista de nombres de señal con su número correspondiente\n"
+"      -l\tmuestra una lista de nombres de señal con su número "
+"correspondiente\n"
 "      -p\tmuestra las órdenes trap asociadas con cada ID_SEÑAL\n"
 "    \n"
 "    Cada ID_SEÑAL es un nombre de señal en <signal.h> o un número de señal.\n"
@@ -4247,12 +4467,13 @@ msgstr ""
 "    \"kill -signal $$\".    \n"
 "    \n"
 "    Estado de Salida:\n"
-"    Devuelve con éxito a menos que una ID_SEÑAL sea inválida o se proporcione\n"
+"    Devuelve con éxito a menos que una ID_SEÑAL sea inválida o se "
+"proporcione\n"
 "    una opción inválida."
 
 #  No he visto que este fichero incluya la posibilidad de traducir las
 #  palabras que muestra `type -t'. Por esta razón, se dejan en inglés. cfuga
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4278,7 +4499,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Muestra información sobre el tipo de orden.\n"
 "    \n"
@@ -4287,11 +4509,13 @@ msgstr ""
 "    \n"
 "    Opciones:\n"
 "      -a\tmuestra todas las ubicaciones que contienen un ejecutable llamado\n"
-"    \tNOMBRE; incluye aliases, órdenes internas, y funciones, solo y solo si\n"
+"    \tNOMBRE; incluye aliases, órdenes internas, y funciones, solo y solo "
+"si\n"
 "    \tno se usó también la opción `-p'\n"
 "      -f\tsuprime la búsqueda de funciones de shell\n"
 "      -P\tfuerza una búsqueda en PATH por cada nombre, aún si hay un alias,\n"
-"    \torden interna, o función, y devuelve el nombre del fichero en el disco\n"
+"    \torden interna, o función, y devuelve el nombre del fichero en el "
+"disco\n"
 "    \tque se ejecutaría\n"
 "      -p\tdevuelve ya sea el nombre del fichero en disco que se ejecutaría,\n"
 "    \to nada si `type -t NOMBRE' no devuelve `fichero'.\n"
@@ -4307,11 +4531,13 @@ msgstr ""
 "    Devuelve con éxito si se encuentran todos los NOMBREs; falla si no se\n"
 "    encuentra alguno."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4335,6 +4561,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4363,7 +4592,8 @@ msgstr ""
 "      -c\tel tamaño máximo de los ficheros `core' creados\n"
 "      -d\tel tamaño máximo del segmento de datos de un proceso\n"
 "      -e\tla prioridad máxima de calendarización (`nice')\n"
-"      -f\tel tamaño máximo de los ficheros escritos por el shell y sus hijos\n"
+"      -f\tel tamaño máximo de los ficheros escritos por el shell y sus "
+"hijos\n"
 "      -i\tel número máximo de señales pendientes\n"
 "      -l\tel tamaño máximo que un proceso puede bloquear en memoria\n"
 "      -m\tel tamaño máximo para las variables residentes\n"
@@ -4377,7 +4607,8 @@ msgstr ""
 "      -v\tel tamaño de la memoria virtual\n"
 "      -x\tel número máximo de bloqueos de ficheros\n"
 "    \n"
-"    Si se establece LÍMITE, éste es el nuevo valor del recurso especificado;\n"
+"    Si se establece LÍMITE, éste es el nuevo valor del recurso "
+"especificado;\n"
 "    los valores especiales de LÍMITE `soft', `hard' y `unlimited'\n"
 "    corresponden al límite suave actual, el límite duro actual, y\n"
 "    sin límite, respectivamente.  De otra forma, se muestra el valor actual\n"
@@ -4389,10 +4620,11 @@ msgstr ""
 "    cual es un número de procesos sin escala.\n"
 "    \n"
 "    Estado de salida:\n"
-"    Devuelve con éxito a menos que se proporcione una opción inválida o suceda\n"
+"    Devuelve con éxito a menos que se proporcione una opción inválida o "
+"suceda\n"
 "    un error."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4415,7 +4647,8 @@ msgstr ""
 "    omite el MODO, muestra el valor actual de la máscara.\n"
 "    \n"
 "    Si el MODO empieza con un dígito, se interpreta como un número octal;\n"
-"    de otra forma es una cadena de modo simbólico como la que acepta chmod (1).\n"
+"    de otra forma es una cadena de modo simbólico como la que acepta chmod "
+"(1).\n"
 "    \n"
 "    Opciones:\n"
 "      -p\tsi se omite el MODO, muestra en una forma reusable como entrada\n"
@@ -4425,19 +4658,22 @@ msgstr ""
 "    Devuelve con éxito a menos que el MODO sea inválido o se proporcione\n"
 "    una opción inválida."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Espera la terminación del trabajo y devuelve el estado de salida.\n"
 "    \n"
@@ -4451,7 +4687,7 @@ msgstr ""
 "    Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
 "    opción inválida."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4460,7 +4696,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Espera la terminación del trabajo y devuelve el estado de salida.\n"
@@ -4473,7 +4710,7 @@ msgstr ""
 "    Devuelve el estado de ID; falla si ID es inválido o se proporciona una\n"
 "    opción inválida."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4495,7 +4732,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4525,7 +4762,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4562,7 +4799,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4589,7 +4826,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    El estado de devolución es el estado de devolución de la TUBERÍA."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4607,16 +4844,21 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4626,17 +4868,19 @@ msgstr ""
 "    \n"
 "    Se ejecuta la lista `if ÓRDENES'.  Si su estado de salida es cero,\n"
 "    entonces se ejecuta la lista `then ÓRDENES`.  De otra forma, cada lista\n"
-"    `elif ÓRDENES' se ejecuta en su lugar, y si su estado de salida es cero,\n"
+"    `elif ÓRDENES' se ejecuta en su lugar, y si su estado de salida es "
+"cero,\n"
 "    se ejecuta la lista `then ÓRDENES' correspondiente y se completa la\n"
 "    orden if.  De otra forma, se ejecuta la lista `else ÓRDENES', si está\n"
 "    presente.  El estado de salida de toda la construcción es el estado de\n"
-"    salida de la última orden ejecutada, o cero si ninguna condición resultó\n"
+"    salida de la última orden ejecutada, o cero si ninguna condición "
+"resultó\n"
 "    verdadera.\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4654,7 +4898,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4672,7 +4916,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4687,19 +4931,22 @@ msgstr ""
 "Crea un coproceso llamado NOMBRE.\n"
 "    \n"
 "    Ejecuta la ORDEN asíncronamente, con la salida estándar y la entrada\n"
-"    estándar de la orden contectada a través de una tubería a los descriptores\n"
-"    de fichero asignados a los índices 0 y 1 de una variable de matriz NOMBRE\n"
+"    estándar de la orden contectada a través de una tubería a los "
+"descriptores\n"
+"    de fichero asignados a los índices 0 y 1 de una variable de matriz "
+"NOMBRE\n"
 "    en el shell en ejecución.  El nombre por defecto es \"COPROC\".\n"
 "    \n"
 "    Estado de Salida:\n"
 "    Devuelve el estado de salida de la ORDEN."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4716,7 +4963,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve con éxito a menos que NOMBRE sea de sólo lectura"
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4734,7 +4981,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado de la última orden ejecutada."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4759,7 +5006,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve el estado del trabajo reiniciado."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4777,13 +5024,16 @@ msgstr ""
 "    Estado de Salida:\n"
 "    Devuelve 1 si la EXPRESIÓN evalúa a 0; devuelve 0 de otra manera."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4803,13 +5053,15 @@ msgid ""
 msgstr ""
 "Ejecuta una orden condicional.\n"
 "    \n"
-"    Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la expresión\n"
+"    Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la "
+"expresión\n"
 "    condicional EXPRESIÓN.  Las expresiones se componen de los mismos\n"
 "    elementos primarios usados por la orden interna `test', y se pueden\n"
 "    combinar usando los siguientes operadores:\n"
 "    \n"
 "      ( EXPRESIÓN )\tDevuelve el valor de la EXPRESIÓN\n"
-"      ! EXPRESIÓN\tVerdadero si la EXPRESIÓN es falsa; de otra forma es falso\n"
+"      ! EXPRESIÓN\tVerdadero si la EXPRESIÓN es falsa; de otra forma es "
+"falso\n"
 "      EXPR1 && EXPR2\tVerdadero si EXPR1 y EXPR2 son verdaderos; de\n"
 "    \t\totra forma es falso\n"
 "    \tEXPR1 || EXPR2\tVerdadero si EXPR1 o EXPR2 es verdadero; de\n"
@@ -4825,7 +5077,7 @@ msgstr ""
 "    Estado de Salida:\n"
 "    0 o 1 dependiendo del valor de la EXPRESIÓN."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4940,7 +5192,7 @@ msgstr ""
 "    \t\tpara decidir cuáles órdenes se deben guardar en la lista de\n"
 "    \t\thistoria.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4999,7 +5251,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione un argumento inválido o\n"
 "    falle el cambio de directorio."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5053,7 +5305,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione un argumento inválido o\n"
 "    falle el cambio de directorio."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5070,10 +5322,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5094,7 +5348,8 @@ msgstr ""
 "      -v\tmuestra la pila de directorios con una entrada por línea con\n"
 "    \tsu posición en la pila como prefijo\n"
 "    \n"
-"    Argumentos:      +N\tmuestra la N-ésima entrada contando desde la izquierda de la lista\n"
+"    Argumentos:      +N\tmuestra la N-ésima entrada contando desde la "
+"izquierda de la lista\n"
 "    \tmostrada por dirs cuando se invoca sin opciones,\n"
 "    \tempezando de cero.\n"
 "    \n"
@@ -5106,12 +5361,13 @@ msgstr ""
 "    Devuelve con éxito, a menos que se proporcione una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5142,7 +5398,8 @@ msgstr ""
 "    Devuelve con éxito si se activa NOMBRE_OPCIÓN; falla si se proporciona\n"
 "    una opción inválida o NOMBRE_OPCIÓN está desactivado."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5150,22 +5407,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Da formato y muestra ARGUMENTOS bajo el control del FORMATO.\n"
@@ -5178,7 +5441,8 @@ msgstr ""
 "    objetos: caracteres simples, los cuales solamente se copian a la salida\n"
 "    salida estándar; secuencias de escape de caracteres, las cuales\n"
 "    se convierten y se copian a la salida estándar; y especificaciones de\n"
-"    formato, cada una de las cuales causa la muestra del siguiente argumento\n"
+"    formato, cada una de las cuales causa la muestra del siguiente "
+"argumento\n"
 "    consecutivo.\n"
 "    \n"
 "    Además de las especificaciones de formato estándar descritas en\n"
@@ -5195,12 +5459,14 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    suceda un error de escritura o de asignación."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5223,7 +5489,8 @@ msgstr ""
 "    \n"
 "    Por cada NOMBRE, especifica cuántos argumentos se deben completar.  Si\n"
 "    no se proporcionan opciones, se muestran las especificaciones de\n"
-"    completado existentes en una forma que permite que se reusen como entrada.\n"
+"    completado existentes en una forma que permite que se reusen como "
+"entrada.\n"
 "    \n"
 "    Opciones:\n"
 "      -p\tmuestra las especificaciones de completado existentes en formato\n"
@@ -5244,12 +5511,13 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5265,13 +5533,16 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    suceda un error."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5310,7 +5581,8 @@ msgstr ""
 "    \n"
 "    Cada NOMBRE se refiere a una orden para la cual se definió previamente\n"
 "    una especificación de completado usando la orden interna `complete'.\n"
-"    Si no se proporcionan NOMBREs, se debe llamar a compopt desde una función\n"
+"    Si no se proporcionan NOMBREs, se debe llamar a compopt desde una "
+"función\n"
 "    que genere completados, y se modifican las opciones para ese generador\n"
 "    de completados en ejecución.\n"
 "    \n"
@@ -5318,22 +5590,28 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    el NOMBRE no tenga una especificación de completado definida."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5343,11 +5621,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Lee líneas de un fichero y las guarda en una variable de matriz indizada.\n"
@@ -5383,7 +5663,7 @@ msgstr ""
 "    Devuelve con éxito a menos que se proporcione una opción inválida o\n"
 "    la MATRIZ sea de sólo lectura o no sea una matriz indizada."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5404,13 +5684,15 @@ msgstr ""
 #~ "; 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"
+#~ "    The value of EXPR indicates how many call frames to go back before "
+#~ "the\n"
 #~ "    current one; the top frame is frame 0."
 #~ msgstr ""
 #~ "; esta información adicional se puede usar para\n"
 #~ "    proveer un rastreo de pila.\n"
 #~ "    \n"
-#~ "    El valor de EXPR indica cuántos marcos de llamada retroceder antes del\n"
+#~ "    El valor de EXPR indica cuántos marcos de llamada retroceder antes "
+#~ "del\n"
 #~ "    marco actual; el marco superior es el marco 0."
 
 #~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
@@ -5420,7 +5702,8 @@ msgstr ""
 #~ msgstr "xrealloc: no se pueden reasignar %lu bytes"
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: %s:%d: no se pueden reasignar %lu bytes (%lu bytes asignados)"
+#~ msgstr ""
+#~ "xrealloc: %s:%d: no se pueden reasignar %lu bytes (%lu bytes asignados)"
 
 #~ msgid " "
 #~ msgstr " "
@@ -5434,8 +5717,10 @@ msgstr ""
 #~ msgid "can be used used to provide a stack trace."
 #~ msgstr "adicional se puede usar para proveer un volcado de pila."
 
-#~ msgid "The value of EXPR indicates how many call frames to go back before the"
-#~ msgstr "El valor de EXPR indica cuántos marcos de llamada se debe retroceder"
+#~ msgid ""
+#~ "The value of EXPR indicates how many call frames to go back before the"
+#~ msgstr ""
+#~ "El valor de EXPR indica cuántos marcos de llamada se debe retroceder"
 
 #~ msgid "current one; the top frame is frame 0."
 #~ msgstr "antes del actual; el marco inicial es el marco 0."
@@ -5447,7 +5732,8 @@ msgstr ""
 #~ msgstr "Órdenes del shell que coinciden con las palabras `"
 
 #~ msgid "Display the list of currently remembered directories.  Directories"
-#~ msgstr "Muestra la lista de directorios actualmente grabados.  Los directorios"
+#~ msgstr ""
+#~ "Muestra la lista de directorios actualmente grabados.  Los directorios"
 
 #~ msgid "find their way onto the list with the `pushd' command; you can get"
 #~ msgstr "se guardan en la lista con la orden `pushd'; pueden ir saliendo de"
@@ -5455,35 +5741,50 @@ msgstr ""
 #~ msgid "back up through the list with the `popd' command."
 #~ msgstr "la lista con la orden `popd'."
 
-#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
-#~ msgstr "La opción -l especifica que `dirs' no debe mostrar versiones abreviadas"
+#~ msgid ""
+#~ "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgstr ""
+#~ "La opción -l especifica que `dirs' no debe mostrar versiones abreviadas"
 
-#~ msgid "of directories which are relative to your home directory.  This means"
-#~ msgstr "de los directorios que son relativos a su directorio inicial.  Esto significa"
+#~ msgid ""
+#~ "of directories which are relative to your home directory.  This means"
+#~ msgstr ""
+#~ "de los directorios que son relativos a su directorio inicial.  Esto "
+#~ "significa"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
 #~ msgstr "que `~/bin' se mostrará como `/homes/bfox/bin'. La opción -v"
 
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
-#~ msgstr "causa que `dirs' imprima la pila de directorios con una entrada por línea,"
+#~ msgstr ""
+#~ "causa que `dirs' imprima la pila de directorios con una entrada por línea,"
 
-#~ msgid "prepending the directory name with its position in the stack.  The -p"
-#~ msgstr "anteponiendo la posición en la pila al nombre del directorio.  La opción"
+#~ msgid ""
+#~ "prepending the directory name with its position in the stack.  The -p"
+#~ msgstr ""
+#~ "anteponiendo la posición en la pila al nombre del directorio.  La opción"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "-p hace lo mismo, pero no antepone la posición en la pila."
 
-#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
-#~ msgstr "La opción -c limpia la pila de directorios borrando todos sus elementos."
+#~ msgid ""
+#~ "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgstr ""
+#~ "La opción -c limpia la pila de directorios borrando todos sus elementos."
 
-#~ msgid "+N   displays the Nth entry counting from the left of the list shown by"
-#~ msgstr "+N   muestra la N-ésima entrada contando desde la izquierda de la lista"
+#~ msgid ""
+#~ "+N   displays the Nth entry counting from the left of the list shown by"
+#~ msgstr ""
+#~ "+N   muestra la N-ésima entrada contando desde la izquierda de la lista"
 
 #~ msgid "     dirs when invoked without options, starting with zero."
-#~ msgstr "     mostrada por dirs cuando se invoca sin opciones, empezando de cero."
+#~ msgstr ""
+#~ "     mostrada por dirs cuando se invoca sin opciones, empezando de cero."
 
-#~ msgid "-N   displays the Nth entry counting from the right of the list shown by"
-#~ msgstr "-N   muestra la N-ésima entrada contando desde la derecha de la lista"
+#~ msgid ""
+#~ "-N   displays the Nth entry counting from the right of the list shown by"
+#~ msgstr ""
+#~ "-N   muestra la N-ésima entrada contando desde la derecha de la lista"
 
 #~ msgid "Adds a directory to the top of the directory stack, or rotates"
 #~ msgstr "Agrega un directorio al tope de la pila de directorios, o rota"
@@ -5492,13 +5793,15 @@ msgstr ""
 #~ msgstr "la pila, haciendo que el nuevo tope de la pila sea el directorio de"
 
 #~ msgid "directory.  With no arguments, exchanges the top two directories."
-#~ msgstr "trabajo actual.  Sin argumentos, intercambia los dos directorios del tope."
+#~ msgstr ""
+#~ "trabajo actual.  Sin argumentos, intercambia los dos directorios del tope."
 
 #~ msgid "+N   Rotates the stack so that the Nth directory (counting"
 #~ msgstr "+N   Rota la pila para que el N-ésimo directorio (contando"
 
 #~ msgid "     from the left of the list shown by `dirs', starting with"
-#~ msgstr "     de la izquierda de la lista mostrada por `dirs', comenzando desde"
+#~ msgstr ""
+#~ "     de la izquierda de la lista mostrada por `dirs', comenzando desde"
 
 #~ msgid "     zero) is at the top."
 #~ msgstr "     cero) esté en el tope."
@@ -5507,10 +5810,12 @@ msgstr ""
 #~ msgstr "-N   Rota la pila para que el N-ésimo directory (contando"
 
 #~ msgid "     from the right of the list shown by `dirs', starting with"
-#~ msgstr "     de la derecha de la lista mostrada por `dirs', comenzando desde"
+#~ msgstr ""
+#~ "     de la derecha de la lista mostrada por `dirs', comenzando desde"
 
 #~ msgid "-n   suppress the normal change of directory when adding directories"
-#~ msgstr "-n   suprime el cambio normal de directorio cuando se agregan directorios"
+#~ msgstr ""
+#~ "-n   suprime el cambio normal de directorio cuando se agregan directorios"
 
 #~ msgid "     to the stack, so only the stack is manipulated."
 #~ msgstr "     a la pila, así sólo se manipula la pila."
@@ -5534,10 +5839,12 @@ msgstr ""
 #~ msgstr "directorio tope."
 
 #~ msgid "+N   removes the Nth entry counting from the left of the list"
-#~ msgstr "+N   borra la N-ésima entrada contando desde la izquierda de la lista"
+#~ msgstr ""
+#~ "+N   borra la N-ésima entrada contando desde la izquierda de la lista"
 
 #~ msgid "     shown by `dirs', starting with zero.  For example: `popd +0'"
-#~ msgstr "     mostrada por `dirs', comenzando desde cero.  Por ejemplo: `popd +0'"
+#~ msgstr ""
+#~ "     mostrada por `dirs', comenzando desde cero.  Por ejemplo: `popd +0'"
 
 #~ msgid "     removes the first directory, `popd +1' the second."
 #~ msgstr "     borra el primer directorio, `popd +1' el segundo."
@@ -5546,13 +5853,16 @@ msgstr ""
 #~ msgstr "-N   borra la N-ésima entrada contando desde la derecha de la lista"
 
 #~ msgid "     shown by `dirs', starting with zero.  For example: `popd -0'"
-#~ msgstr "     mostrada por `dirs', comenzando desde cero.  Por ejemplo: `popd -0'"
+#~ msgstr ""
+#~ "     mostrada por `dirs', comenzando desde cero.  Por ejemplo: `popd -0'"
 
 #~ msgid "     removes the last directory, `popd -1' the next to last."
 #~ msgstr "     borra el último directorio, `popd -1' el penúltimo."
 
-#~ msgid "-n   suppress the normal change of directory when removing directories"
-#~ msgstr "-n   suprime el cambio normal de directorio cuando se borran directorios"
+#~ msgid ""
+#~ "-n   suppress the normal change of directory when removing directories"
+#~ msgstr ""
+#~ "-n   suprime el cambio normal de directorio cuando se borran directorios"
 
 #~ msgid "     from the stack, so only the stack is manipulated."
 #~ msgstr "     de la pila, así sólo se manipula la pila."
@@ -5587,7 +5897,8 @@ msgstr ""
 #~ "    shell builtin to be a function, but need the functionality of the\n"
 #~ "    builtin within the function itself."
 #~ msgstr ""
-#~ "Ejecuta una orden interna del shell.  Esto es útil cuando desea renombrar\n"
+#~ "Ejecuta una orden interna del shell.  Esto es útil cuando desea "
+#~ "renombrar\n"
 #~ "    una orden interna del shell para que sea una función, pero necesita\n"
 #~ "    la funcionalidad de la orden interna dentro de la misma función."
 
@@ -5610,12 +5921,16 @@ msgstr ""
 #~ msgid ""
 #~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell\n"
 #~ "    function called `ls', and you wish to call the command `ls', you can\n"
-#~ "    say \"command ls\".  If the -p option is given, a default value is used\n"
-#~ "    for PATH that is guaranteed to find all of the standard utilities.  If\n"
-#~ "    the -V or -v option is given, a string is printed describing COMMAND.\n"
+#~ "    say \"command ls\".  If the -p option is given, a default value is "
+#~ "used\n"
+#~ "    for PATH that is guaranteed to find all of the standard utilities.  "
+#~ "If\n"
+#~ "    the -V or -v option is given, a string is printed describing "
+#~ "COMMAND.\n"
 #~ "    The -V option produces a more verbose description."
 #~ msgstr ""
-#~ "Ejecuta COMMAND con ARGS ignorando las funciones del shell.  Si tiene una\n"
+#~ "Ejecuta COMMAND con ARGS ignorando las funciones del shell.  Si tiene "
+#~ "una\n"
 #~ "    función de shell llamada `ls', y desea llamar a la orden `ls', puede\n"
 #~ "    decir \"command ls\".  Si se da la opción -p, se usa un valor por\n"
 #~ "    defecto para PATH que garantiza encontrar todas las herramientas\n"
@@ -5633,7 +5948,8 @@ msgstr ""
 #~ "    \n"
 #~ "      -a\tto make NAMEs arrays (if supported)\n"
 #~ "      -f\tto select from among function names only\n"
-#~ "      -F\tto display function names (and line number and source file name if\n"
+#~ "      -F\tto display function names (and line number and source file name "
+#~ "if\n"
 #~ "    \tdebugging) without definitions\n"
 #~ "      -i\tto make NAMEs have the `integer' attribute\n"
 #~ "      -r\tto make NAMEs readonly\n"
@@ -5647,7 +5963,8 @@ msgstr ""
 #~ "    and definition.  The -F option restricts the display to function\n"
 #~ "    name only.\n"
 #~ "    \n"
-#~ "    Using `+' instead of `-' turns off the given attribute instead.  When\n"
+#~ "    Using `+' instead of `-' turns off the given attribute instead.  "
+#~ "When\n"
 #~ "    used in a function, makes NAMEs local, as with the `local' command."
 #~ msgstr ""
 #~ "Declara variables y/o les asigna atributos. Si no se propociona\n"
@@ -5692,7 +6009,8 @@ msgstr ""
 #~ "    sólo se puede usar dentro de una función; hace que la variable NAME\n"
 #~ "    solamente sea visible a esa función y sus hijos."
 
-#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgid ""
+#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
 #~ msgstr ""
 #~ "Muestra los ARGs. Si se especifica -n, se elimina el carácter\n"
 #~ "    de fin de línea."
@@ -5714,26 +6032,38 @@ msgstr ""
 #~ "    previously loaded with -f.  If no non-option names are given, or\n"
 #~ "    the -p option is supplied, a list of builtins is printed.  The\n"
 #~ "    -a option means to print every builtin with an indication of whether\n"
-#~ "    or not it is enabled.  The -s option restricts the output to the POSIX.2\n"
-#~ "    `special' builtins.  The -n option displays a list of all disabled builtins."
+#~ "    or not it is enabled.  The -s option restricts the output to the "
+#~ "POSIX.2\n"
+#~ "    `special' builtins.  The -n option displays a list of all disabled "
+#~ "builtins."
 #~ msgstr ""
 #~ "Activa y desactiva las órdenes internas del shell. Esto le permite\n"
 #~ "    usar una orden del sistema que tenga el mismo nombre que una orden\n"
-#~ "    interna del shell sin especificar una ruta completa.  Si se usa -n, los\n"
-#~ "    NAMEs se desactivan; de otra forma los NAMEs se activan.  Por ejemplo,\n"
-#~ "    para usar `test' que se encuentra en $PATH en lugar de la versión interna\n"
+#~ "    interna del shell sin especificar una ruta completa.  Si se usa -n, "
+#~ "los\n"
+#~ "    NAMEs se desactivan; de otra forma los NAMEs se activan.  Por "
+#~ "ejemplo,\n"
+#~ "    para usar `test' que se encuentra en $PATH en lugar de la versión "
+#~ "interna\n"
 #~ "    del shell, teclee `enable -n test'.  En sistemas que soportan\n"
-#~ "    carga dinámica, se puede usar la opción -f para cargar nuevas órdenes\n"
-#~ "    internas desde el objeto compartido FILENAME.  La opción -d borrará una\n"
-#~ "    orden interna cargada previamente con -f.  Si no se propocionan nombres\n"
-#~ "    que no sean opciones, o se especifica la opción -p, se muestra una lista\n"
-#~ "    de órdenes internas.  La opción -a es para mostrar cada orden interna\n"
+#~ "    carga dinámica, se puede usar la opción -f para cargar nuevas "
+#~ "órdenes\n"
+#~ "    internas desde el objeto compartido FILENAME.  La opción -d borrará "
+#~ "una\n"
+#~ "    orden interna cargada previamente con -f.  Si no se propocionan "
+#~ "nombres\n"
+#~ "    que no sean opciones, o se especifica la opción -p, se muestra una "
+#~ "lista\n"
+#~ "    de órdenes internas.  La opción -a es para mostrar cada orden "
+#~ "interna\n"
 #~ "    con una indicación si está o no activada.  La opción -s restringe la\n"
 #~ "    salida a las órdenes internas `especiales' de POSIX.2. La opción -n\n"
 #~ "    muestra una lista de todas las órdenes internas desactivadas."
 
-#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
-#~ msgstr "Lee ARGs como entrada del shell y ejecuta el(los) comando(s) resultantes."
+#~ msgid ""
+#~ "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgstr ""
+#~ "Lee ARGs como entrada del shell y ejecuta el(los) comando(s) resultantes."
 
 #~ msgid ""
 #~ "Exec FILE, replacing this shell with the specified program.\n"
@@ -5763,23 +6093,30 @@ msgstr ""
 #~ "    remembered.  If the -p option is supplied, PATHNAME is used as the\n"
 #~ "    full pathname of NAME, and no path search is performed.  The -r\n"
 #~ "    option causes the shell to forget all remembered locations.  The -d\n"
-#~ "    option causes the shell to forget the remembered location of each NAME.\n"
+#~ "    option causes the shell to forget the remembered location of each "
+#~ "NAME.\n"
 #~ "    If the -t option is supplied the full pathname to which each NAME\n"
-#~ "    corresponds is printed.  If multiple NAME arguments are supplied with\n"
-#~ "    -t, the NAME is printed before the hashed full pathname.  The -l option\n"
-#~ "    causes output to be displayed in a format that may be reused as input.\n"
-#~ "    If no arguments are given, information about remembered commands is displayed."
+#~ "    corresponds is printed.  If multiple NAME arguments are supplied "
+#~ "with\n"
+#~ "    -t, the NAME is printed before the hashed full pathname.  The -l "
+#~ "option\n"
+#~ "    causes output to be displayed in a format that may be reused as "
+#~ "input.\n"
+#~ "    If no arguments are given, information about remembered commands is "
+#~ "displayed."
 #~ msgstr ""
 #~ "Por cada NOMBRE, se determina la ruta completa de la orden y se graba.\n"
 #~ "    Si se especifica la opción -p, se usa PATHNAME como la ruta completa\n"
 #~ "    de NAME, y no se realiza la búsqueda de ruta. La opción -r hace que\n"
-#~ "    el shell olvide todas las ubicaciones grabadas. La opción -d hace que\n"
+#~ "    el shell olvide todas las ubicaciones grabadas. La opción -d hace "
+#~ "que\n"
 #~ "    el shell olvide las ubicaciones grabadas de cada NAME.  Si se\n"
 #~ "    proporciona la opción -t se muestra la ruta completa para cada NAME\n"
 #~ "    correspondiente.  Si se proporcionan múltiples argumentos NAME con\n"
 #~ "    -t, NAME se muestra antes de la ruta completa.  La opción -l hace\n"
 #~ "    que la salida se muestre en un formato que se puede reusar como\n"
-#~ "    entrada.  Si no se proporcionan argumentos, se muestra la información\n"
+#~ "    entrada.  Si no se proporcionan argumentos, se muestra la "
+#~ "información\n"
 #~ "    de las órdenes grabadas."
 
 #~ msgid ""
@@ -5798,15 +6135,20 @@ msgstr ""
 
 #~ msgid ""
 #~ "By default, removes each JOBSPEC argument from the table of active jobs.\n"
-#~ "    If the -h option is given, the job is not removed from the table, but is\n"
+#~ "    If the -h option is given, the job is not removed from the table, but "
+#~ "is\n"
 #~ "    marked so that SIGHUP is not sent to the job if the shell receives a\n"
-#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all\n"
-#~ "    jobs from the job table; the -r option means to remove only running jobs."
+#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove "
+#~ "all\n"
+#~ "    jobs from the job table; the -r option means to remove only running "
+#~ "jobs."
 #~ msgstr ""
-#~ "Por defecto, elimina cada argumento JOBSPEC de la tabla de trabajos activos.\n"
+#~ "Por defecto, elimina cada argumento JOBSPEC de la tabla de trabajos "
+#~ "activos.\n"
 #~ "    Si se especifica la opción -h, el trabajo no se elimina de la tabla,\n"
 #~ "    pero se marca de forma que no se envía SIGHUP al trabajo si el shell\n"
-#~ "    recibe un SIGHUP.  La opción -a, cuando no se proporciona JOBSPEC, borra\n"
+#~ "    recibe un SIGHUP.  La opción -a, cuando no se proporciona JOBSPEC, "
+#~ "borra\n"
 #~ "    todos los trabajos de la tabla de trabajos; la opción -r borra sólo\n"
 #~ "    los trabajos activos."
 
@@ -5814,7 +6156,8 @@ msgstr ""
 #~ "Causes a function to exit with the return value specified by N.  If N\n"
 #~ "    is omitted, the return status is that of the last command."
 #~ msgstr ""
-#~ "Causa la salida de una función con el valor de devolución especificado por N.\n"
+#~ "Causa la salida de una función con el valor de devolución especificado "
+#~ "por N.\n"
 #~ "    Si se omite N, el estado de devolución será el de la última orden."
 
 #~ msgid ""
@@ -5826,9 +6169,12 @@ msgstr ""
 #~ msgstr ""
 #~ "Para cada NAME, se borra la variable o función correspondiente.  Al usar\n"
 #~ "    `-v', unset sólo actuará sobre variables.  Al usar la opción `-f',\n"
-#~ "    unset sólo actuará sobre funciones.  Sin ninguna opción, unset primero\n"
-#~ "    intenta borrar una variable, y si esto falla, entonces intenta borrar\n"
-#~ "    una función.  Algunas variables no se pueden borrar; vea también readonly."
+#~ "    unset sólo actuará sobre funciones.  Sin ninguna opción, unset "
+#~ "primero\n"
+#~ "    intenta borrar una variable, y si esto falla, entonces intenta "
+#~ "borrar\n"
+#~ "    una función.  Algunas variables no se pueden borrar; vea también "
+#~ "readonly."
 
 #~ msgid ""
 #~ "NAMEs are marked for automatic export to the environment of\n"
@@ -5844,21 +6190,24 @@ msgstr ""
 #~ "    NAMEs se refieren a funciones.  Si no se proporciona ningún NAME,\n"
 #~ "    o si se proporciona `-p', se muestra una lista de todos los nombres\n"
 #~ "    que se exportan en este shell.  Un argumento `-n' indica eliminar\n"
-#~ "    la propiedad de exportación para los NAMEs subsecuentes.  Un argumento\n"
+#~ "    la propiedad de exportación para los NAMEs subsecuentes.  Un "
+#~ "argumento\n"
 #~ "    `--' desactiva el procesamiento posterior de opciones."
 
 #~ msgid ""
 #~ "The given NAMEs are marked readonly and the values of these NAMEs may\n"
 #~ "    not be changed by subsequent assignment.  If the -f option is given,\n"
 #~ "    then functions corresponding to the NAMEs are so marked.  If no\n"
-#~ "    arguments are given, or if `-p' is given, a list of all readonly names\n"
+#~ "    arguments are given, or if `-p' is given, a list of all readonly "
+#~ "names\n"
 #~ "    is printed.  The `-a' option means to treat each NAME as\n"
 #~ "    an array variable.  An argument of `--' disables further option\n"
 #~ "    processing."
 #~ msgstr ""
 #~ "Los NAMEs dados se marcan como sólo lectura y los valores de esos NAMEs\n"
 #~ "    no se pueden cambiar por asignaciones posteriores.  Si se propociona\n"
-#~ "    la opción -f, entonces también se marcan las funciones que correspondan\n"
+#~ "    la opción -f, entonces también se marcan las funciones que "
+#~ "correspondan\n"
 #~ "    a los NAMEs.  Si no se proporcionan argumentos, o si se especifica\n"
 #~ "    `-p', se muestra una lista de todos los nombres de sólo lectura.\n"
 #~ "    La opción `-a' trata cada NAME como una variable de matriz.\n"
@@ -5891,23 +6240,29 @@ msgstr ""
 #~ "For each NAME, indicate how it would be interpreted if used as a\n"
 #~ "    command name.\n"
 #~ "    \n"
-#~ "    If the -t option is used, `type' outputs a single word which is one of\n"
-#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n"
-#~ "    alias, shell reserved word, shell function, shell builtin, disk file,\n"
+#~ "    If the -t option is used, `type' outputs a single word which is one "
+#~ "of\n"
+#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is "
+#~ "an\n"
+#~ "    alias, shell reserved word, shell function, shell builtin, disk "
+#~ "file,\n"
 #~ "    or unfound, respectively.\n"
 #~ "    \n"
 #~ "    If the -p flag is used, `type' either returns the name of the disk\n"
 #~ "    file that would be executed, or nothing if `type -t NAME' would not\n"
 #~ "    return `file'.\n"
 #~ "    \n"
-#~ "    If the -a flag is used, `type' displays all of the places that contain\n"
+#~ "    If the -a flag is used, `type' displays all of the places that "
+#~ "contain\n"
 #~ "    an executable named `file'.  This includes aliases, builtins, and\n"
 #~ "    functions, if and only if the -p flag is not also used.\n"
 #~ "    \n"
 #~ "    The -f flag suppresses shell function lookup.\n"
 #~ "    \n"
-#~ "    The -P flag forces a PATH search for each NAME, even if it is an alias,\n"
-#~ "    builtin, or function, and returns the name of the disk file that would\n"
+#~ "    The -P flag forces a PATH search for each NAME, even if it is an "
+#~ "alias,\n"
+#~ "    builtin, or function, and returns the name of the disk file that "
+#~ "would\n"
 #~ "    be executed."
 #~ msgstr ""
 #~ "Para cada NAME, se indica cómo se interpretaría se se usara como\n"
@@ -5916,37 +6271,46 @@ msgstr ""
 #~ "    Si se usa la opción -t, `type' muestra una sola palabra que es una\n"
 #~ "    de `alias', `keyword', `function', `builtin', `file' ó `', si NAME\n"
 #~ "    es un alias, palabra reservada del shell, función del shell, orden\n"
-#~ "    interna del shell, fichero del disco, o no encontrado, respectivamente.\n"
+#~ "    interna del shell, fichero del disco, o no encontrado, "
+#~ "respectivamente.\n"
 #~ "    \n"
 #~ "    Si se usa la opción -p, `type' devuelve el nombre del fichero del\n"
 #~ "    sistema que sería ejecutado, o nada, si `type -t NAME' no devuelve\n"
 #~ "    `file'.\n"
 #~ "    \n"
-#~ "    Si se usa la opción -a, `type' muestra todos los lugares que contienen\n"
+#~ "    Si se usa la opción -a, `type' muestra todos los lugares que "
+#~ "contienen\n"
 #~ "    un ejecutable llamado `file'.  Esto incluye a aliases, órdenes\n"
 #~ "    internas, y funciones, si y solo si no se usa la opción -p.\n"
 #~ "    \n"
 #~ "    La opción -f suprime la búsqueda de funciones de shell.\n"
 #~ "    \n"
 #~ "    La opción -P fuerza una búsqueda en PATH por cada NAME, aún si es un\n"
-#~ "    alias, orden interna, o función, y devuelve el nombre del fichero del\n"
+#~ "    alias, orden interna, o función, y devuelve el nombre del fichero "
+#~ "del\n"
 #~ "    disco que se puede ejecutar."
 
 #~ msgid ""
 #~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if\n"
-#~ "    `-S' is supplied, the current value of the mask is printed.  The `-S'\n"
-#~ "    option makes the output symbolic; otherwise an octal number is output.\n"
+#~ "    `-S' is supplied, the current value of the mask is printed.  The `-"
+#~ "S'\n"
+#~ "    option makes the output symbolic; otherwise an octal number is "
+#~ "output.\n"
 #~ "    If `-p' is supplied, and MODE is omitted, the output is in a form\n"
 #~ "    that may be used as input.  If MODE begins with a digit, it is\n"
-#~ "    interpreted as an octal number, otherwise it is a symbolic mode string\n"
+#~ "    interpreted as an octal number, otherwise it is a symbolic mode "
+#~ "string\n"
 #~ "    like that accepted by chmod(1)."
 #~ msgstr ""
-#~ "La máscara de creación de ficheros se establece a MODE.  Si se omite MODE,\n"
-#~ "    o si se proporciona `-S', se muestra el valor actual de la máscara. La\n"
+#~ "La máscara de creación de ficheros se establece a MODE.  Si se omite "
+#~ "MODE,\n"
+#~ "    o si se proporciona `-S', se muestra el valor actual de la máscara. "
+#~ "La\n"
 #~ "    opción `-S' hace la salida simbólica; de otra forma la salida es un\n"
 #~ "    número octal.  Si se proporciona `-p', y se omite MODE, la salida es\n"
 #~ "    en una forma que se puede usar como entrada.  Si MODE empieza con un\n"
-#~ "    dígito, se interpreta como un número octal, de otra forma es una cadena\n"
+#~ "    dígito, se interpreta como un número octal, de otra forma es una "
+#~ "cadena\n"
 #~ "    de modo simbólico como la que acepta chmod(1)."
 
 #~ msgid ""
@@ -5989,10 +6353,14 @@ msgstr ""
 
 #~ msgid ""
 #~ "For each NAME, specify how arguments are to be completed.\n"
-#~ "    If the -p option is supplied, or if no options are supplied, existing\n"
-#~ "    completion specifications are printed in a way that allows them to be\n"
-#~ "    reused as input.  The -r option removes a completion specification for\n"
-#~ "    each NAME, or, if no NAMEs are supplied, all completion specifications."
+#~ "    If the -p option is supplied, or if no options are supplied, "
+#~ "existing\n"
+#~ "    completion specifications are printed in a way that allows them to "
+#~ "be\n"
+#~ "    reused as input.  The -r option removes a completion specification "
+#~ "for\n"
+#~ "    each NAME, or, if no NAMEs are supplied, all completion "
+#~ "specifications."
 #~ msgstr ""
 #~ "Por cada NAME, especifica cómo se deben completar los argumentos.\n"
 #~ "    Si se proporciona la opción -p, o si no se proporcionan opciones, se\n"
@@ -6111,7 +6479,9 @@ msgstr ""
 #~ msgstr "%s: subíndice de matriz erróneo"
 
 #~ msgid "can't make pipes for process substitution: %s"
-#~ msgstr "no se pueden crear las tuberías (pipes) para la sustitución del proceso: %s"
+#~ msgstr ""
+#~ "no se pueden crear las tuberías (pipes) para la sustitución del proceso: "
+#~ "%s"
 
 #~ msgid "reading"
 #~ msgstr "leyendo"
@@ -6127,7 +6497,8 @@ msgstr ""
 #~ msgstr "sustitución de la orden"
 
 #~ msgid "Can't reopen pipe to command substitution (fd %d): %s"
-#~ msgstr "No se puede reabrir la tubería para la sustitución de la orden (df %d): %s"
+#~ msgstr ""
+#~ "No se puede reabrir la tubería para la sustitución de la orden (df %d): %s"
 
 #~ msgid "$%c: unbound variable"
 #~ msgstr "$%c: variable desligada"
@@ -6221,10 +6592,12 @@ msgstr ""
 # Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv
 # De acuerdo. cfuga
 #~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given."
-#~ msgstr "De otra manera, se define un alias por cada NOMBRE cuyo VALOR se da."
+#~ msgstr ""
+#~ "De otra manera, se define un alias por cada NOMBRE cuyo VALOR se da."
 
 #~ msgid "A trailing space in VALUE causes the next word to be checked for"
-#~ msgstr "Un espacio final en VALOR causa que la siguiente palabra sea revisada para"
+#~ msgstr ""
+#~ "Un espacio final en VALOR causa que la siguiente palabra sea revisada para"
 
 # Lo mismo de antes: el alias es expandido -> el alias se expande. sv
 # De acuerdo. cfuga
@@ -6234,31 +6607,42 @@ msgstr ""
 # no alias -> ningún alias. sv
 # De acuerdo. cfuga
 #~ msgid "true unless a NAME is given for which no alias has been defined."
-#~ msgstr "verdadero a menos que para un NOMBRE dado no se haya definido ningún alias."
+#~ msgstr ""
+#~ "verdadero a menos que para un NOMBRE dado no se haya definido ningún "
+#~ "alias."
 
 #~ msgid "then remove all alias definitions."
 #~ msgstr "entonces borra todas las definiciones de alias."
 
 #~ msgid "Bind a key sequence to a Readline function, or to a macro.  The"
-#~ msgstr "Asigna una secuencia de teclas a una función Readline, o a una macro. La"
+#~ msgstr ""
+#~ "Asigna una secuencia de teclas a una función Readline, o a una macro. La"
 
 #~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be"
-#~ msgstr "sintaxis es equivalente a la encontrada en ~/.inputrc, pero debe ser"
+#~ msgstr ""
+#~ "sintaxis es equivalente a la encontrada en ~/.inputrc, pero debe ser"
 
-#~ msgid "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
-#~ msgstr "pasada como un solo argumento: bind '\"\\C-x\\C-r\": re-read-init-file'."
+#~ msgid ""
+#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'."
+#~ msgstr ""
+#~ "pasada como un solo argumento: bind '\"\\C-x\\C-r\": re-read-init-file'."
 
 #~ msgid "Arguments we accept:"
 #~ msgstr "Argumentos que se aceptan:"
 
-#~ msgid "  -m  keymap         Use `keymap' as the keymap for the duration of this"
-#~ msgstr "  -m  mapa_teclas    Usa `mapa_teclas' como el mapa de teclas durante esta"
+#~ msgid ""
+#~ "  -m  keymap         Use `keymap' as the keymap for the duration of this"
+#~ msgstr ""
+#~ "  -m  mapa_teclas    Usa `mapa_teclas' como el mapa de teclas durante esta"
 
 #~ msgid "                     command.  Acceptable keymap names are emacs,"
-#~ msgstr "                     orden.  Los nombres de mapas de teclas aceptables son"
+#~ msgstr ""
+#~ "                     orden.  Los nombres de mapas de teclas aceptables son"
 
-#~ msgid "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
-#~ msgstr "                     emacs, emacs-standard, emacs-meta, emacs-ctlx, vi,"
+#~ msgid ""
+#~ "                     emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,"
+#~ msgstr ""
+#~ "                     emacs, emacs-standard, emacs-meta, emacs-ctlx, vi,"
 
 #~ msgid "                     vi-command, and vi-insert."
 #~ msgstr "                     vi-move, vi-command y vi-insert."
@@ -6267,10 +6651,14 @@ msgstr ""
 #~ msgstr "  -l                 Muestra los nombres de las funciones."
 
 #~ msgid "  -P                 List function names and bindings."
-#~ msgstr "  -P                 Muestra los nombres de funciones y asignaciones."
+#~ msgstr ""
+#~ "  -P                 Muestra los nombres de funciones y asignaciones."
 
-#~ msgid "  -p                 List functions and bindings in a form that can be"
-#~ msgstr "  -p                 Muestra las funciones y asignaciones en un formato que"
+#~ msgid ""
+#~ "  -p                 List functions and bindings in a form that can be"
+#~ msgstr ""
+#~ "  -p                 Muestra las funciones y asignaciones en un formato "
+#~ "que"
 
 #~ msgid "                     reused as input."
 #~ msgstr "                     puede reusarse como entrada."
@@ -6282,28 +6670,42 @@ msgstr ""
 #~ msgid "  -f  filename       Read key bindings from FILENAME."
 #~ msgstr "  -f  fichero        Lee la asignación de teclas de FICHERO."
 
-#~ msgid "  -q  function-name  Query about which keys invoke the named function."
-#~ msgstr "  -q  nombre-función Pregunta sobre qué teclas invocan la función nombrada."
+#~ msgid ""
+#~ "  -q  function-name  Query about which keys invoke the named function."
+#~ msgstr ""
+#~ "  -q  nombre-función Pregunta sobre qué teclas invocan la función "
+#~ "nombrada."
 
 #~ msgid "  -V                 List variable names and values"
 #~ msgstr "  -V                 Muestra los nombres de variables y valores"
 
-#~ msgid "  -v                 List variable names and values in a form that can"
-#~ msgstr "  -v                 Muestra los nombres de variables y valores de una forma que"
+#~ msgid ""
+#~ "  -v                 List variable names and values in a form that can"
+#~ msgstr ""
+#~ "  -v                 Muestra los nombres de variables y valores de una "
+#~ "forma que"
 
 #~ msgid "                     be reused as input."
 #~ msgstr "                     puede reusarse como entrada."
 
-#~ msgid "  -S                 List key sequences that invoke macros and their values"
+#~ msgid ""
+#~ "  -S                 List key sequences that invoke macros and their "
+#~ "values"
 #~ msgstr ""
-#~ "  -S                 Muestra las secuencias de teclas que invocan macros y sus\n"
+#~ "  -S                 Muestra las secuencias de teclas que invocan macros "
+#~ "y sus\n"
 #~ "                     valores"
 
-#~ msgid "  -s                 List key sequences that invoke macros and their values in"
-#~ msgstr "  -s                 Muestra las secuencias de teclas que invocan macros y sus"
+#~ msgid ""
+#~ "  -s                 List key sequences that invoke macros and their "
+#~ "values in"
+#~ msgstr ""
+#~ "  -s                 Muestra las secuencias de teclas que invocan macros "
+#~ "y sus"
 
 #~ msgid "                     a form that can be reused as input."
-#~ msgstr "                     valores en una forma que puede reusarse como entrada."
+#~ msgstr ""
+#~ "                     valores en una forma que puede reusarse como entrada."
 
 #~ msgid "break N levels."
 #~ msgstr "sale N niveles."
@@ -6315,7 +6717,8 @@ msgstr ""
 #~ msgstr "Ejecuta un shell interno. Esto es útil cuando desea renombrar un"
 
 #~ msgid "shell builtin to be a function, but need the functionality of the"
-#~ msgstr "shell interno para que sea una función, pero necesita la funcionalidad"
+#~ msgstr ""
+#~ "shell interno para que sea una función, pero necesita la funcionalidad"
 
 #~ msgid "builtin within the function itself."
 #~ msgstr "interna dentro de la misma función."
@@ -6327,29 +6730,40 @@ msgstr ""
 #~ msgstr "por omisión. La variable $CDPATH define la ruta de búsqueda para"
 
 #~ msgid "the directory containing DIR.  Alternative directory names in CDPATH"
-#~ msgstr "el directorio que contiene DIR. Los nombres alternativos de directorio en"
+#~ msgstr ""
+#~ "el directorio que contiene DIR. Los nombres alternativos de directorio en"
 
 #~ msgid "are separated by a colon (:).  A null directory name is the same as"
-#~ msgstr "CDPATH son separados por dos puntos (:). Un nombre de directorio nulo es"
+#~ msgstr ""
+#~ "CDPATH son separados por dos puntos (:). Un nombre de directorio nulo es"
 
 # Slash lo venimos traduciendo por barra inclinada , y backslash
 # por barra invertida em++
 #~ msgid "the current directory, i.e. `.'.  If DIR begins with a slash (/),"
-#~ msgstr "igual al directorio actual, p.e. `.'. Si DIR comienza con una barra inclinada"
+#~ msgstr ""
+#~ "igual al directorio actual, p.e. `.'. Si DIR comienza con una barra "
+#~ "inclinada"
 
 #~ msgid "then $CDPATH is not used.  If the directory is not found, and the"
-#~ msgstr "(/), entonces $CDPATH no se usa. Si el directorio no se encuentra, y"
+#~ msgstr ""
+#~ "(/), entonces $CDPATH no se usa. Si el directorio no se encuentra, y"
 
 #~ msgid "shell option `cdable_vars' is set, then try the word as a variable"
-#~ msgstr "la opción de shell `cdable_vars' está activa, entonces intenta la palabra"
+#~ msgstr ""
+#~ "la opción de shell `cdable_vars' está activa, entonces intenta la palabra"
 
 #~ msgid "name.  If that variable has a value, then cd to the value of that"
-#~ msgstr "como nombre de variable. Si esa variable tiene un valor, entonces se cambia al"
+#~ msgstr ""
+#~ "como nombre de variable. Si esa variable tiene un valor, entonces se "
+#~ "cambia al"
 
-#~ msgid "variable.  The -P option says to use the physical directory structure"
-#~ msgstr "valor de esa variable. La opción -P indica el uso de la estructura física"
+#~ msgid ""
+#~ "variable.  The -P option says to use the physical directory structure"
+#~ msgstr ""
+#~ "valor de esa variable. La opción -P indica el uso de la estructura física"
 
-#~ msgid "instead of following symbolic links; the -L option forces symbolic links"
+#~ msgid ""
+#~ "instead of following symbolic links; the -L option forces symbolic links"
 #~ msgstr "del directorio en lugar de seguir enlaces simbólicos; la opción -L"
 
 # forza -> fuerza? cfuga
@@ -6357,7 +6771,8 @@ msgstr ""
 #~ msgstr "fuerza que los vínculos simbólicos sean seguidos."
 
 #~ msgid "Print the current working directory.  With the -P option, pwd prints"
-#~ msgstr "Imprime el directorio actual de trabajo. Con la opción -P, pwd imprime"
+#~ msgstr ""
+#~ "Imprime el directorio actual de trabajo. Con la opción -P, pwd imprime"
 
 #~ msgid "the physical directory, without any symbolic links; the -L option"
 #~ msgstr "el directorio físico, sin ningún enlace simbólico; la opción -L"
@@ -6365,31 +6780,42 @@ msgstr ""
 #~ msgid "makes pwd follow symbolic links."
 #~ msgstr "hace que pwd siga los enlaces simbólicos."
 
-#~ msgid "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
+#~ msgid ""
+#~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell"
 #~ msgstr "Ejecuta ORDEN con ARGUMENTOS ignorando las funciones del shell. Si"
 
 #~ msgid "function called `ls', and you wish to call the command `ls', you can"
-#~ msgstr "tiene una función de shell llamada `ls', y desea llamar a la orden `ls',"
+#~ msgstr ""
+#~ "tiene una función de shell llamada `ls', y desea llamar a la orden `ls',"
 
-#~ msgid "say \"command ls\".  If the -p option is given, a default value is used"
-#~ msgstr "se puede decir \"command ls\". Si se especifica la opción -p, se usa un valor"
+#~ msgid ""
+#~ "say \"command ls\".  If the -p option is given, a default value is used"
+#~ msgstr ""
+#~ "se puede decir \"command ls\". Si se especifica la opción -p, se usa un "
+#~ "valor"
 
 # es usado -> se usa. sv
 # De acuerdo. La corrección incluye también la línea anterior. cfuga
-#~ msgid "for PATH that is guaranteed to find all of the standard utilities.  If"
-#~ msgstr "por omisión para PATH que garantiza encontrar todas las herramientas estándar."
+#~ msgid ""
+#~ "for PATH that is guaranteed to find all of the standard utilities.  If"
+#~ msgstr ""
+#~ "por omisión para PATH que garantiza encontrar todas las herramientas "
+#~ "estándar."
 
 # es impresa -> se muestra una cadena em+
 # "Si se da la opcón -V o -v,..." sv
 # De acuerdo. cfuga
-#~ msgid "the -V or -v option is given, a string is printed describing COMMAND."
-#~ msgstr "Si se da la opción -V o -v, se muestra una cadena describiendo la ORDEN."
+#~ msgid ""
+#~ "the -V or -v option is given, a string is printed describing COMMAND."
+#~ msgstr ""
+#~ "Si se da la opción -V o -v, se muestra una cadena describiendo la ORDEN."
 
 #~ msgid "The -V option produces a more verbose description."
 #~ msgstr "La opción -V produce una descripción más completa."
 
 #~ msgid "Declare variables and/or give them attributes.  If no NAMEs are"
-#~ msgstr "Declara variables y/o les da atributos. Si no se proporcionan NOMBREs,"
+#~ msgstr ""
+#~ "Declara variables y/o les da atributos. Si no se proporcionan NOMBREs,"
 
 #~ msgid "given, then display the values of variables instead.  The -p option"
 #~ msgstr "entonces muestra los valores de las variables. La opción -p"
@@ -6434,11 +6860,14 @@ msgstr ""
 #~ msgstr "solamente el nombre de la función."
 
 # apaga -> desactiva em+
-#~ msgid "Using `+' instead of `-' turns off the given attribute instead.  When"
-#~ msgstr "Usar `+' en lugar de `-' desactiva el atributo dado. Cuando es usado"
+#~ msgid ""
+#~ "Using `+' instead of `-' turns off the given attribute instead.  When"
+#~ msgstr ""
+#~ "Usar `+' en lugar de `-' desactiva el atributo dado. Cuando es usado"
 
 #~ msgid "used in a function, makes NAMEs local, as with the `local' command."
-#~ msgstr "en una función, hace los NOMBREs locales, como con la orden `local'."
+#~ msgstr ""
+#~ "en una función, hace los NOMBREs locales, como con la orden `local'."
 
 # y le da -> y le asigna em+
 #~ msgid "Create a local variable called NAME, and give it VALUE.  LOCAL"
@@ -6452,7 +6881,8 @@ msgstr ""
 #~ msgstr "Muestra los ARGumentos. Si -n es especificado, el carácter final de"
 
 #~ msgid "suppressed.  If the -e option is given, interpretation of the"
-#~ msgstr "fin de línea es eliminado. Si se especifica la opción -e, se activa la"
+#~ msgstr ""
+#~ "fin de línea es eliminado. Si se especifica la opción -e, se activa la"
 
 #~ msgid "following backslash-escaped characters is turned on:"
 #~ msgstr "interpretación de estos caracteres de escape con barras invertidas:"
@@ -6490,7 +6920,8 @@ msgstr ""
 #~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)."
 #~ msgstr "\t\\num\tel carácter cuyo código ASCII es NÚM (octal)."
 
-#~ msgid "You can explicitly turn off the interpretation of the above characters"
+#~ msgid ""
+#~ "You can explicitly turn off the interpretation of the above characters"
 #~ msgstr "Puede desactivar explícitamente la interpretación de los siguientes"
 
 #~ msgid "with the -E option."
@@ -6500,7 +6931,8 @@ msgstr ""
 #~ msgstr "Activa y desactiva las órdenes internas del shell. Esto permite"
 
 #~ msgid "you to use a disk command which has the same name as a shell"
-#~ msgstr "que use una orden del sistema que tenga el mismo nombre de una orden"
+#~ msgstr ""
+#~ "que use una orden del sistema que tenga el mismo nombre de una orden"
 
 #~ msgid "builtin.  If -n is used, the NAMEs become disabled; otherwise"
 #~ msgstr "interna.  Si se usa -n , los NOMBREs se desactivan; de otra forma"
@@ -6524,14 +6956,17 @@ msgstr ""
 #~ msgstr "La opción -d borrará una orden interna cargada con -f. Si no"
 
 #~ msgid "non-option names are given, or the -p option is supplied, a list"
-#~ msgstr "se especifica ninguna opción, o se especifica la opción -p, se muestra una lista"
+#~ msgstr ""
+#~ "se especifica ninguna opción, o se especifica la opción -p, se muestra "
+#~ "una lista"
 
 # Se muestra una lista de órdenes internas. sv
 # Hay muchos más mensajes que están en "pasiva" que quedarían mejor en
 # forma "reflexiva". No comento más y te dejo que los mires despacio.
 # Gracias por la observación. cfuga
 #~ msgid "of builtins is printed.  The -a option means to print every builtin"
-#~ msgstr "de órdenes internas. La opción -a implica mostrar cada orden interno"
+#~ msgstr ""
+#~ "de órdenes internas. La opción -a implica mostrar cada orden interno"
 
 #~ msgid "with an indication of whether or not it is enabled.  The -s option"
 #~ msgstr "con una indicación de si está activa o no. La opción -s impide"
@@ -6551,10 +6986,13 @@ msgstr ""
 # Yo pondría "las letras de opción que se reconocen". sv
 # De acuerdo. cfuga
 #~ msgid "OPTSTRING contains the option letters to be recognized; if a letter"
-#~ msgstr "La CADENA_OPCIONES contiene las letras de opción que se reconocen; si una"
+#~ msgstr ""
+#~ "La CADENA_OPCIONES contiene las letras de opción que se reconocen; si una"
 
 #~ msgid "is followed by a colon, the option is expected to have an argument,"
-#~ msgstr "letra es seguida de dos puntos, se espera que la opción tenga un argumento,"
+#~ msgstr ""
+#~ "letra es seguida de dos puntos, se espera que la opción tenga un "
+#~ "argumento,"
 
 #~ msgid "which should be separated from it by white space."
 #~ msgstr "que debe estar separado por espacios."
@@ -6563,10 +7001,12 @@ msgstr ""
 #~ msgstr "Cada vez que se llama, getopts colocará la siguiente opción en"
 
 #~ msgid "shell variable $name, initializing name if it does not exist, and"
-#~ msgstr "la variable de shell $nombre, creando nombre si no existe, y el índice"
+#~ msgstr ""
+#~ "la variable de shell $nombre, creando nombre si no existe, y el índice"
 
 #~ msgid "the index of the next argument to be processed into the shell"
-#~ msgstr "del siguiente argumento para procesarse dentro de la variable del shell"
+#~ msgstr ""
+#~ "del siguiente argumento para procesarse dentro de la variable del shell"
 
 #~ msgid "variable OPTIND.  OPTIND is initialized to 1 each time the shell or"
 #~ msgstr "OPTIND. OPTIND inicia con 1 cada vez que el shell o un guión de"
@@ -6579,25 +7019,32 @@ msgstr ""
 
 # en una de dos formas -> en una de las dos formas siguientes em+
 #~ msgid "getopts reports errors in one of two ways.  If the first character"
-#~ msgstr "getopts comunica errores en una de las dos formas siguientes. Si el primer carácter"
+#~ msgstr ""
+#~ "getopts comunica errores en una de las dos formas siguientes. Si el "
+#~ "primer carácter"
 
 #~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting.  In"
-#~ msgstr "de OPTSTRING es dos puntos, getopts usa el aviso de error silencioso."
+#~ msgstr ""
+#~ "de OPTSTRING es dos puntos, getopts usa el aviso de error silencioso."
 
 #~ msgid "this mode, no error messages are printed.  If an illegal option is"
-#~ msgstr "En este modo, no se muestran mensajes de error.  Si se encuentra una opción"
+#~ msgstr ""
+#~ "En este modo, no se muestran mensajes de error.  Si se encuentra una "
+#~ "opción"
 
 #~ msgid "seen, getopts places the option character found into OPTARG.  If a"
 #~ msgstr "ilegal, getopts coloca el carácter de opción encontrado en OPTARG."
 
 #~ msgid "required argument is not found, getopts places a ':' into NAME and"
-#~ msgstr "Si un argumento necesario no se encuentra, getopts coloca ':' en NOMBRE"
+#~ msgstr ""
+#~ "Si un argumento necesario no se encuentra, getopts coloca ':' en NOMBRE"
 
 #~ msgid "sets OPTARG to the option character found.  If getopts is not in"
 #~ msgstr "y establece a OPTARG con el carácter de opción encontrado.  Si"
 
 #~ msgid "silent mode, and an illegal option is seen, getopts places '?' into"
-#~ msgstr "getopts no está en modo silencioso, y se encuentra una opción ilegal,"
+#~ msgstr ""
+#~ "getopts no está en modo silencioso, y se encuentra una opción ilegal,"
 
 #~ msgid "NAME and unsets OPTARG.  If a required option is not found, a '?'"
 #~ msgstr "getopts coloca '?' en NOMBRE y borra OPTARG.  Si no se encuentra"
@@ -6606,7 +7053,8 @@ msgstr ""
 #~ msgstr "una opción necesaria, se coloca un '?' en NOMBRE, se borra OPTARG,"
 
 #~ msgid "If the shell variable OPTERR has the value 0, getopts disables the"
-#~ msgstr "Si la variable de shell OPTERR tiene el valor 0, getopts deshabilita"
+#~ msgstr ""
+#~ "Si la variable de shell OPTERR tiene el valor 0, getopts deshabilita"
 
 #~ msgid "printing of error messages, even if the first character of"
 #~ msgstr "la notificación de mensajes de error, aún si el primer carácter de"
@@ -6615,23 +7063,29 @@ msgstr ""
 #~ msgstr "OPTSTRING no es ':'.  OPTERR tiene el valor de 1 por omisión."
 
 #~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if"
-#~ msgstr "Getopts normalmente compara los parámetros de posición ($0 - $9), pero"
+#~ msgstr ""
+#~ "Getopts normalmente compara los parámetros de posición ($0 - $9), pero"
 
 # dar argumentos -> especificar em+
 #~ msgid "more arguments are given, they are parsed instead."
-#~ msgstr "si se especifican más argumentos, se comparan en lugar de los primeros."
+#~ msgstr ""
+#~ "si se especifican más argumentos, se comparan en lugar de los primeros."
 
 #~ msgid "Exec FILE, replacing this shell with the specified program."
-#~ msgstr "Ejecuta el FICHERO, reemplazando este shell con el programa especificado."
+#~ msgstr ""
+#~ "Ejecuta el FICHERO, reemplazando este shell con el programa especificado."
 
 #~ msgid "If FILE is not specified, the redirections take effect in this"
-#~ msgstr "Si no se especifica un FICHERO, las redirecciones toman efecto en este"
+#~ msgstr ""
+#~ "Si no se especifica un FICHERO, las redirecciones toman efecto en este"
 
 #~ msgid "shell.  If the first argument is `-l', then place a dash in the"
 #~ msgstr "shell.  Si el primer argumento es `-l', entonces coloca un guión en"
 
 #~ msgid "zeroth arg passed to FILE, as login does.  If the `-c' option"
-#~ msgstr "el argumento 0 pasado al FICHERO, como lo hace login. Si se especifica la opción"
+#~ msgstr ""
+#~ "el argumento 0 pasado al FICHERO, como lo hace login. Si se especifica la "
+#~ "opción"
 
 #~ msgid "is supplied, FILE is executed with a null environment.  The `-a'"
 #~ msgstr "`-c', el FICHERO se ejecuta en un entorno nulo. La opción `-a'"
@@ -6651,8 +7105,10 @@ msgstr ""
 #~ msgid "is that of the last command executed."
 #~ msgstr "es el del último comando ejecutado."
 
-#~ msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
-#~ msgstr "PRIMERO y ÚLTIMO pueden ser números especificando el rango, o PRIMERO"
+#~ msgid ""
+#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a"
+#~ msgstr ""
+#~ "PRIMERO y ÚLTIMO pueden ser números especificando el rango, o PRIMERO"
 
 #~ msgid "string, which means the most recent command beginning with that"
 #~ msgstr "puede ser una cadena, que representa el comando más reciente que"
@@ -6660,10 +7116,13 @@ msgstr ""
 #~ msgid "string."
 #~ msgstr "comience con dicha cadena."
 
-#~ msgid "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
-#~ msgstr "   -e NOMBRE_E escoge qué editor emplear.  Por omisión es FCEDIT, después"
+#~ msgid ""
+#~ "   -e ENAME selects which editor to use.  Default is FCEDIT, then EDITOR,"
+#~ msgstr ""
+#~ "   -e NOMBRE_E escoge qué editor emplear.  Por omisión es FCEDIT, después"
 
-#~ msgid "      then the editor which corresponds to the current readline editing"
+#~ msgid ""
+#~ "      then the editor which corresponds to the current readline editing"
 #~ msgstr "      EDITOR, después el editor que corresponde a la edición actual"
 
 #~ msgid "      mode, then vi."
@@ -6675,29 +7134,37 @@ msgstr ""
 #~ msgid "   -n means no line numbers listed."
 #~ msgstr "   -n significa que no sean mostrados los números de línea."
 
-#~ msgid "   -r means reverse the order of the lines (making it newest listed first)."
-#~ msgstr "   -r significa invertir el orden de las líneas (líneas nuevas primero)."
+#~ msgid ""
+#~ "   -r means reverse the order of the lines (making it newest listed "
+#~ "first)."
+#~ msgstr ""
+#~ "   -r significa invertir el orden de las líneas (líneas nuevas primero)."
 
 #~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is"
 #~ msgstr "Con el formato `fc -s [pat=rep ...] [orden]', la orden es"
 
 #~ msgid "re-executed after the substitution OLD=NEW is performed."
-#~ msgstr "re-ejecutado después de que se realiza la sustitución ANTIGUA=NUEVA."
+#~ msgstr ""
+#~ "re-ejecutado después de que se realiza la sustitución ANTIGUA=NUEVA."
 
 #~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'"
-#~ msgstr "Un alias útil para usar con esto es r='fc -s', así que al teclear `r cc'"
+#~ msgstr ""
+#~ "Un alias útil para usar con esto es r='fc -s', así que al teclear `r cc'"
 
 #~ msgid "runs the last command beginning with `cc' and typing `r' re-executes"
-#~ msgstr "ejecuta la última orden que comenzó con `cc' y tecleando `r' re-ejecuta"
+#~ msgstr ""
+#~ "ejecuta la última orden que comenzó con `cc' y tecleando `r' re-ejecuta"
 
 #~ msgid "JOB_SPEC is not present, the shell's notion of the current job is"
-#~ msgstr "Si el IDTRABAJO no se encuentra, se usa la noción del shell de trabajo"
+#~ msgstr ""
+#~ "Si el IDTRABAJO no se encuentra, se usa la noción del shell de trabajo"
 
 #~ msgid "used."
 #~ msgstr "actual."
 
 #~ msgid "Place JOB_SPEC in the background, as if it had been started with"
-#~ msgstr "Ubica al IDTRABAJO en el background, como si hubiera sido iniciado con"
+#~ msgstr ""
+#~ "Ubica al IDTRABAJO en el background, como si hubiera sido iniciado con"
 
 #~ msgid "`&'.  If JOB_SPEC is not present, the shell's notion of the current"
 #~ msgstr "`&'.  Si el IDTRABAJO no se encuentra, se usa la noción del shell"
@@ -6712,37 +7179,55 @@ msgstr ""
 #~ msgstr "recuerda.  Si se especifica la opción -p, se usa la RUTA_DE_ACCESO"
 
 #~ msgid "full pathname of NAME, and no path search is performed.  The -r"
-#~ msgstr "como la ruta completa de NOMBRE y no se realiza la búsqueda de ruta."
+#~ msgstr ""
+#~ "como la ruta completa de NOMBRE y no se realiza la búsqueda de ruta."
 
 #~ msgid "option causes the shell to forget all remembered locations.  If no"
-#~ msgstr "  La opción -r hace que el shell olvide todas las ubicaciones recordadas."
+#~ msgstr ""
+#~ "  La opción -r hace que el shell olvide todas las ubicaciones recordadas."
 
-#~ msgid "arguments are given, information about remembered commands is displayed."
-#~ msgstr "  Si no se especifican argumentos, se muestra la información sobre las órdenes recordadas."
+#~ msgid ""
+#~ "arguments are given, information about remembered commands is displayed."
+#~ msgstr ""
+#~ "  Si no se especifican argumentos, se muestra la información sobre las "
+#~ "órdenes recordadas."
 
 #~ msgid "Display helpful information about builtin commands.  If PATTERN is"
 #~ msgstr "Muestra información de ayuda acerca de las órdenes internas.  Si se"
 
 #~ msgid "specified, gives detailed help on all commands matching PATTERN,"
-#~ msgstr "especifica la PLANTILLA, da ayuda detallada de todas las órdenes que"
+#~ msgstr ""
+#~ "especifica la PLANTILLA, da ayuda detallada de todas las órdenes que"
 
 #~ msgid "otherwise a list of the builtins is printed."
-#~ msgstr "coinciden con la PLANTILLA, de otra forma se muestra una lista de las órdenes internas."
+#~ msgstr ""
+#~ "coinciden con la PLANTILLA, de otra forma se muestra una lista de las "
+#~ "órdenes internas."
 
 #~ msgid "Display the history list with line numbers.  Lines listed with"
-#~ msgstr "Muestra la lista de la historia con números de línea.  Las líneas mostradas"
+#~ msgstr ""
+#~ "Muestra la lista de la historia con números de línea.  Las líneas "
+#~ "mostradas"
 
 #~ msgid "with a `*' have been modified.  Argument of N says to list only"
-#~ msgstr "con un `*' han sido modificadas.  Un argumento de N indica que solo se"
+#~ msgstr ""
+#~ "con un `*' han sido modificadas.  Un argumento de N indica que solo se"
 
 #~ msgid "the last N lines.  The -c option causes the history list to be"
-#~ msgstr "muestren las últimas N líneas.  La opción -c hace que la lista de la historia"
+#~ msgstr ""
+#~ "muestren las últimas N líneas.  La opción -c hace que la lista de la "
+#~ "historia"
 
-#~ msgid "cleared by deleting all of the entries.  The `-w' option writes out the"
-#~ msgstr "sea borrada eliminando todas las entradas.  La opción `-w' escribe la historia"
+#~ msgid ""
+#~ "cleared by deleting all of the entries.  The `-w' option writes out the"
+#~ msgstr ""
+#~ "sea borrada eliminando todas las entradas.  La opción `-w' escribe la "
+#~ "historia"
 
-#~ msgid "current history to the history file;  `-r' means to read the file and"
-#~ msgstr "actual al fichero de historia;  `-r' al contrario, lee el fichero y agrega"
+#~ msgid ""
+#~ "current history to the history file;  `-r' means to read the file and"
+#~ msgstr ""
+#~ "actual al fichero de historia;  `-r' al contrario, lee el fichero y agrega"
 
 #~ msgid "append the contents to the history list instead.  `-a' means"
 #~ msgstr "el contenido a la lista de la historia.  `-a' agrega las"
@@ -6754,48 +7239,73 @@ msgstr ""
 #~ msgstr "El argumento `-n' lee todas las líneas de historia que no han sido"
 
 #~ msgid "from the history file and append them to the history list.  If"
-#~ msgstr "leídas aún del fichero de historia y las agrega a la lista de historia."
+#~ msgstr ""
+#~ "leídas aún del fichero de historia y las agrega a la lista de historia."
 
 #~ msgid "FILENAME is given, then that is used as the history file else"
-#~ msgstr "  Si se especifica un FICHERO, entonces se usa como el fichero de historia"
+#~ msgstr ""
+#~ "  Si se especifica un FICHERO, entonces se usa como el fichero de historia"
 
 #~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history."
-#~ msgstr "de otra manera si $HISTFILE tiene un valor, se utiliza, de otra forma se usa ~/.bash_history."
+#~ msgstr ""
+#~ "de otra manera si $HISTFILE tiene un valor, se utiliza, de otra forma se "
+#~ "usa ~/.bash_history."
 
 #~ msgid "If the -s option is supplied, the non-option ARGs are appended to"
-#~ msgstr "Si se especifica la opción -s, los ARGumentos que no son opciones se"
+#~ msgstr ""
+#~ "Si se especifica la opción -s, los ARGumentos que no son opciones se"
 
 #~ msgid "the history list as a single entry.  The -p option means to perform"
-#~ msgstr "agregan a la lista de historia como una sola entrada.  La opción -p realiza"
+#~ msgstr ""
+#~ "agregan a la lista de historia como una sola entrada.  La opción -p "
+#~ "realiza"
 
-#~ msgid "history expansion on each ARG and display the result, without storing"
-#~ msgstr "una expansión de historia en cada ARGumento y muestra el resultado, sin guardar"
+#~ msgid ""
+#~ "history expansion on each ARG and display the result, without storing"
+#~ msgstr ""
+#~ "una expansión de historia en cada ARGumento y muestra el resultado, sin "
+#~ "guardar"
 
 #~ msgid "anything in the history list."
 #~ msgstr "nada en la lista de historia."
 
 #~ msgid "Lists the active jobs.  The -l option lists process id's in addition"
-#~ msgstr "Muestra los trabajos activos.  La opción -l muestra los id's de los procesos además"
+#~ msgstr ""
+#~ "Muestra los trabajos activos.  La opción -l muestra los id's de los "
+#~ "procesos además"
 
 #~ msgid "to the normal information; the -p option lists process id's only."
-#~ msgstr "de la información normal; la opción -p solamente muestra los id's de los procesos."
+#~ msgstr ""
+#~ "de la información normal; la opción -p solamente muestra los id's de los "
+#~ "procesos."
 
-#~ msgid "If -n is given, only processes that have changed status since the last"
-#~ msgstr "Si se especifica -n, solamente se muestran los procesos que han cambiado"
+#~ msgid ""
+#~ "If -n is given, only processes that have changed status since the last"
+#~ msgstr ""
+#~ "Si se especifica -n, solamente se muestran los procesos que han cambiado"
 
-#~ msgid "notification are printed.  JOBSPEC restricts output to that job.  The"
-#~ msgstr "de estado desde la última notificación.  IDJOB limita la salida a ese trabajo.  Las"
+#~ msgid ""
+#~ "notification are printed.  JOBSPEC restricts output to that job.  The"
+#~ msgstr ""
+#~ "de estado desde la última notificación.  IDJOB limita la salida a ese "
+#~ "trabajo.  Las"
 
 #~ msgid "-r and -s options restrict output to running and stopped jobs only,"
-#~ msgstr "opciones -r y -s limitan la salida a mostrar sólo trabajos corriendo y detenidos,"
+#~ msgstr ""
+#~ "opciones -r y -s limitan la salida a mostrar sólo trabajos corriendo y "
+#~ "detenidos,"
 
 #~ msgid "respectively.  Without options, the status of all active jobs is"
 #~ msgstr "respectivamente.  Sin opciones, se muestra el estado de todos los"
 
-#~ msgid "printed.  If -x is given, COMMAND is run after all job specifications"
-#~ msgstr "trabajos activos.  Si se especifica -x, la ORDEN se ejecuta después de que todas las especificaciones de trabajos"
+#~ msgid ""
+#~ "printed.  If -x is given, COMMAND is run after all job specifications"
+#~ msgstr ""
+#~ "trabajos activos.  Si se especifica -x, la ORDEN se ejecuta después de "
+#~ "que todas las especificaciones de trabajos"
 
-#~ msgid "that appear in ARGS have been replaced with the process ID of that job's"
+#~ msgid ""
+#~ "that appear in ARGS have been replaced with the process ID of that job's"
 #~ msgstr "que aparecen en ARGS han sido reemplazadas por el ID de proceso del"
 
 #~ msgid "process group leader."
@@ -6805,36 +7315,47 @@ msgstr ""
 #~ msgstr "Elimina cada argumento IDJOBS de la tabla de trabajos activos."
 
 #~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC.  If"
-#~ msgstr "Manda a los procesos nombrados por PID (o TRABAJO) la señal SIGSPEC.  Si"
+#~ msgstr ""
+#~ "Manda a los procesos nombrados por PID (o TRABAJO) la señal SIGSPEC.  Si"
 
-#~ msgid "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
-#~ msgstr "no se especifica SIGSPEC, entonces se asume SIGTERM.  El argumento `-l'"
+#~ msgid ""
+#~ "SIGSPEC is not present, then SIGTERM is assumed.  An argument of `-l'"
+#~ msgstr ""
+#~ "no se especifica SIGSPEC, entonces se asume SIGTERM.  El argumento `-l'"
 
 #~ msgid "lists the signal names; if arguments follow `-l' they are assumed to"
-#~ msgstr "muestra los nombres de señales; si hay argumentos después de `-l', se"
+#~ msgstr ""
+#~ "muestra los nombres de señales; si hay argumentos después de `-l', se"
 
 #~ msgid "be signal numbers for which names should be listed.  Kill is a shell"
-#~ msgstr "asume que son números de señales cuyos nombres deben mostrarse.  Kill es una orden"
+#~ msgstr ""
+#~ "asume que son números de señales cuyos nombres deben mostrarse.  Kill es "
+#~ "una orden"
 
 #~ msgid "builtin for two reasons: it allows job IDs to be used instead of"
-#~ msgstr "interna de shell por dos razones:  permite que los IDs de trabajos sean usados en lugar de "
+#~ msgstr ""
+#~ "interna de shell por dos razones:  permite que los IDs de trabajos sean "
+#~ "usados en lugar de "
 
 #~ msgid "process IDs, and, if you have reached the limit on processes that"
 #~ msgstr "IDs de procesos, y, si ha alcanzado el límite de procesos que"
 
-#~ msgid "you can create, you don't have to start a process to kill another one."
+#~ msgid ""
+#~ "you can create, you don't have to start a process to kill another one."
 #~ msgstr "puede crear, no tiene que iniciar un proceso para eliminar a otro."
 
 # "a ser evaluada" no está en español. sv
 # Cierto. ¿Así está mejor? cfuga
 #~ msgid "Each ARG is an arithmetic expression to be evaluated.  Evaluation"
-#~ msgstr "Cada ARGumento es una expresión aritmética para evaluarse.  La evaluación"
+#~ msgstr ""
+#~ "Cada ARGumento es una expresión aritmética para evaluarse.  La evaluación"
 
 # overflow -> desbordamiento o sobrepasamiento. nunca lo he visto
 # traducido como sobreflujo. sv
 # Corregido. cfuga
 #~ msgid "is done in long integers with no check for overflow, though division"
-#~ msgstr "se hace en enteros long sin revisar desbordamientos, aunque la división"
+#~ msgstr ""
+#~ "se hace en enteros long sin revisar desbordamientos, aunque la división"
 
 #~ msgid "by 0 is trapped and flagged as an error.  The following list of"
 #~ msgstr "por 0 es capturada y marcada como un error.  La siguiente lista de"
@@ -6843,7 +7364,8 @@ msgstr ""
 # Yo pondría simplemente "prioridad". sv
 # Creo que si existe, pero tu sugerencia es mejor. cfuga
 #~ msgid "operators is grouped into levels of equal-precedence operators."
-#~ msgstr "operadores está agrupada en niveles de operadores de la misma prioridad."
+#~ msgstr ""
+#~ "operadores está agrupada en niveles de operadores de la misma prioridad."
 
 #~ msgid "The levels are listed in order of decreasing precedence."
 #~ msgstr "Se muestran los niveles en orden de prioridad decreciente."
@@ -6909,7 +7431,8 @@ msgstr ""
 #~ msgstr "entero para que se use en una expresión."
 
 #~ msgid "Operators are evaluated in order of precedence.  Sub-expressions in"
-#~ msgstr "Los operadores se evalúan en orden de prioridad.  Se evalúan en primer"
+#~ msgstr ""
+#~ "Los operadores se evalúan en orden de prioridad.  Se evalúan en primer"
 
 #~ msgid "parentheses are evaluated first and may override the precedence"
 #~ msgstr "lugar las sub-expresiones en paréntesis y pueden sobrepasar las"
@@ -6926,32 +7449,52 @@ msgstr ""
 #~ msgid "One line is read from the standard input, and the first word is"
 #~ msgstr "Una línea se lee de la entrada estándar, y la primera palabra se"
 
-#~ msgid "assigned to the first NAME, the second word to the second NAME, and so"
-#~ msgstr "asigna al primer NOMBRE, la segunda palabra al segundo NOMBRE, y así"
+#~ msgid ""
+#~ "assigned to the first NAME, the second word to the second NAME, and so"
+#~ msgstr ""
+#~ "asigna al primer NOMBRE, la segunda palabra al segundo NOMBRE, y así"
 
-#~ msgid "on, with leftover words assigned to the last NAME.  Only the characters"
-#~ msgstr "con las palabras restantes asignadas al último NOMBRE.  Solo los caracteres"
+#~ msgid ""
+#~ "on, with leftover words assigned to the last NAME.  Only the characters"
+#~ msgstr ""
+#~ "con las palabras restantes asignadas al último NOMBRE.  Solo los "
+#~ "caracteres"
 
 #~ msgid "found in $IFS are recognized as word delimiters.  The return code is"
-#~ msgstr "que se encuentran en $IFS se reconocen como delimitadores de palabras.  El"
+#~ msgstr ""
+#~ "que se encuentran en $IFS se reconocen como delimitadores de palabras.  El"
 
-#~ msgid "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
-#~ msgstr "código de retorno es cero, a menos que se encuentre un fin-de-fichero.  Si no"
+#~ msgid ""
+#~ "zero, unless end-of-file is encountered.  If no NAMEs are supplied, the"
+#~ msgstr ""
+#~ "código de retorno es cero, a menos que se encuentre un fin-de-fichero.  "
+#~ "Si no"
 
-#~ msgid "line read is stored in the REPLY variable.  If the -r option is given,"
-#~ msgstr "se establece ningún NOMBRE, la línea leída se guarda en la variable REPLY.  Si"
+#~ msgid ""
+#~ "line read is stored in the REPLY variable.  If the -r option is given,"
+#~ msgstr ""
+#~ "se establece ningún NOMBRE, la línea leída se guarda en la variable "
+#~ "REPLY.  Si"
 
 #~ msgid "this signifies `raw' input, and backslash escaping is disabled.  If"
-#~ msgstr "se proporciona la opción -r, esto significa entrada `textual', y se desactiva"
+#~ msgstr ""
+#~ "se proporciona la opción -r, esto significa entrada `textual', y se "
+#~ "desactiva"
 
 #~ msgid "the `-p' option is supplied, the string supplied as an argument is"
 #~ msgstr "el escape de la barra invertida.  Si se proporciona la opción `-p',"
 
-#~ msgid "output without a trailing newline before attempting to read.  If -a is"
-#~ msgstr "se muestra la cadena proporcionada como argumento sin un fín de línea terminal antes de intentar leerla."
+#~ msgid ""
+#~ "output without a trailing newline before attempting to read.  If -a is"
+#~ msgstr ""
+#~ "se muestra la cadena proporcionada como argumento sin un fín de línea "
+#~ "terminal antes de intentar leerla."
 
-#~ msgid "supplied, the words read are assigned to sequential indices of ARRAY,"
-#~ msgstr "Si se da -a, se asignan las palabras leídas a índices secuenciales de MATRIZ"
+#~ msgid ""
+#~ "supplied, the words read are assigned to sequential indices of ARRAY,"
+#~ msgstr ""
+#~ "Si se da -a, se asignan las palabras leídas a índices secuenciales de "
+#~ "MATRIZ"
 
 #~ msgid "starting at zero.  If -e is supplied and the shell is interactive,"
 #~ msgstr "iniciando en cero.  Si se da -e y el shell es interactivo,"
@@ -6963,31 +7506,41 @@ msgstr ""
 #~ msgstr "se omite N, se utiliza el código de estado de la última orden."
 
 #~ msgid "    -a  Mark variables which are modified or created for export."
-#~ msgstr "    -a  Marca las variables que se modifican o crean para exportación."
+#~ msgstr ""
+#~ "    -a  Marca las variables que se modifican o crean para exportación."
 
 #~ msgid "    -b  Notify of job termination immediately."
 #~ msgstr "    -b  Notifica el término de trabajos inmediatamente."
 
 #~ msgid "    -e  Exit immediately if a command exits with a non-zero status."
-#~ msgstr "    -e  Termina inmediatamente si una orden termina con un estado diferente a cero."
+#~ msgstr ""
+#~ "    -e  Termina inmediatamente si una orden termina con un estado "
+#~ "diferente a cero."
 
 #~ msgid "    -f  Disable file name generation (globbing)."
-#~ msgstr "    -f  Desactiva la generación de nombres de ficheros (englobamiento)."
+#~ msgstr ""
+#~ "    -f  Desactiva la generación de nombres de ficheros (englobamiento)."
 
 #~ msgid "    -h  Remember the location of commands as they are looked up."
-#~ msgstr "    -h  Recuerda la ubicación de las órdenes como fueron localizadas."
+#~ msgstr ""
+#~ "    -h  Recuerda la ubicación de las órdenes como fueron localizadas."
 
-#~ msgid "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
-#~ msgstr "    -i  Fuerza que el shell sea \"interactive\".  Los shells interactivos"
+#~ msgid ""
+#~ "    -i  Force the shell to be an \"interactive\" one.  Interactive shells"
+#~ msgstr ""
+#~ "    -i  Fuerza que el shell sea \"interactive\".  Los shells interactivos"
 
 #~ msgid "        always read `~/.bashrc' on startup."
 #~ msgstr "        siempre leen `~/.bashrc' al inicio."
 
 #~ msgid "    -k  All assignment arguments are placed in the environment for a"
-#~ msgstr "    -k  Todos los argumentos de asignación se ubican en el ambiente para una"
+#~ msgstr ""
+#~ "    -k  Todos los argumentos de asignación se ubican en el ambiente para "
+#~ "una"
 
 #~ msgid "        command, not just those that precede the command name."
-#~ msgstr "        orden, no solamente aquéllos que preceden al nombre de la orden."
+#~ msgstr ""
+#~ "        orden, no solamente aquéllos que preceden al nombre de la orden."
 
 #~ msgid "    -m  Job control is enabled."
 #~ msgstr "    -m  Se activa el control de trabajos."
@@ -7008,7 +7561,8 @@ msgstr ""
 #~ msgstr "            braceexpand  igual que -B"
 
 #~ msgid "            emacs        use an emacs-style line editing interface"
-#~ msgstr "            emacs        usa una interfaz de edición de línea estilo emacs"
+#~ msgstr ""
+#~ "            emacs        usa una interfaz de edición de línea estilo emacs"
 
 #~ msgid "            errexit      same as -e"
 #~ msgstr "            errexit      igual que -e"
@@ -7025,8 +7579,11 @@ msgstr ""
 #~ msgid "            interactive-comments"
 #~ msgstr "            interactive-comments"
 
-#~ msgid "                         allow comments to appear in interactive commands"
-#~ msgstr "                         permite que los comentarios se muestren en órdenes interactivas"
+#~ msgid ""
+#~ "                         allow comments to appear in interactive commands"
+#~ msgstr ""
+#~ "                         permite que los comentarios se muestren en "
+#~ "órdenes interactivas"
 
 #~ msgid "            keyword      same as -k"
 #~ msgstr "            keyword      igual que -k"
@@ -7055,11 +7612,15 @@ msgstr ""
 #~ msgid "            physical     same as -P"
 #~ msgstr "            physical     same as -P"
 
-#~ msgid "            posix        change the behavior of bash where the default"
-#~ msgstr "            posix        cambia la conducta de bash donde por omisión"
+#~ msgid ""
+#~ "            posix        change the behavior of bash where the default"
+#~ msgstr ""
+#~ "            posix        cambia la conducta de bash donde por omisión"
 
-#~ msgid "                         operation differs from the 1003.2 standard to"
-#~ msgstr "                         la operación difiere del estándar 1003.2 para"
+#~ msgid ""
+#~ "                         operation differs from the 1003.2 standard to"
+#~ msgstr ""
+#~ "                         la operación difiere del estándar 1003.2 para"
 
 #~ msgid "                         match the standard"
 #~ msgstr "                         cumplir el estándar"
@@ -7071,19 +7632,25 @@ msgstr ""
 #~ msgstr "            verbose      igual que -v"
 
 #~ msgid "            vi           use a vi-style line editing interface"
-#~ msgstr "            vi           usa una interfaz de edición de línea estilo vi"
+#~ msgstr ""
+#~ "            vi           usa una interfaz de edición de línea estilo vi"
 
 #~ msgid "            xtrace       same as -x"
 #~ msgstr "            xtrace       igual que -x"
 
-#~ msgid "    -p  Turned on whenever the real and effective user ids do not match."
-#~ msgstr "    -p  Se activa cada vez que los ids real y efectivo no coinciden."
+#~ msgid ""
+#~ "    -p  Turned on whenever the real and effective user ids do not match."
+#~ msgstr ""
+#~ "    -p  Se activa cada vez que los ids real y efectivo no coinciden."
 
 # FIXME: $ENV es variable, no fichero. cfuga
 #~ msgid "        Disables processing of the $ENV file and importing of shell"
-#~ msgstr "        Desactiva el procesamiento del fichero $ENV y la importación de funciones"
+#~ msgstr ""
+#~ "        Desactiva el procesamiento del fichero $ENV y la importación de "
+#~ "funciones"
 
-#~ msgid "        functions.  Turning this option off causes the effective uid and"
+#~ msgid ""
+#~ "        functions.  Turning this option off causes the effective uid and"
 #~ msgstr "        de shell.  Desactivar esta opción causa que el uid y el gid"
 
 #~ msgid "        gid to be set to the real uid and gid."
@@ -7093,7 +7660,9 @@ msgstr ""
 #~ msgstr "    -t  Terminar después de leer y ejecutar una orden."
 
 #~ msgid "    -u  Treat unset variables as an error when substituting."
-#~ msgstr "    -u  Tratar las variables no establecidas como un error cuando se hace sustitución."
+#~ msgstr ""
+#~ "    -u  Tratar las variables no establecidas como un error cuando se hace "
+#~ "sustitución."
 
 #~ msgid "    -v  Print shell input lines as they are read."
 #~ msgstr "    -v  Muestra las líneas de entrada del shell mientras se leen."
@@ -7105,52 +7674,69 @@ msgstr ""
 #~ msgstr "    -B  el shell hará expansión de llaves"
 
 #~ msgid "    -H  Enable ! style history substitution.  This flag is on"
-#~ msgstr "    -H  Activa el estilo ! de sustitución de la historia.  Este indicador"
+#~ msgstr ""
+#~ "    -H  Activa el estilo ! de sustitución de la historia.  Este indicador"
 
 #~ msgid "        by default."
 #~ msgstr "        está activado por omisión."
 
 #~ msgid "    -C  If set, disallow existing regular files to be overwritten"
-#~ msgstr "    -C  Si está establecido, evita que los ficheros regulares existentes sean sobreescritos"
+#~ msgstr ""
+#~ "    -C  Si está establecido, evita que los ficheros regulares existentes "
+#~ "sean sobreescritos"
 
 #~ msgid "        by redirection of output."
 #~ msgstr "        por una redirección de salida."
 
 #~ msgid "    -P  If set, do not follow symbolic links when executing commands"
-#~ msgstr "    -P  Si está establecido, no se siguen los enlaces simbólicos cuando se ejecutan órdenes"
+#~ msgstr ""
+#~ "    -P  Si está establecido, no se siguen los enlaces simbólicos cuando "
+#~ "se ejecutan órdenes"
 
 #~ msgid "        such as cd which change the current directory."
 #~ msgstr "        como cuando cd cambia al directorio actual."
 
 #~ msgid "Using + rather than - causes these flags to be turned off.  The"
-#~ msgstr "Usar + en lugar de - causa que estos indicadores sean desactivados.  Los"
+#~ msgstr ""
+#~ "Usar + en lugar de - causa que estos indicadores sean desactivados.  Los"
 
 #~ msgid "flags can also be used upon invocation of the shell.  The current"
-#~ msgstr "indicadores también se pueden usar durante la invocación del shell.  El conjunto"
+#~ msgstr ""
+#~ "indicadores también se pueden usar durante la invocación del shell.  El "
+#~ "conjunto"
 
-#~ msgid "set of flags may be found in $-.  The remaining n ARGs are positional"
-#~ msgstr "actual de indicadores se encuentra en $-.  Los ARGumentos n restantes son parámetros"
+#~ msgid ""
+#~ "set of flags may be found in $-.  The remaining n ARGs are positional"
+#~ msgstr ""
+#~ "actual de indicadores se encuentra en $-.  Los ARGumentos n restantes son "
+#~ "parámetros"
 
 #~ msgid "parameters and are assigned, in order, to $1, $2, .. $n.  If no"
 #~ msgstr "posicionales y se asignan, en orden, a $1, $2, .. $n.  Si no"
 
 #~ msgid "ARGs are given, all shell variables are printed."
-#~ msgstr "se establecen ARGumentos, se muestran todas las variables del shell."
+#~ msgstr ""
+#~ "se establecen ARGumentos, se muestran todas las variables del shell."
 
 #~ msgid "For each NAME, remove the corresponding variable or function.  Given"
-#~ msgstr "Para cada NOMBRE, se borra la variable o función correspondiente.  Al usar"
+#~ msgstr ""
+#~ "Para cada NOMBRE, se borra la variable o función correspondiente.  Al usar"
 
 #~ msgid "the `-v', unset will only act on variables.  Given the `-f' flag,"
 #~ msgstr "`-v', unset sólo actuará en variables.  Al usar el indicador `-f',"
 
 #~ msgid "unset will only act on functions.  With neither flag, unset first"
-#~ msgstr "unset sólo actuará en funciones.  Sin ningún indicador, unset primero"
+#~ msgstr ""
+#~ "unset sólo actuará en funciones.  Sin ningún indicador, unset primero"
 
 #~ msgid "tries to unset a variable, and if that fails, then tries to unset a"
-#~ msgstr "intenta borrar una variable, y si eso falla, entonces intenta borrar una"
+#~ msgstr ""
+#~ "intenta borrar una variable, y si eso falla, entonces intenta borrar una"
 
-#~ msgid "function.  Some variables (such as PATH and IFS) cannot be unset; also"
-#~ msgstr "función.  Algunas variables (como PATH e IFS) no se pueden borrar; vea"
+#~ msgid ""
+#~ "function.  Some variables (such as PATH and IFS) cannot be unset; also"
+#~ msgstr ""
+#~ "función.  Algunas variables (como PATH e IFS) no se pueden borrar; vea"
 
 #~ msgid "see readonly."
 #~ msgstr "también readonly."
@@ -7159,43 +7745,65 @@ msgstr ""
 #~ msgstr "los NOMBREs se marcan para exportación automática al ambiente de"
 
 #~ msgid "subsequently executed commands.  If the -f option is given,"
-#~ msgstr "las órdenes ejecutadas subsecuentemente.  Si se establece el indicador -f,"
+#~ msgstr ""
+#~ "las órdenes ejecutadas subsecuentemente.  Si se establece el indicador -f,"
 
 #~ msgid "the NAMEs refer to functions.  If no NAMEs are given, or if `-p'"
-#~ msgstr "los NOMBREs se refieren a funciones.  Si no se establecen NOMBREs, o si `-p'"
+#~ msgstr ""
+#~ "los NOMBREs se refieren a funciones.  Si no se establecen NOMBREs, o si `-"
+#~ "p'"
 
 #~ msgid "is given, a list of all names that are exported in this shell is"
-#~ msgstr "se establece, se muestra una lista de todos los nombres que se exportan"
+#~ msgstr ""
+#~ "se establece, se muestra una lista de todos los nombres que se exportan"
 
 #~ msgid "printed.  An argument of `-n' says to remove the export property"
-#~ msgstr "en este shell.  Un argumento `-n' indica que se borre la propiedad de exportación"
+#~ msgstr ""
+#~ "en este shell.  Un argumento `-n' indica que se borre la propiedad de "
+#~ "exportación"
 
 #~ msgid "from subsequent NAMEs.  An argument of `--' disables further option"
-#~ msgstr "de NOMBREs subsecuentes.  Un argumento `--' desactiva el procesamiento"
+#~ msgstr ""
+#~ "de NOMBREs subsecuentes.  Un argumento `--' desactiva el procesamiento"
 
 #~ msgid "processing."
 #~ msgstr "posterior de opciones."
 
-#~ msgid "The given NAMEs are marked readonly and the values of these NAMEs may"
-#~ msgstr "Los NOMBREs dados se marcan como sólo-lectura y los valores de esos NOMBREs"
+#~ msgid ""
+#~ "The given NAMEs are marked readonly and the values of these NAMEs may"
+#~ msgstr ""
+#~ "Los NOMBREs dados se marcan como sólo-lectura y los valores de esos "
+#~ "NOMBREs"
 
 #~ msgid "not be changed by subsequent assignment.  If the -f option is given,"
-#~ msgstr "no se pueden cambiar por asignaciones posteriores.  Si se establece el indicador -f,"
+#~ msgstr ""
+#~ "no se pueden cambiar por asignaciones posteriores.  Si se establece el "
+#~ "indicador -f,"
 
 #~ msgid "then functions corresponding to the NAMEs are so marked.  If no"
-#~ msgstr "entonces también se marcan las funciones correspondientes a los NOMBREs.  Si no"
+#~ msgstr ""
+#~ "entonces también se marcan las funciones correspondientes a los NOMBREs.  "
+#~ "Si no"
 
-#~ msgid "arguments are given, or if `-p' is given, a list of all readonly names"
-#~ msgstr "se establecen argumentos, o si se establece `-p', se muestra una lista de todos los nombres"
+#~ msgid ""
+#~ "arguments are given, or if `-p' is given, a list of all readonly names"
+#~ msgstr ""
+#~ "se establecen argumentos, o si se establece `-p', se muestra una lista de "
+#~ "todos los nombres"
 
-#~ msgid "is printed.  An argument of `-n' says to remove the readonly property"
-#~ msgstr "de sólo-lectura.  Un argumento `-n' indica que se borre la propiedad de sólo-lectura"
+#~ msgid ""
+#~ "is printed.  An argument of `-n' says to remove the readonly property"
+#~ msgstr ""
+#~ "de sólo-lectura.  Un argumento `-n' indica que se borre la propiedad de "
+#~ "sólo-lectura"
 
 #~ msgid "from subsequent NAMEs.  The `-a' option means to treat each NAME as"
 #~ msgstr "de los NOMBREs subsecuentes.  La opción `-a' trata cada NOMBRE como"
 
 #~ msgid "an array variable.  An argument of `--' disables further option"
-#~ msgstr "una variable de matriz.  Un argumento de `--' desactiva opciones posteriores"
+#~ msgstr ""
+#~ "una variable de matriz.  Un argumento de `--' desactiva opciones "
+#~ "posteriores"
 
 #~ msgid "not given, it is assumed to be 1."
 #~ msgstr "establece N, se asume que es 1."
@@ -7204,7 +7812,8 @@ msgstr ""
 #~ msgstr "Lee y ejecuta órdenes del FICHERO y regresa.  Los nombres de ruta"
 
 #~ msgid "in $PATH are used to find the directory containing FILENAME."
-#~ msgstr "en $PATH se utilizan para encontrar al directorio que contiene el FICHERO."
+#~ msgstr ""
+#~ "en $PATH se utilizan para encontrar al directorio que contiene el FICHERO."
 
 #~ msgid "Suspend the execution of this shell until it receives a SIGCONT"
 #~ msgstr "Suspende la ejecución de este shell hasta que recive una señal"
@@ -7219,13 +7828,17 @@ msgstr ""
 #~ msgstr "Termina con un estado de 0 (verdad) ó 1 (falsedad) dependiendo de"
 
 #~ msgid "the evaluation of EXPR.  Expressions may be unary or binary.  Unary"
-#~ msgstr "la evaluación de EXPR.  Las expresiones pueden ser unarias o binarias. Las expresiones"
+#~ msgstr ""
+#~ "la evaluación de EXPR.  Las expresiones pueden ser unarias o binarias. "
+#~ "Las expresiones"
 
 #~ msgid "expressions are often used to examine the status of a file.  There"
-#~ msgstr "unarias se utilizan con frecuencia para examinar el estado de un fichero."
+#~ msgstr ""
+#~ "unarias se utilizan con frecuencia para examinar el estado de un fichero."
 
 #~ msgid "are string operators as well, and numeric comparison operators."
-#~ msgstr "Hay operadores de cadenas también, y operadores de comparación numérica."
+#~ msgstr ""
+#~ "Hay operadores de cadenas también, y operadores de comparación numérica."
 
 #~ msgid "File operators:"
 #~ msgstr "Operadores de fichero:"
@@ -7234,7 +7847,8 @@ msgstr ""
 #~ msgstr "    -b FICHERO     Verdadero si el fichero es especial de bloques."
 
 #~ msgid "    -c FILE        True if file is character special."
-#~ msgstr "    -c FICHERO     Verdadero si el fichero es especial de caracteres."
+#~ msgstr ""
+#~ "    -c FICHERO     Verdadero si el fichero es especial de caracteres."
 
 #~ msgid "    -d FILE        True if file is a directory."
 #~ msgstr "    -d FICHERO     Verdadero si el fichero es un directorio."
@@ -7243,19 +7857,25 @@ msgstr ""
 #~ msgstr "    -e FICHERO     Verdadero si el fichero existe."
 
 #~ msgid "    -f FILE        True if file exists and is a regular file."
-#~ msgstr "    -f FICHERO     Verdadero si el fichero existe y es un fichero regular."
+#~ msgstr ""
+#~ "    -f FICHERO     Verdadero si el fichero existe y es un fichero regular."
 
 #~ msgid "    -g FILE        True if file is set-group-id."
-#~ msgstr "    -g FICHERO     Verdadero si el fichero tiene activado el set-group-id."
+#~ msgstr ""
+#~ "    -g FICHERO     Verdadero si el fichero tiene activado el set-group-id."
 
 #~ msgid "    -h FILE        True if file is a symbolic link.  Use \"-L\"."
-#~ msgstr "    -h FICHERO     Verdadero si el fichero es un enlace simbólico.  Use \"-L\"."
+#~ msgstr ""
+#~ "    -h FICHERO     Verdadero si el fichero es un enlace simbólico.  Use "
+#~ "\"-L\"."
 
 #~ msgid "    -L FILE        True if file is a symbolic link."
 #~ msgstr "    -L FICHERO     Verdadero si el fichero es un enlace simbólico."
 
 #~ msgid "    -k FILE        True if file has its \"sticky\" bit set."
-#~ msgstr "    -k FICHERO     Verdadero si el fichero tiene el bit \"sticky\" activado."
+#~ msgstr ""
+#~ "    -k FICHERO     Verdadero si el fichero tiene el bit \"sticky\" "
+#~ "activado."
 
 #~ msgid "    -p FILE        True if file is a named pipe."
 #~ msgstr "    -p FICHERO     Verdadero si el fichero es una tubería nombrada."
@@ -7273,7 +7893,8 @@ msgstr ""
 #~ msgstr "    -t DF          Verdadero si DF está abierto en una terminal."
 
 #~ msgid "    -u FILE        True if the file is set-user-id."
-#~ msgstr "    -u FICHERO     Verdadero si el fichero tiene activado el set-user-id."
+#~ msgstr ""
+#~ "    -u FICHERO     Verdadero si el fichero tiene activado el set-user-id."
 
 #~ msgid "    -w FILE        True if the file is writable by you."
 #~ msgstr "    -w FICHERO     Verdadero si usted puede modificar el fichero."
@@ -7282,13 +7903,17 @@ msgstr ""
 #~ msgstr "    -x FICHERO     Verdadero si usted puede ejecutar el fichero."
 
 #~ msgid "    -O FILE        True if the file is effectively owned by you."
-#~ msgstr "    -O FICHERO     Verdadero si usted efectivamente posee el fichero."
+#~ msgstr ""
+#~ "    -O FICHERO     Verdadero si usted efectivamente posee el fichero."
 
-#~ msgid "    -G FILE        True if the file is effectively owned by your group."
-#~ msgstr "    -G FICHERO     Verdadero si su grupo efectivamente posee el fichero."
+#~ msgid ""
+#~ "    -G FILE        True if the file is effectively owned by your group."
+#~ msgstr ""
+#~ "    -G FICHERO     Verdadero si su grupo efectivamente posee el fichero."
 
 #~ msgid "  FILE1 -nt FILE2  True if file1 is newer than (according to"
-#~ msgstr "  FICH1 -nt FICH2  Verdadero si fich1 es más nuevo que (de acuerdo a"
+#~ msgstr ""
+#~ "  FICH1 -nt FICH2  Verdadero si fich1 es más nuevo que (de acuerdo a"
 
 #~ msgid "                   modification date) file2."
 #~ msgstr "                   la fecha de modificación) el fich2."
@@ -7326,14 +7951,20 @@ msgstr ""
 #~ msgid "    STRING1 < STRING2"
 #~ msgstr "    CADENA1 < CADENA2"
 
-#~ msgid "                   True if STRING1 sorts before STRING2 lexicographically"
-#~ msgstr "                   Verdadero si la CADENA1 se ordena antes que la CADENA2 lexicográficamente"
+#~ msgid ""
+#~ "                   True if STRING1 sorts before STRING2 lexicographically"
+#~ msgstr ""
+#~ "                   Verdadero si la CADENA1 se ordena antes que la CADENA2 "
+#~ "lexicográficamente"
 
 #~ msgid "    STRING1 > STRING2"
 #~ msgstr "    CADENA1 > CADENA2"
 
-#~ msgid "                   True if STRING1 sorts after STRING2 lexicographically"
-#~ msgstr "                   Verdadero si la CADENA1 se ordena después que la CADENA2 lexicográficamente"
+#~ msgid ""
+#~ "                   True if STRING1 sorts after STRING2 lexicographically"
+#~ msgstr ""
+#~ "                   Verdadero si la CADENA1 se ordena después que la "
+#~ "CADENA2 lexicográficamente"
 
 #~ msgid "Other operators:"
 #~ msgstr "Otros operadores:"
@@ -7345,7 +7976,8 @@ msgstr ""
 #~ msgstr "    EXPR1 -a EXPR2 Verdadero si ambas expr1 Y expr2 son verdaderas."
 
 #~ msgid "    EXPR1 -o EXPR2 True if either expr1 OR expr2 is true."
-#~ msgstr "    EXPR1 -o EXPR2  Verdadero si cualquiera de expr1 O expr2 es verdadera."
+#~ msgstr ""
+#~ "    EXPR1 -o EXPR2  Verdadero si cualquiera de expr1 O expr2 es verdadera."
 
 #~ msgid "    arg1 OP arg2   Arithmetic tests.  OP is one of -eq, -ne,"
 #~ msgstr "    arg1 OP arg2   Pruebas aritméticas.  OP es uno de -eq, -ne,"
@@ -7354,9 +7986,12 @@ msgstr ""
 #~ msgstr "                   -lt, -le, -gt, ó -ge."
 
 #~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal,"
-#~ msgstr "Los operadores binarios aritméticos devuelven verdadero si ARG1 es igual, no igual,"
+#~ msgstr ""
+#~ "Los operadores binarios aritméticos devuelven verdadero si ARG1 es igual, "
+#~ "no igual,"
 
-#~ msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
+#~ msgid ""
+#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal"
 #~ msgstr "menor, menor o igual, mayor, ó mayor o igual"
 
 #~ msgid "than ARG2."
@@ -7372,10 +8007,12 @@ msgstr ""
 #~ msgstr "La orden ARG se lee y ejecuta cuando el shell recibe la(s)"
 
 #~ msgid "signal(s) SIGNAL_SPEC.  If ARG is absent all specified signals are"
-#~ msgstr "señal(es) ID_SEÑAL.  Si ARG no está, todas las señales especificadas son"
+#~ msgstr ""
+#~ "señal(es) ID_SEÑAL.  Si ARG no está, todas las señales especificadas son"
 
 #~ msgid "reset to their original values.  If ARG is the null string each"
-#~ msgstr "establecidas a sus valores originales.  Si ARG es la cadena nula cada"
+#~ msgstr ""
+#~ "establecidas a sus valores originales.  Si ARG es la cadena nula cada"
 
 #~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes."
 #~ msgstr "ID_SEÑAL es ignorada por el shell y por las órdenes que invoque."
@@ -7393,16 +8030,23 @@ msgstr ""
 #~ msgstr "asociadas con cada ID_SEÑAL.  Si no se proporcionan argumentos o si"
 
 #~ msgid "only `-p' is given, trap prints the list of commands associated with"
-#~ msgstr "sólo se proporciona `-p', trap muestra la lista de órdenes asociadas"
+#~ msgstr ""
+#~ "sólo se proporciona `-p', trap muestra la lista de órdenes asociadas"
 
-#~ msgid "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
-#~ msgstr "con cada número de señal.  ID_SEÑAL es un nombre de señal en <signal.h>"
+#~ msgid ""
+#~ "each signal number.  SIGNAL_SPEC is either a signal name in <signal.h>"
+#~ msgstr ""
+#~ "con cada número de señal.  ID_SEÑAL es un nombre de señal en <signal.h>"
 
-#~ msgid "or a signal number.  `trap -l' prints a list of signal names and their"
-#~ msgstr "o un número de señal.  `trap -l' muestra una lista de nombres de señal y sus"
+#~ msgid ""
+#~ "or a signal number.  `trap -l' prints a list of signal names and their"
+#~ msgstr ""
+#~ "o un número de señal.  `trap -l' muestra una lista de nombres de señal y "
+#~ "sus"
 
 #~ msgid "corresponding numbers.  Note that a signal can be sent to the shell"
-#~ msgstr "números correspondientes.  Note que una señal se puede enviar al shell"
+#~ msgstr ""
+#~ "números correspondientes.  Note que una señal se puede enviar al shell"
 
 #~ msgid "with \"kill -signal $$\"."
 #~ msgstr "con \"kill -signal $$\"."
@@ -7413,26 +8057,35 @@ msgstr ""
 #~ msgid "If the -t option is used, returns a single word which is one of"
 #~ msgstr "Si se usa la opción -t, regresa una sola palabra que es una de"
 
-#~ msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
-#~ msgstr "`alias', `keyword', `function', `builtin', `file' ó `', si el NOMBRE es un"
+#~ msgid ""
+#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an"
+#~ msgstr ""
+#~ "`alias', `keyword', `function', `builtin', `file' ó `', si el NOMBRE es un"
 
-#~ msgid "alias, shell reserved word, shell function, shell builtin, disk file,"
-#~ msgstr "alias, palabra reservada del shell, función del shell, orden interna del shell, fichero del disco,"
+#~ msgid ""
+#~ "alias, shell reserved word, shell function, shell builtin, disk file,"
+#~ msgstr ""
+#~ "alias, palabra reservada del shell, función del shell, orden interna del "
+#~ "shell, fichero del disco,"
 
 #~ msgid "or unfound, respectively."
 #~ msgstr "o no encontrada, respectivamente."
 
 #~ msgid "If the -p flag is used, either returns the name of the disk file"
-#~ msgstr "Si se usa el indicador -p, regresa el nombre del fichero del sistema"
+#~ msgstr ""
+#~ "Si se usa el indicador -p, regresa el nombre del fichero del sistema"
 
 #~ msgid "that would be executed, or nothing if -t would not return `file'."
 #~ msgstr "que sería ejecutado, o nada si -t no regresa algún `fichero'."
 
 #~ msgid "If the -a flag is used, displays all of the places that contain an"
-#~ msgstr "Si se usa el indicador -a, muestra todos los lugares que contienen un"
+#~ msgstr ""
+#~ "Si se usa el indicador -a, muestra todos los lugares que contienen un"
 
-#~ msgid "executable named `file'.  This includes aliases and functions, if and"
-#~ msgstr "ejecutable llamado `fichero'  Esto incluye a aliases y funciones, si y"
+#~ msgid ""
+#~ "executable named `file'.  This includes aliases and functions, if and"
+#~ msgstr ""
+#~ "ejecutable llamado `fichero'  Esto incluye a aliases y funciones, si y"
 
 #~ msgid "only if the -p flag is not also used."
 #~ msgstr "sólo si el indicador -p no se especifica también."
@@ -7444,10 +8097,12 @@ msgstr ""
 #~ msgstr "respectivamente."
 
 #~ msgid "Ulimit provides control over the resources available to processes"
-#~ msgstr "ulimit provee control sobre los recursos disponibles para los procesos"
+#~ msgstr ""
+#~ "ulimit provee control sobre los recursos disponibles para los procesos"
 
 #~ msgid "started by the shell, on systems that allow such control.  If an"
-#~ msgstr "iniciados por el shell, en sistemas que permiten dicho control.  Si se"
+#~ msgstr ""
+#~ "iniciados por el shell, en sistemas que permiten dicho control.  Si se"
 
 #~ msgid "option is given, it is interpreted as follows:"
 #~ msgstr "establece una opción, se interpreta como sigue:"
@@ -7492,13 +8147,18 @@ msgstr ""
 #~ msgstr "    -v\tel tamaño de la memoria virtual"
 
 #~ msgid "If LIMIT is given, it is the new value of the specified resource."
-#~ msgstr "Si se establece el LÍMITE, este es el nuevo valor del recurso especificado."
+#~ msgstr ""
+#~ "Si se establece el LÍMITE, este es el nuevo valor del recurso "
+#~ "especificado."
 
 #~ msgid "Otherwise, the current value of the specified resource is printed."
-#~ msgstr "De otra forma, se muestra la lista actual de los recursos especificados."
+#~ msgstr ""
+#~ "De otra forma, se muestra la lista actual de los recursos especificados."
 
 #~ msgid "If no option is given, then -f is assumed.  Values are in 1k"
-#~ msgstr "Si no se establece una opción, entonces se asume -f.  Los valores son en incrementos"
+#~ msgstr ""
+#~ "Si no se establece una opción, entonces se asume -f.  Los valores son en "
+#~ "incrementos"
 
 #~ msgid "increments, except for -t, which is in seconds, -p, which is in"
 #~ msgstr "de 1k, excepto para -t, que es en segundos, -p, que es en"
@@ -7509,50 +8169,77 @@ msgstr ""
 #~ msgid "processes."
 #~ msgstr "procesos."
 
-#~ msgid "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
-#~ msgstr "La máscara de creación de ficheros del usuario se establece a MODO.  Si se omite el MODO, o si"
+#~ msgid ""
+#~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if"
+#~ msgstr ""
+#~ "La máscara de creación de ficheros del usuario se establece a MODO.  Si "
+#~ "se omite el MODO, o si"
 
-#~ msgid "`-S' is supplied, the current value of the mask is printed.  The `-S'"
-#~ msgstr "se proporciona `-S', se muestra el valor actual de la máscara.  La opción"
+#~ msgid ""
+#~ "`-S' is supplied, the current value of the mask is printed.  The `-S'"
+#~ msgstr ""
+#~ "se proporciona `-S', se muestra el valor actual de la máscara.  La opción"
 
-#~ msgid "option makes the output symbolic; otherwise an octal number is output."
-#~ msgstr "`-S' logra una salida simbólica; de otra forma la salida es un número octal."
+#~ msgid ""
+#~ "option makes the output symbolic; otherwise an octal number is output."
+#~ msgstr ""
+#~ "`-S' logra una salida simbólica; de otra forma la salida es un número "
+#~ "octal."
 
 #~ msgid "If MODE begins with a digit, it is interpreted as an octal number,"
-#~ msgstr "Si el MODO comienza con un dígito, se interpreta como un número octal,"
+#~ msgstr ""
+#~ "Si el MODO comienza con un dígito, se interpreta como un número octal,"
 
-#~ msgid "otherwise it is a symbolic mode string like that accepted by chmod(1)."
-#~ msgstr "de otra forma es una cadena de modo simbólico como la aceptada por chmod(1)."
+#~ msgid ""
+#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)."
+#~ msgstr ""
+#~ "de otra forma es una cadena de modo simbólico como la aceptada por chmod"
+#~ "(1)."
 
-#~ msgid "Wait for the specified process and report its termination status.  If"
+#~ msgid ""
+#~ "Wait for the specified process and report its termination status.  If"
 #~ msgstr "Espera al proceso especificado y reporta su estado final.  Si no se"
 
 #~ msgid "N is not given, all currently active child processes are waited for,"
-#~ msgstr "proporciona N, espera a todos los procesos hijo activos actualmente,"
+#~ msgstr ""
+#~ "proporciona N, espera a todos los procesos hijo activos actualmente,"
 
 #~ msgid "and the return code is zero.  N may be a process ID or a job"
-#~ msgstr "y el código de regreso es cero.  N puede ser un ID de proceso o una especificación"
+#~ msgstr ""
+#~ "y el código de regreso es cero.  N puede ser un ID de proceso o una "
+#~ "especificación"
 
 #~ msgid "specification; if a job spec is given, all processes in the job's"
-#~ msgstr "de trabajo; si se proporciona una especificación de trabajo, se espera a todos los procesos en la"
+#~ msgstr ""
+#~ "de trabajo; si se proporciona una especificación de trabajo, se espera a "
+#~ "todos los procesos en la"
 
 #~ msgid "pipeline are waited for."
 #~ msgstr "línea de ejecución del trabajo."
 
 #~ msgid "and the return code is zero.  N is a process ID; if it is not given,"
-#~ msgstr "y el código de regreso es cero.  N es un ID de proceso; si no se proporcioan,"
+#~ msgstr ""
+#~ "y el código de regreso es cero.  N es un ID de proceso; si no se "
+#~ "proporcioan,"
 
 #~ msgid "all child processes of the shell are waited for."
 #~ msgstr "espera a todos los procesos hijos del shell."
 
 #~ msgid "The `for' loop executes a sequence of commands for each member in a"
-#~ msgstr "El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en una"
+#~ msgstr ""
+#~ "El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en una"
 
-#~ msgid "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
-#~ msgstr "lista de elementos.  Si `in PALABRAS ...;' no se encuentra, entonces se asume"
+#~ msgid ""
+#~ "list of items.  If `in WORDS ...;' is not present, then `in \"$@\"' is"
+#~ msgstr ""
+#~ "lista de elementos.  Si `in PALABRAS ...;' no se encuentra, entonces se "
+#~ "asume"
 
-#~ msgid "assumed.  For each element in WORDS, NAME is set to that element, and"
-#~ msgstr "`in \"$@\"'.  Para cada elemento en PALABRAS, se establece NOMBRE a ese elemento y"
+#~ msgid ""
+#~ "assumed.  For each element in WORDS, NAME is set to that element, and"
+#~ msgstr ""
+#~ "`in \"$@\"'.  Para cada elemento en PALABRAS, se establece NOMBRE a ese "
+#~ "elemento y"
 
 #~ msgid "the COMMANDS are executed."
 #~ msgstr "se ejecutan las ÓRDENES."
@@ -7561,10 +8248,13 @@ msgstr ""
 #~ msgstr "Las PALABRAS se expanden, generando una lista de palabras.  El"
 
 #~ msgid "set of expanded words is printed on the standard error, each"
-#~ msgstr "conjunto de palabras expandidas se muestra en la salida de error estándar"
+#~ msgstr ""
+#~ "conjunto de palabras expandidas se muestra en la salida de error estándar"
 
 #~ msgid "preceded by a number.  If `in WORDS' is not present, `in \"$@\"'"
-#~ msgstr "cada una precedida por un número.  Si `in PALABRAS' no se encuentra, se asume"
+#~ msgstr ""
+#~ "cada una precedida por un número.  Si `in PALABRAS' no se encuentra, se "
+#~ "asume"
 
 #~ msgid "is assumed.  The PS3 prompt is then displayed and a line read"
 #~ msgstr "`in \"$@\"'.  El prompt PS3 se muestra y se lee una línea de"
@@ -7573,19 +8263,24 @@ msgstr ""
 #~ msgstr "la entrada estándar.  Si la línea consiste del número"
 
 #~ msgid "corresponding to one of the displayed words, then NAME is set"
-#~ msgstr "correspondiente a una de las palabras mostradas, entonces se establece NOMBRE"
+#~ msgstr ""
+#~ "correspondiente a una de las palabras mostradas, entonces se establece "
+#~ "NOMBRE"
 
 #~ msgid "to that word.  If the line is empty, WORDS and the prompt are"
 #~ msgstr "a esa palabra.  Si la línea está vacía, se muestran de nuevo"
 
 #~ msgid "redisplayed.  If EOF is read, the command completes.  Any other"
-#~ msgstr "las PALABRAS y el prompt.  Si se lee EOF, la orden se completa. Cualquier otro"
+#~ msgstr ""
+#~ "las PALABRAS y el prompt.  Si se lee EOF, la orden se completa. Cualquier "
+#~ "otro"
 
 #~ msgid "value read causes NAME to be set to null.  The line read is saved"
 #~ msgstr "valor leído causa que NOMBRE sea nulo.  La línea leída se salva en"
 
 #~ msgid "in the variable REPLY.  COMMANDS are executed after each selection"
-#~ msgstr "la variable REPLY.  Las ÓRDENES se ejecutan después de cada selección"
+#~ msgstr ""
+#~ "la variable REPLY.  Las ÓRDENES se ejecutan después de cada selección"
 
 #~ msgid "until a break or return command is executed."
 #~ msgstr "hasta que se ejecute una orden break ó return."
@@ -7593,20 +8288,33 @@ msgstr ""
 #~ msgid "`|' is used to separate multiple patterns."
 #~ msgstr "`|' se usa para separar plantillas múltiples."
 
-#~ msgid "The if COMMANDS are executed.  If the exit status is zero, then the then"
-#~ msgstr "Las ÓRDENES if se ejecutan.  Si el código de regreso es cero, entonces las ÓRDENES"
+#~ msgid ""
+#~ "The if COMMANDS are executed.  If the exit status is zero, then the then"
+#~ msgstr ""
+#~ "Las ÓRDENES if se ejecutan.  Si el código de regreso es cero, entonces "
+#~ "las ÓRDENES"
 
-#~ msgid "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
-#~ msgstr "then se ejecutan.  De otra forma, cada uno de las ÓRDENES elif se ejecutan"
+#~ msgid ""
+#~ "COMMANDS are executed.  Otherwise, each of the elif COMMANDS are executed"
+#~ msgstr ""
+#~ "then se ejecutan.  De otra forma, cada uno de las ÓRDENES elif se ejecutan"
 
-#~ msgid "in turn, and if the exit status is zero, the corresponding then COMMANDS"
-#~ msgstr "en turno, y si el código de regreso es cero, las ÓRDENES then correspondientes"
+#~ msgid ""
+#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS"
+#~ msgstr ""
+#~ "en turno, y si el código de regreso es cero, las ÓRDENES then "
+#~ "correspondientes"
 
-#~ msgid "are executed and the if command completes.  Otherwise, the else COMMANDS"
-#~ msgstr "se ejecutan y la orden if se completa.  De otra forma, las ÓRDENES else"
+#~ msgid ""
+#~ "are executed and the if command completes.  Otherwise, the else COMMANDS"
+#~ msgstr ""
+#~ "se ejecutan y la orden if se completa.  De otra forma, las ÓRDENES else"
 
-#~ msgid "are executed, if present.  The exit status is the exit status of the last"
-#~ msgstr "se ejecutan, si se encuentran.  El código de salida es el código de salida de la última"
+#~ msgid ""
+#~ "are executed, if present.  The exit status is the exit status of the last"
+#~ msgstr ""
+#~ "se ejecutan, si se encuentran.  El código de salida es el código de "
+#~ "salida de la última"
 
 #~ msgid "command executed, or zero if no condition tested true."
 #~ msgstr "orden ejecutada, o cero si ninguna condición probada fue verdadera."
@@ -7618,10 +8326,12 @@ msgstr ""
 #~ msgstr "`until' tenga un código de salida que no sea cero."
 
 #~ msgid "Create a simple command invoked by NAME which runs COMMANDS."
-#~ msgstr "Crea un comando simple invocado por el NOMBRE que ejecuta las ÓRDENES."
+#~ msgstr ""
+#~ "Crea un comando simple invocado por el NOMBRE que ejecuta las ÓRDENES."
 
 #~ msgid "Arguments on the command line along with NAME are passed to the"
-#~ msgstr "Los argumentos en la línea de comando junto con el NOMBRE se pasan a la"
+#~ msgstr ""
+#~ "Los argumentos en la línea de comando junto con el NOMBRE se pasan a la"
 
 #~ msgid "function as $0 .. $n."
 #~ msgstr "función como $0 .. $n."
@@ -7630,16 +8340,23 @@ msgstr ""
 #~ msgstr "conjunto completo de órdenes"
 
 #~ msgid "This is similar to the `fg' command.  Resume a stopped or background"
-#~ msgstr "Esto es similar a la orden `fg'. Reinicia un trabajo detenido o en el"
+#~ msgstr ""
+#~ "Esto es similar a la orden `fg'. Reinicia un trabajo detenido o en el"
 
 #~ msgid "job.  If you specifiy DIGITS, then that job is used.  If you specify"
-#~ msgstr "background.  Si especifica DÍGITOS, entonces se usa ese trabajo.  Si proporciona"
+#~ msgstr ""
+#~ "background.  Si especifica DÍGITOS, entonces se usa ese trabajo.  Si "
+#~ "proporciona"
 
-#~ msgid "WORD, then the job whose name begins with WORD is used.  Following the"
-#~ msgstr "una PALABRA, entonces se usa el trabajo cuyo nombre comience con PALABRA."
+#~ msgid ""
+#~ "WORD, then the job whose name begins with WORD is used.  Following the"
+#~ msgstr ""
+#~ "una PALABRA, entonces se usa el trabajo cuyo nombre comience con PALABRA."
 
 #~ msgid "job specification with a `&' places the job in the background."
-#~ msgstr "Al colocar una especificación de trabajo seguido de un `&', se coloca al trabajo en el background. "
+#~ msgstr ""
+#~ "Al colocar una especificación de trabajo seguido de un `&', se coloca al "
+#~ "trabajo en el background. "
 
 #~ msgid "BASH_VERSION    The version numbers of this Bash."
 #~ msgstr "BASH_VERSION    Los números de versión de este Bash."
@@ -7653,11 +8370,16 @@ msgstr ""
 #~ msgid "\t\tdirectory."
 #~ msgstr "\t\tactual."
 
-#~ msgid "HISTFILE        The name of the file where your command history is stored."
-#~ msgstr "HISTFILE        El nombre del fichero donde se guarda la historia de órdenes."
+#~ msgid ""
+#~ "HISTFILE        The name of the file where your command history is stored."
+#~ msgstr ""
+#~ "HISTFILE        El nombre del fichero donde se guarda la historia de "
+#~ "órdenes."
 
 #~ msgid "HISTFILESIZE    The maximum number of lines this file can contain."
-#~ msgstr "HISTFILESIZE    El número máximo de líneas que este fichero puede contener."
+#~ msgstr ""
+#~ "HISTFILESIZE    El número máximo de líneas que este fichero puede "
+#~ "contener."
 
 #~ msgid "HISTSIZE        The maximum number of history lines that a running"
 #~ msgstr "HISTSIZE        El número máximo de líneas de historia que un shell"
@@ -7666,40 +8388,55 @@ msgstr ""
 #~ msgstr "\t\ten ejecución puede acceder."
 
 #~ msgid "HOME            The complete pathname to your login directory."
-#~ msgstr "HOME            La ruta completa a su directorio de entrada (login)."
+#~ msgstr ""
+#~ "HOME            La ruta completa a su directorio de entrada (login)."
 
-#~ msgid "HOSTTYPE        The type of CPU this version of Bash is running under."
-#~ msgstr "HOSTTYPE        El tipo de CPU bajo el cual esta versión de Bash corre."
+#~ msgid ""
+#~ "HOSTTYPE        The type of CPU this version of Bash is running under."
+#~ msgstr ""
+#~ "HOSTTYPE        El tipo de CPU bajo el cual esta versión de Bash corre."
 
-#~ msgid "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
-#~ msgstr "IGNOREEOF       Controla la acción del shell al recibir un carácter EOF"
+#~ msgid ""
+#~ "IGNOREEOF       Controls the action of the shell on receipt of an EOF"
+#~ msgstr ""
+#~ "IGNOREEOF       Controla la acción del shell al recibir un carácter EOF"
 
 #~ msgid "\t\tcharacter as the sole input.  If set, then the value"
 #~ msgstr "\t\tcomo la única entrada.  Si se establece, entonces el valor"
 
 #~ msgid "\t\tof it is the number of EOF characters that can be seen"
-#~ msgstr "\t\tde esta variable es el número de caracteres EOF que se pueden recibir"
+#~ msgstr ""
+#~ "\t\tde esta variable es el número de caracteres EOF que se pueden recibir"
 
 #~ msgid "\t\tin a row on an empty line before the shell will exit"
-#~ msgstr "\t\ten forma seguida en una línea vacía antes de que el shell termine"
+#~ msgstr ""
+#~ "\t\ten forma seguida en una línea vacía antes de que el shell termine"
 
 #~ msgid "\t\t(default 10).  When unset, EOF signifies the end of input."
-#~ msgstr "\t\t(10 por omisión).  Cuando se desactiva, EOF significa el fin de la entrada."
+#~ msgstr ""
+#~ "\t\t(10 por omisión).  Cuando se desactiva, EOF significa el fin de la "
+#~ "entrada."
 
 #~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail."
-#~ msgstr "MAILCHECK\tQue tan seguido, en segundos, Bash revisa si hay correo nuevo."
+#~ msgstr ""
+#~ "MAILCHECK\tQue tan seguido, en segundos, Bash revisa si hay correo nuevo."
 
 #~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks"
-#~ msgstr "MAILPATH\tUna lista de nombres de fichero separados por dos puntos que Bash revisa"
+#~ msgstr ""
+#~ "MAILPATH\tUna lista de nombres de fichero separados por dos puntos que "
+#~ "Bash revisa"
 
 #~ msgid "\t\tfor new mail."
 #~ msgstr "\t\tpor correo nuevo."
 
 #~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on."
-#~ msgstr "OSTYPE\t\tLa versión de Unix bajo la cual esta versión de Bash se ejecuta."
+#~ msgstr ""
+#~ "OSTYPE\t\tLa versión de Unix bajo la cual esta versión de Bash se ejecuta."
 
 #~ msgid "PATH            A colon-separated list of directories to search when"
-#~ msgstr "PATH            Una lista de directorios separada por dos puntos para buscar"
+#~ msgstr ""
+#~ "PATH            Una lista de directorios separada por dos puntos para "
+#~ "buscar"
 
 #~ msgid "\t\tlooking for commands."
 #~ msgstr "\t\tcuando se requieren órdenes."
@@ -7720,25 +8457,32 @@ msgstr ""
 #~ msgstr "TERM            El nombre del tipo de terminal actual."
 
 #~ msgid "auto_resume     Non-null means a command word appearing on a line by"
-#~ msgstr "auto_resume     Si no es nulo significa que una palabra de orden que aparece en una línea"
+#~ msgstr ""
+#~ "auto_resume     Si no es nulo significa que una palabra de orden que "
+#~ "aparece en una línea"
 
 #~ msgid "\t\titself is first looked for in the list of currently"
 #~ msgstr "\t\tpor sí mismo se busca primero en la lista de trabajos detenidos"
 
 #~ msgid "\t\tstopped jobs.  If found there, that job is foregrounded."
-#~ msgstr "\t\tactualmente.  Si se encuentra ahí, ese trabajo se trae a primer plano."
+#~ msgstr ""
+#~ "\t\tactualmente.  Si se encuentra ahí, ese trabajo se trae a primer plano."
 
 #~ msgid "\t\tA value of `exact' means that the command word must"
 #~ msgstr "\t\tEl valor `exact' significa que la palabra de la orden debe"
 
 #~ msgid "\t\texactly match a command in the list of stopped jobs.  A"
-#~ msgstr "\t\tcoincidir exactamente con una orden en la lista de trabajos detenidos.  El"
+#~ msgstr ""
+#~ "\t\tcoincidir exactamente con una orden en la lista de trabajos "
+#~ "detenidos.  El"
 
 #~ msgid "\t\tvalue of `substring' means that the command word must"
 #~ msgstr "\t\tvalor `substring' significa que la palabra de la orden debe"
 
 #~ msgid "\t\tmatch a substring of the job.  Any other value means that"
-#~ msgstr "\t\tcoincidir con una subcadena del trabajo.  Cualquier otro valor significa que"
+#~ msgstr ""
+#~ "\t\tcoincidir con una subcadena del trabajo.  Cualquier otro valor "
+#~ "significa que"
 
 #~ msgid "\t\tthe command must be a prefix of a stopped job."
 #~ msgstr "\t\tla orden debe ser un prefijo de un trabajo detenido."
@@ -7746,14 +8490,18 @@ msgstr ""
 #~ msgid "command_oriented_history"
 #~ msgstr "command_oriented_history"
 
-#~ msgid "                Non-null means to save multiple-line commands together on"
-#~ msgstr "                Si no es nulo significa que debe guardar órdenes de varias líneas juntas en"
+#~ msgid ""
+#~ "                Non-null means to save multiple-line commands together on"
+#~ msgstr ""
+#~ "                Si no es nulo significa que debe guardar órdenes de "
+#~ "varias líneas juntas en"
 
 #~ msgid "                a single history line."
 #~ msgstr "                una sola línea de historia."
 
 #~ msgid "histchars       Characters controlling history expansion and quick"
-#~ msgstr "histchars       Caracteres que controlan la expansión de la historia y la"
+#~ msgstr ""
+#~ "histchars       Caracteres que controlan la expansión de la historia y la"
 
 #~ msgid "\t\tsubstitution.  The first character is the history"
 #~ msgstr "\t\tsustitución rápida.  El primer carácter es el carácter de"
@@ -7765,10 +8513,13 @@ msgstr ""
 #~ msgstr "\t\tel carácter de `sustitución rápida', generalmente `^'.  El"
 
 #~ msgid "\t\tthird is the `history comment' character, usually `#'."
-#~ msgstr "\t\ttercero es el carácter de `comentario de historia', generalmente `#'."
+#~ msgstr ""
+#~ "\t\ttercero es el carácter de `comentario de historia', generalmente `#'."
 
 #~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter"
-#~ msgstr "HISTCONTROL\tEstablecido con el valor `ignorespace', significa que no agrega"
+#~ msgstr ""
+#~ "HISTCONTROL\tEstablecido con el valor `ignorespace', significa que no "
+#~ "agrega"
 
 #~ msgid "\t\tlines which begin with a space or tab on the history"
 #~ msgstr "\t\tlíneas que inicien con un espacio o tabulador a la lista de"
@@ -7780,31 +8531,39 @@ msgstr ""
 #~ msgstr "\t\tlíneas que coincidan con la última línea introducida.  Con"
 
 #~ msgid "\t\t`ignoreboth' means to combine the two options.  Unset,"
-#~ msgstr "\t\t`ignoreboth' significa que combina las dos opciones.  Sin establecer,"
+#~ msgstr ""
+#~ "\t\t`ignoreboth' significa que combina las dos opciones.  Sin establecer,"
 
 #~ msgid "\t\tor set to any other value than those above means to save"
-#~ msgstr "\t\to con cualquier otro valor diferente a los arriba mencionados significa"
+#~ msgstr ""
+#~ "\t\to con cualquier otro valor diferente a los arriba mencionados "
+#~ "significa"
 
 #~ msgid "\t\tall lines on the history list."
 #~ msgstr "\t\tguardar todas las líneas en la lista de la historia."
 
 #~ msgid "Toggle the values of variables controlling optional behavior."
-#~ msgstr "Cambia los valores de las variables que controlan conductas opcionales."
+#~ msgstr ""
+#~ "Cambia los valores de las variables que controlan conductas opcionales."
 
 #~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag"
-#~ msgstr "El indicador -s significa establecer cada NOMBRE_OPCIÓN; el indicador -u"
+#~ msgstr ""
+#~ "El indicador -s significa establecer cada NOMBRE_OPCIÓN; el indicador -u"
 
 #~ msgid "unsets each OPTNAME.  The -q flag suppresses output; the exit"
-#~ msgstr "borra cada NOMBRE_OPCIÓN.  El indicador -q suprime la salida; el estado"
+#~ msgstr ""
+#~ "borra cada NOMBRE_OPCIÓN.  El indicador -q suprime la salida; el estado"
 
 #~ msgid "status indicates whether each OPTNAME is set or unset.  The -o"
 #~ msgstr "de salida indica cuál NOMBRE_OPCIÓN está activado o no.  La opción"
 
 #~ msgid "option restricts the OPTNAMEs to those defined for use with"
-#~ msgstr "-o restringe a los NOMBRE_OPCIONes a aquéllos definidos para su uso con"
+#~ msgstr ""
+#~ "-o restringe a los NOMBRE_OPCIONes a aquéllos definidos para su uso con"
 
 #~ msgid "`set -o'.  With no options, or with the -p option, a list of all"
-#~ msgstr "`set -o'.  Sin opciones, o con la opción -p, se muestra una lista de"
+#~ msgstr ""
+#~ "`set -o'.  Sin opciones, o con la opción -p, se muestra una lista de"
 
 #~ msgid "settable options is displayed, with an indication of whether or"
 #~ msgstr "todas las opciones activables, con una indicación de si se puede"
index f020fcbeaf008a1fc6000bca4b78249b7bebf02f..f56d7534ab08019d438a59cb33832d3ed0831870 100644 (file)
Binary files a/po/et.gmo and b/po/et.gmo differ
index 7b2961ca40362e98ec6e024bde1c491ee1790409..de90a9014e1c37ee3c2c9528cfb5f2d1ba6dddb5 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -6,58 +6,59 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2006-11-11 16:38+0200\n"
 "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
 "Language-Team: Estonian <et@li.org>\n"
+"Language: et\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-15\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "vigane massiivi indeks"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: vigane tegevuse nimi"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: mitte-numbrilisele indeksile ei saa omistada"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ei saa luua: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: esimine mitte-tühemik sümbol pole `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "sulgev `%c' puudub %s sees"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: puudub eraldav koolon"
@@ -67,36 +68,36 @@ msgstr "%s: puudub eraldav koolon"
 msgid "`%s': invalid alias name"
 msgstr "%s: vigane tegevuse nimi"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: ei saa lugeda: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': ei saa lahti siduda"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': tundmatu funktsiooni nimi"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s ei ole seotud ühegi klahviga.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s saab kasutada läbi "
@@ -117,11 +118,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr "Tagastab jooksva alamprotseduuri konteksti."
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME pole seatud"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "liiga palju argumente"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD pole seatud"
 
@@ -130,7 +135,7 @@ msgstr "OLDPWD pole seatud"
 msgid "line %d: "
 msgstr ""
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "%s: hoiatus: "
@@ -140,11 +145,7 @@ msgstr "%s: hoiatus: "
 msgid "%s: usage: "
 msgstr "%s: hoiatus: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "liiga palju argumente"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: võti nõuab argumenti"
@@ -159,7 +160,7 @@ msgstr "%s: n
 msgid "%s: not found"
 msgstr "%s: ei leitud"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: vigane võti"
@@ -169,7 +170,7 @@ msgstr "%s: vigane v
 msgid "%s: invalid option name"
 msgstr "%s: vigane võtme nimi"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': ei ole lubatud identifikaator"
@@ -184,7 +185,7 @@ msgstr "vigane signaali number"
 msgid "invalid hex number"
 msgstr "vigane number"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "vigane number"
 
@@ -198,7 +199,7 @@ msgstr "%s: vigane signaali spetsifikatsioon"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': ei ole pid ega korrektne töö spetsifikatsioon"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: mittemuudetav muutuja"
@@ -270,26 +271,26 @@ msgstr ""
 msgid "%s: ambiguous job spec"
 msgstr "%s: segane töö"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: vigane tegevuse nimi"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "hoiatus: võti -F ei pruugi töötada nagu te ootate"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "hoiatus: võti -C ei pruugi töötada nagu te ootate"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -301,7 +302,7 @@ msgstr "saab kasutada ainult funktsioonis"
 msgid "cannot use `-f' to make functions"
 msgstr "võtit `-f' ei saa funktsiooni loomiseks kasutada"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funktsioon ei ole muudetav"
@@ -311,7 +312,7 @@ msgstr "%s: funktsioon ei ole muudetav"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: masiivi muutujaid ei saa nii kustutada"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -340,8 +341,8 @@ msgstr "%s: pole d
 msgid "%s: cannot delete: %s"
 msgstr "%s: ei saa kustutada: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: on kataloog"
@@ -356,8 +357,7 @@ msgstr "%s: ei ole tavaline fail"
 msgid "%s: file is too large"
 msgstr "%s: fail on liiga suur"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kahendfaili ei õnnestu käivitada"
@@ -470,7 +470,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr ""
@@ -493,7 +493,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr "Tundmatu viga"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "oodati avaldist"
 
@@ -502,12 +502,12 @@ msgstr "oodati avaldist"
 msgid "%s: not an indexed array"
 msgstr "%s: pole massiiv"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -536,31 +536,31 @@ msgstr "%s: pole massiiv"
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: vigane signaali spetsifikatsioon"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, fuzzy, c-format
 msgid "warning: %s: %s"
 msgstr "%s: hoiatus: "
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -651,17 +651,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "viga lugemisel: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -669,17 +669,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: ei saa eemaldada"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: ei saa eemaldada: %s on ainult lugemiseks"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: pole massiiv"
@@ -693,11 +693,11 @@ msgstr "%s: ei ole funktsioon"
 msgid "shift count"
 msgstr "shift arv"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -739,7 +739,7 @@ msgstr "%s: on funktsioon\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s on shelli sisekäsk\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s on %s\n"
@@ -749,26 +749,26 @@ msgstr "%s on %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': halb käsklus"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: ei õnnestu lugeda piirangut: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr ""
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: ei õnnestu muuta piirangut: %s"
@@ -787,7 +787,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -801,23 +801,23 @@ msgstr "viimane k
 msgid "Aborting..."
 msgstr "Katkestan..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "tundmatu viga käsus"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr ""
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr ""
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr ""
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: sidumata muutuja"
@@ -832,103 +832,118 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "kirjutamise viga: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: piiratud: käskudes ei saa kasutada sümboleid `/'"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: käsku ei ole"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s on %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: halb interpretaator"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kahendfaili ei õnnestu käivitada"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s on shelli sisekäsk\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "avaldise rekursioon on liiga sügav"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr ""
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "süntaksi viga avaldises"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "üritati omistada mitte-muutujale"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "nulliga jagamine"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr ""
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "eksponent on väiksem kui 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "puudub `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "süntaksi viga: oodati operandi"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "süntaksi viga: vigane aritmeetiline operaator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "vigane aritmeetiline baas"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "väärtus on baasiks liiga suur"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "%s: oodati täisarvude avaldist"
@@ -937,163 +952,163 @@ msgstr "%s: oodati t
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: vanemkataloogidele ei ole juurdepääsu"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: pid puudub"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: töö %d on peatatud"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: töö on lõpetatud"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: töö %d on juba taustal"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: hoiatus: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1161,7 +1176,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "vigane baas"
 
@@ -1184,22 +1199,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr ""
@@ -1230,118 +1245,118 @@ msgstr "s
 msgid "syntax error: `((%s))'"
 msgstr "süntaksi viga: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr ""
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "süntaksi viga tingimuslikus avaldises"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "ootamatu märk `%s', oodati `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "oodati `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "süntaksi viga kohal `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "süntaksi viga: ootamatu faililõpp"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "süntaksi viga"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Käsuinterpretaatorist väljumiseks kasutage \"%s\".\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1351,26 +1366,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1408,33 +1423,33 @@ msgstr "$%s: sedasi ei saa omistada"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "viga ümbersuunamisel: fd duplikaadi loomine ei õnnestu"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "/tmp puudub, palun looge see!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp peab olema kataloogi nimi"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: vigane võti"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Mul ei ole nime!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr ""
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1443,39 +1458,39 @@ msgstr ""
 "Kasuta:\t%s [GNU pikk võti] [võti] ...\n"
 "\t%s [GNU pikk võti] [võti] skript-fail ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU pikad võtmed:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Käsuinterpretaatori võtmed:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD või -c käsklus või -O lühivõti\t\t(ainult käivitamine)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s või -o võti\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Vigadest teatamiseks kasutage käsku `bashbug'.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: vigane operatsioon"
@@ -1651,83 +1666,83 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameeter on null või pole seatud"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: halb asendus"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: sedasi ei saa omistada"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sulgev `%c' puudub %s sees"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "ei leitud: %s"
@@ -1764,78 +1779,78 @@ msgstr "%s: eeldati binaarset operaatorit"
 msgid "missing `]'"
 msgstr "puudub `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "vigane signaali number"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: halb väärtus muutujas trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 "run_pending_traps: signaali käsitleja on SIG_DFL, saadan %d (%s) iseendale"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: vigane signaal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "shelli tase (%d) on liiga kõrge, kasutan väärtust 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: praegune skoop pole funktsiooni kontekst"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: praegune skoop pole funktsiooni kontekst"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parameeter on null või pole seatud"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: pole global_variables kontekst"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: ei saa avada: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1908,7 +1923,7 @@ msgstr ""
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2105,7 +2120,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2113,7 +2128,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2297,12 +2312,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2313,7 +2330,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2324,7 +2341,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2338,7 +2355,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2354,7 +2371,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2377,13 +2394,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2391,7 +2413,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2407,7 +2429,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2417,7 +2439,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2425,7 +2447,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2433,7 +2455,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2452,7 +2474,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2490,14 +2512,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2512,11 +2534,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2528,6 +2552,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2543,7 +2568,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2556,7 +2581,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2583,7 +2608,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2595,7 +2620,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2636,7 +2661,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2659,7 +2684,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2667,7 +2692,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2676,7 +2701,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2706,7 +2731,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2718,7 +2743,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2732,7 +2757,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2756,7 +2781,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2778,7 +2803,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2812,7 +2837,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2836,7 +2861,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2853,7 +2878,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2875,7 +2900,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2920,7 +2945,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2957,18 +2982,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2980,7 +3008,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3046,7 +3074,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3065,7 +3093,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3085,7 +3113,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3104,7 +3132,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3124,7 +3152,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3135,7 +3163,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3149,7 +3177,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3163,7 +3191,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3244,7 +3272,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3252,7 +3280,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3264,7 +3292,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3308,7 +3336,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3338,7 +3366,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3367,6 +3395,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3382,7 +3413,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3400,24 +3431,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3431,7 +3462,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3444,7 +3475,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3461,7 +3492,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3481,7 +3512,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3497,7 +3528,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3508,7 +3539,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3529,7 +3560,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3540,7 +3571,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3551,7 +3582,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3564,7 +3595,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3578,7 +3609,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3589,7 +3620,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3603,7 +3634,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3614,7 +3645,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3642,7 +3673,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3696,7 +3727,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3727,7 +3758,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3754,7 +3785,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3783,7 +3814,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3804,7 +3835,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3822,8 +3853,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3837,7 +3868,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3864,7 +3895,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3877,7 +3908,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3908,7 +3939,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -3949,7 +3980,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 3d35b85f3aa9e0f9e2aa72d7e0baf6d5044fe6a4..098218e6e4e7d83ea1334b414936b1fb676c7362 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index b6e67a7c2296efc1c37f0218dbd5849420d50855..3001bdde3f39116ce57694cf296285b56b3863a5 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -9,62 +9,63 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2009-05-09 15:13+0300\n"
 "Last-Translator: Pekka Niemi <pekka.niemi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Lokalize 0.3\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "virheellinen taulukkoindeksi"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: indeksoitua taulukkoa ei voi muuttaa assosiatiiviseksi"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: virheellinen assosiatiivinen indeksi"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: ei voida sijoittaa epänumeeriseen indeksiin"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 "%s: %s: assosiatiiviseen taulukkoon sijoitettaessa täytyy käyttää "
 "avainindeksiä"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ei voida luoda: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: komennolle ei löydy näppäinkarttaa"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: ensimmäinen ei-tyhjä merkki ei ole ”\"”"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ei loppumerkkiä ”%c” rivissä %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: puuttuva kaksoispiste-erotin"
@@ -74,36 +75,36 @@ msgstr "%s: puuttuva kaksoispiste-erotin"
 msgid "`%s': invalid alias name"
 msgstr "”%s”: virheellinen näppäinkartan nimi"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "rivieditointi ei ole käytössä"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "”%s”: virheellinen näppäinkartan nimi"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: ei voida lukea: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "”%s”: ei voida irrottaa"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "”%s”: tuntematon funktio"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s ei ole sidottu mihinkään näppäimeen.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s voidaan käynnistää näppäinkomennolla "
@@ -126,11 +127,15 @@ msgstr ""
 "    \n"
 "    Ilman LAUSEKETTA palauttaa"
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME-ympäristömuuttujaa ei ole asetettu"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "liian monta argumenttia"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD-ympäristömuuttujaa ei ole asetettu"
 
@@ -139,7 +144,7 @@ msgstr "OLDPWD-ympäristömuuttujaa ei ole asetettu"
 msgid "line %d: "
 msgstr "rivi %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "varoitus: "
@@ -149,11 +154,7 @@ msgstr "varoitus: "
 msgid "%s: usage: "
 msgstr "%s: käyttö: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "liian monta argumenttia"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: valitsin vaatii argumentin"
@@ -168,7 +169,7 @@ msgstr "%s: vaaditaan numeerinen argumentti"
 msgid "%s: not found"
 msgstr "%s: ei löytynyt"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: virheellinen valitsin"
@@ -178,7 +179,7 @@ msgstr "%s: virheellinen valitsin"
 msgid "%s: invalid option name"
 msgstr "%s: virheellinen valitsimen nimi"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "”%s”: virheellinen tunniste"
@@ -191,7 +192,7 @@ msgstr "virheellinen oktaaliluku"
 msgid "invalid hex number"
 msgstr "virheellinen heksadesimaaliluku"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "virheellinen luku"
 
@@ -205,7 +206,7 @@ msgstr "%s: virheellinen signaalimääritys"
 msgid "`%s': not a pid or valid job spec"
 msgstr "”%s”: ei ole prosessitunnus eikä kelvollinen työtunniste"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: kirjoitussuojattu muuttuja"
@@ -277,26 +278,26 @@ msgstr "%s: nykyhakemistoa luettaessa tapahtui virhe: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: ei ole yksiselitteinen työtunniste"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: virheellinen toiminnon nimi"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: ei lavennusmääritystä"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "varoitus: -F -valitsin ei ehkä toimi odotetusti"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "varoitus: -C -valitsin ei ehkä toimi odotetusti"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "tällä hetkellä komennon lavennusfunktiota ei suoriteta"
 
@@ -308,7 +309,7 @@ msgstr "voidaan käyttää ainoastaan funktiossa"
 msgid "cannot use `-f' to make functions"
 msgstr "”-f”:ää ei voida käyttää funktioiden luomiseen"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: kirjoitussuojattu funktio"
@@ -318,7 +319,7 @@ msgstr "%s: kirjoitussuojattu funktio"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: taulukkomuuttujia ei voi tuhota näin"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: assosiatiivista taulukkoa ei voi muuttaa indeksoiduksi"
@@ -347,8 +348,8 @@ msgstr "%s: ei dynaamisesti ladattu"
 msgid "%s: cannot delete: %s"
 msgstr "%s: ei voida poistaa: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: on hakemisto"
@@ -363,8 +364,7 @@ msgstr "%s: ei tavallinen tiedosto"
 msgid "%s: file is too large"
 msgstr "%s: tiedosto on liian iso"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: binääritiedostoa ei voida suorittaa"
@@ -488,7 +488,7 @@ msgstr "valitsimista -anrw voidaan käyttää vain yhtä"
 msgid "history position"
 msgstr "sijainti komentohistoriassa"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: historiaviittaus epäonnistui"
@@ -511,7 +511,7 @@ msgstr "%s: argumenttien pitää olla prosessi- tai työtunnisteita"
 msgid "Unknown error"
 msgstr "Tuntematon virhe"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "odotettiin lauseketta"
 
@@ -520,12 +520,12 @@ msgstr "odotettiin lauseketta"
 msgid "%s: not an indexed array"
 msgstr "%s: ei ole taulukkomuuttuja"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: virheellinen tiedostokahvamääritys"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: virheellinen tiedostokahva: %s"
@@ -553,31 +553,31 @@ msgstr "tyhjä taulukkomuuttujan nimi"
 msgid "array variable support required"
 msgstr "vaaditaan tukea taulukkomuuttujille"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "”%s”: puuttuva muotoilumerkki"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: virheellinen aikakatkaisumääritys"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "”%c”: virheellinen muotoilumerkki"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "varoitus: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "\\x:stä puuttuu heksadesimaalinumero"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "\\x:stä puuttuu heksadesimaalinumero"
@@ -720,17 +720,17 @@ msgstr ""
 "    \n"
 "    Sisäänrakennettu ”dirs”-komento näyttää hakemistopinon sisällön."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: virheellinen aikakatkaisumääritys"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "lukuvirhe: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "”return” on käytettävissä vain funktiossa tai ladatussa skriptissä"
 
@@ -738,17 +738,17 @@ msgstr "”return” on käytettävissä vain funktiossa tai ladatussa skriptiss
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "funktiota ja muuttujaa ei voi poistaa yhtä aikaa"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: ei voida poistaa"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: ei voida poistaa: kirjoitussuojattu %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ei ole taulukkomuuttuja"
@@ -762,13 +762,13 @@ msgstr "%s: ei ole funktio"
 msgid "shift count"
 msgstr "siirtolaskuri"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 "komentotulkin valitsimia ei voida laittaa päällä ja ottaa pois päältä "
 "samanaikaisesti"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: virheellinen komentotulkin valitsimen nimi"
@@ -810,7 +810,7 @@ msgstr "%s on funktio\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s on komentotulkin sisäänrakennettu komento\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s on %s\n"
@@ -820,26 +820,26 @@ msgstr "%s on %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s on hajautettu (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: virheellinen rajoitusargumentti"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "”%c”: virheellinen komento"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: rajoitusta ei saada: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "rajoitus"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: rajoitusta ei voida muokata: %s"
@@ -858,7 +858,7 @@ msgstr "”%c”: virheellinen symbolisen tilan operaattori"
 msgid "`%c': invalid symbolic mode character"
 msgstr "”%c”: virheellinen symbolisen tilan merkki"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " rivi "
 
@@ -872,23 +872,23 @@ msgstr "viimeinen komento: %s\n"
 msgid "Aborting..."
 msgstr "Keskeytetään..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "tuntematon komentovirhe"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "virheellinen komentotyyppi"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "virheellinen liittäjä"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "virheellinen hyppy"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: sitomaton muuttuja"
@@ -903,102 +903,117 @@ msgstr "\aaikakatkaisu: automaattinen uloskirjautuminen\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "syötettä ei voida lukea tiedostosta /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "AJAN MUOTOMÄÄRITYS: ”%c”: virheellinen muotoilumerkki"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "putkitusvirhe"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: rajoitettu: komentojen nimissä ei voi käyttää ”/”-merkkiä"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: komentoa ei löydy"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s on %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: virheellinen tulkki"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: binääritiedostoa ei voida suorittaa"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s on komentotulkin sisäänrakennettu komento\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "tiedostokahvaa %d ei voida kopioida kahvaksi %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "lausekkeen rekursiomäärä ylittyi"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "rekursiopinon alivuoto"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "lauseoppivirhe lausekkeessa"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "yritettiin sijoittaa objektiin, joka ei ole muuttuja"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "jako nollalla"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bugi: virheellinen sijoitusavainsana"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "”:”:ttä odotettiin ehdolliseen lausekkeeseen"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "eksponentti on pienempi kuin 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "odotettiin muuttujaa ++:n tai --:n jälkeen"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "puuttuva ”)”"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "lauseoppivirhe: odotettiin operandia"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "lauseoppivirhe: virheellinen aritmetiikkaoperaattori"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (virheellinen avainsana on ”%s”)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "virheellinen lukujärjestelmä"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "liian iso luku lukujärjestelmälle"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: virhe lausekkeessa\n"
@@ -1007,163 +1022,163 @@ msgstr "%s: virhe lausekkeessa\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: ylempiin hakemistoihin ei päästä"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "nodelay-tilaa ei voida asettaa tiedostokahvalle %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "bashin syötteeksi ei voida avata uutta tiedostokahvaa kahvasta %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: uudella tiedostokahvalla %d on jo puskuri"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp-putki"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "haarautettu prosessi-id %d on ajossa olevalla työllä %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "poistetaan pysäytetty työ %d prosessiryhmästä %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: prosessi %5ld (%s) putkijonossa"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: prosessi %5ld (%s) on merkattu vielä toimivaksi"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: prosessitunnusta ei löydy."
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signaali %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Valmis"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Pysäytetty"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Pysäytetty(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Ajossa"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Valmis(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Poistui %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Tuntematon tila"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(luotiin core-tiedosto)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (työhakemisto: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "lapsiprosessin setpgid (%ld => %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: prosessi %ld ei ole tämän komentotulkin lapsiprosessi"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Prosessista %ld ei ole tietoja"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: työ %d on pysäytetty"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: työ on lopetettu"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: työ %d on jo taustalla"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: rivi %d:"
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (luotiin core-tiedosto)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(työhakemisto nyt: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp epäonnistui"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: vuonhallinta"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "päätteen prosessiryhmää ei voitu asettaa (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "tällä komentotulkilla ei ole työnohjausta"
 
@@ -1232,7 +1247,7 @@ msgstr "register_alloc: %p on merkitty taulukossa jo varatuksi?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p on jo taulukossa vapaana?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "virheellinen lukujärjestelmä"
 
@@ -1255,22 +1270,22 @@ msgstr "%s: virheellinen verkkopolkumääritys"
 msgid "network operations not supported"
 msgstr "verkko-operaatioita ei ole tuettu"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: %s:%d: ei voida varata %lu tavua"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: %s:%d: ei voida varata %lu tavua"
@@ -1301,120 +1316,120 @@ msgstr "lauseoppivirhe: odottamaton ”;”"
 msgid "syntax error: `((%s))'"
 msgstr "lauseoppivirhe: ”((%s))”"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: virheellinen käskytyyppi %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 "here-dokumentti rivillä %d päättyi tiedoston loppumiseen (haluttiin ”%s”)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: uudelleenohjaus ”%d” rajojen ulkopuolella"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "odottamaton EOF (tiedostonloppu) odotettaessa sulkevaa ”%c”"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "odottamaton EOF odotettaessa ”]]”"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "lauseoppivirhe ehdollisessa lausekkeessa: odottamaton avainsana ”%s”"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "lauseoppivirhe ehdollisessa lausekkeessa"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "odottamaton avainsana ”%s”, odotettiin ”)”"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "odototettiin ”)”"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "odottamaton argumentti ”%s” ehdolliselle unaariselle operaattorille"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "odottamaton argumentti ehdolliselle unaariselle operaattorille"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 "odottamaton avainsana ”%s”, odotettiin ehdollista binääristä operaattoria"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "odotettiin ehdollista binääristä operaattoria"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "odottamaton argumentti ”%s” ehdolliselle binääriselle operaattorille"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "odottamaton argumentti ehdolliselle binääriselle operaattorille"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "odottamaton avainsana ”%c” ehdollisessa komennossa"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "odottamaton avainsana ”%s” ehdollisessa komennossa"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "odottamaton avainsana %d ehdollisessa komennossa"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "lauseoppivirhe lähellä odottamatonta avainsanaa ”%s”"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "lauseoppivirhe lähellä ”%s”"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "lauseoppivirhe: odottamaton tiedostonloppu"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "lauseoppivirhe"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Kirjoita ”%s” poistuaksesi komentotulkista.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Odottamaton EOF odotettaessa vastaavaa ”)”"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "täydennys: funktiota ”%s” ei löytynyt"
@@ -1424,26 +1439,26 @@ msgstr "täydennys: funktiota ”%s” ei löytynyt"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: tyhjä COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: virheellinen yhdistin ”%d”"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: virheellinen tiedostokahva: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: ”%c”: virheellinen muotoilumerkki"
@@ -1481,33 +1496,33 @@ msgstr "%s: listaa ei voida sijoittaa taulukon alkioon"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port-muotoa ei tueta ilman tietoliikennettä"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "virhe uudelleenohjauksessa: tiedostokahvaa ei voida kopioida"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "/tmp-hakemistoa ei löytynyt, luo se!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp:n pitää olla kelvollinen hakemiston nimi"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: virheellinen valitsin"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Minulla ei ole nimeä!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versio %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1516,44 +1531,44 @@ msgstr ""
 "Käyttö:\t%s[GNU:n pitkä valitsin] [valitsin] ...\n"
 "\t%s [GNU:n pitkä valitsin] [valitsin] komentotiedosto ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU:n pitkät valitsimet:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Komentotulkin valitsimet:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 "\t-irsD tai -c komento tai -O shopt_option (ainoastaan käynnistettäessä)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s tai -o -valitsin\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Kirjoita ”%s -c 'help set'” saadaksesi lisätietoja komentotulkin "
 "valitsimista.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Kirjoita ”%s -c help” saadaksesi lisätietoja komentotulkin "
 "sisäänrakennetuista komennoista.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Raportoi virheet komennolla ”bashbug”.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: virheellinen operaatio"
@@ -1727,83 +1742,83 @@ msgstr "Tuntematon signaali #"
 msgid "Unknown Signal #%d"
 msgstr "Tuntematon signaali #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "virheellinen korvaus: ei sulkevaa ”%s” jonossa %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: listaa ei voida sijoittaa taulukon alkioon"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "putkea ei voida luoda prosessin korvaamista varten"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "lapsiprosessia ei voida luoda prosessin korvaamista varten"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "nimettyä putkea %s ei voida avata lukemista varten"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "nimettyä putkea %s ei voida avata kirjoitusta varten"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "nimettyä putkea %s ei voida kopioida tiedostokahvaksi %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "putkea ei voida luoda komennon korvaamista varten"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "ei voida luoda lapsiprosessia komennon korvaamista varten"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: putkea ei voida kopioida tiedostokahvaksi 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametria ei ole tai sitä ei ole asetettu"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: alimerkkijonolauseke < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: virheellinen korvaus"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: ei voida asettaa näin"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "virheellinen korvaus: ei sulkevaa ”`” jonossa %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "ei osumia: %s"
@@ -1840,16 +1855,16 @@ msgstr "%s: odotettiin binääristä operaattoria"
 msgid "missing `]'"
 msgstr "puuttuva ”]”"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "virheellinen signaalinumero"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: virheellinen arvo trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1857,64 +1872,64 @@ msgstr ""
 "run_pending_traps: signaalikäsittelijä on SIG_DFL, lähetän %d (%s) uudelleen "
 "itselleni"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: virheellinen signaali %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "virhe tuotaessa ”%s”:n funktiomääritystä"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "komentotulkkitaso (%d) liian korkea, palautetaan 1:ksi"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: ei funktiokontekstia nykytilassa"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: ei funktiokontekstia nykytilassa"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parametria ei ole tai sitä ei ole asetettu"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "virheellinen merkki %d %s:n exportstr:ssä"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "ei =:ä kohteen %s exportstr:ssä"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: shell_variablesin alku ei ole funktiokonteksti"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: ei global_variables-kontekstia"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 "pop_scope: shell_variablesin alku ei väliaikaisten ympäristömuuttujien "
 "ympäristössä"
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: ei voida avata: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: virheellinen tiedostokahva: %s"
@@ -1990,8 +2005,9 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nimi [nimi ...]"
 
 #: builtins.c:51
+#, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m näppäinkartta] [-f tiedostonimi] [-q nimi] [-u nimi] [-r "
@@ -2203,7 +2219,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nimi [nimi ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [raja]"
 
 #: builtins.c:172
@@ -2211,7 +2228,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [tila]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2398,6 +2416,7 @@ msgstr ""
 "    ei ole."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2431,6 +2450,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2473,7 +2494,7 @@ msgstr ""
 "tapahtuu \n"
 "    virhe."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2491,7 +2512,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Paluuarvo on 0 jollei N ole suurempi tai yhtäsuuri kuin 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2509,7 +2530,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Paluuarvo on 0 ellei N ole suurempi tai yhtäsuuri kuin 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2532,7 +2553,7 @@ msgstr ""
 "    Palauttaa KOMENNON paluuarvon, tai epätoden jos KOMENTO ei ole\n"
 "    sisäänrakennettu komento."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2561,7 +2582,7 @@ msgstr ""
 "    Palauttaa 0 ellei komentotulkki ole funktion ulkopuolella tai parametri\n"
 "    on virheellinen."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2585,13 +2606,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2625,7 +2651,7 @@ msgstr ""
 "    Palauttaa 0, jos hakemistoa vaihdettiin, nollasta poikkeavan muussa \n"
 "    tapauksessa."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2653,7 +2679,7 @@ msgstr ""
 "    Palauttaa 0 ellei ole annettu virheellistä valitsinta tai nykyistä \n"
 "    hakemistoa ei voida lukea."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2669,7 +2695,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Onnistuu aina."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2681,7 +2707,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Onnistuu aina."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2693,7 +2719,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Epäonnistuu aina."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2728,7 +2754,7 @@ msgstr ""
 "    Palauttaa KOMENNON paluuarvon, tai epäonnistumisen jos KOMENTOA ei \n"
 "    löytynyt."
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2802,7 +2828,7 @@ msgstr ""
 "tule \n"
 "    virhetilannetta."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2812,7 +2838,7 @@ msgstr ""
 "    \n"
 "    Vanhentunut. Katso ”help declare”."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2839,11 +2865,14 @@ msgstr ""
 "    Palauttaa onnistuneen, ellei ole annettu virheellistä valitsinta,\n"
 "    tapahtuu virhe tai komentotulkki ei ole suorittamassa funktiota."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2855,6 +2884,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2898,7 +2928,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Palauttaa onnistuneen ellei tapahdu virhettä."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2920,7 +2950,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Palauttaa onnistuneen ellei tapahdu virhettä."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2974,7 +3004,7 @@ msgstr ""
 "sisäänrakennettu\n"
 "    komento tai tapahtuu virhe."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2993,7 +3023,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Palauttaa komennon paluuarvon tai onnistuneen jos komento on tyhjä."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3073,7 +3103,7 @@ msgstr ""
 "valitsimet\n"
 "    loppuvat tai tapahtuu virhe."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3115,7 +3145,7 @@ msgstr ""
 "uudelleenohjauksessa\n"
 "    tapahtuu virhe."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3127,7 +3157,7 @@ msgstr ""
 "    Poistuu komentotulkista paluuarvolla N. Jos N:ää ei anneta, paluuarvo\n"
 "    on viimeisen komennon paluuarvo."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3140,7 +3170,7 @@ msgstr ""
 "    Poistuu sisäänkirjautumiskomentotulkista paluuarvolla N.  Palauttaa\n"
 "    virheen jos ei olla sisäänkirjautumiskomentotulkissa."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3194,7 +3224,7 @@ msgstr ""
 "    Palauttaa onnistuneen tai suoritetun komennon paluuarvon; nollasta\n"
 "    poikkeava virhetilanteessa."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3215,7 +3245,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Edustalle tuodun työn paluuarvo, tai epäonnistuminen virhetilanteessa."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3241,7 +3271,7 @@ msgstr ""
 "tapahtuu\n"
 "    virhe."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3286,7 +3316,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos NIMEÄ ei löydy tai on annettu "
 "virheellinen valitsin."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3327,7 +3357,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos MALLINETTA ei löydy tai valitsin on\n"
 "    virheellinen."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3392,7 +3422,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin "
 "tai     tapahtuu virhe."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3436,7 +3466,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai \n"
 "    tapahtuu virhe. Jos -x:ää on käytetty, palauttaa KOMENNON paluuarvon."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3468,7 +3498,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos jokin valitsin tai TYÖTUNNISTE on     "
 "virheellinen."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3510,7 +3540,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai "
 "tapahtuu virhe."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3599,7 +3629,7 @@ msgstr ""
 "    Jos viimeinen ARGUMENTTI evaluoituu nollaksi, let palauttaa 1, muussa\n"
 "    tapauksessa 0."
 
-#: builtins.c:971
+#: builtins.c:979
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3637,14 +3667,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Lukee rivin vakiosyötteestä ja jakaa sen kenttiin.\n"
@@ -3686,7 +3719,7 @@ msgstr ""
 "    Paluuarvo on nolla, ellei törmätä tiedoston loppumiseen, aikarajan\n"
 "    ylitykseen tai mikäli -u:lle annetaan virheellinen tiedostokahva."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3710,7 +3743,7 @@ msgstr ""
 "suorittamassa\n"
 "    funktiota tai skriptiä."
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3777,7 +3810,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3880,7 +3913,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Palauttaa onnistumisen ellei ole annettu virheellistä valitsinta."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3916,7 +3949,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
 "    tai NIMI on kirjoitussuojattu."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3950,7 +3983,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
 "    tai NIMI on virheellinen."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3987,7 +4020,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
 "    tai NIMI on virheellinen."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4006,7 +4039,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Palauttaa onnistuneen ellei N ole negatiivinen tai suurempi kuin $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4031,7 +4064,7 @@ msgstr ""
 "epäonnistuu\n"
 "    mikäli TIEDOSTOA ei voida lukea."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4058,7 +4091,7 @@ msgstr ""
 "tapahtuu\n"
 "    virhe."
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -4219,7 +4252,7 @@ msgstr ""
 "    Palauttaa onnistumisen jos LAUSEKE evaluoituu todeksi; epäonnistuu jos\n"
 "    LAUSEKE evaluoituu vääräksi tai on annettu virheellinen argumentti."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4231,7 +4264,7 @@ msgstr ""
 "    Tämä on sisäänrakennetun ”test”-komennon synonyymi, mutta viimeisen\n"
 "    argumentin pitää olla ”]”, joka sulkee avaavan ”[”:n."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4251,7 +4284,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Onnistuu aina."
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -4333,7 +4366,7 @@ msgstr ""
 "annettu\n"
 "    virheellinen valitsin."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4389,7 +4422,8 @@ msgstr ""
 "    Palauttaa onnistuneen mikäli kaikki NIMET löytyivät, muussa tapauksessa\n"
 "    epäonnistuu."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4418,6 +4452,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4474,7 +4511,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
 "    tai tapahtuu virhe."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4509,21 +4546,22 @@ msgstr ""
 "    Palauttaa onnistuneen ellei TILA ole virheellinen tai on annettu \n"
 "    virheellinen valitsin."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Odottaa työn valmistumista ja palauttaa paluuarvon.\n"
 "    \n"
@@ -4539,7 +4577,7 @@ msgstr ""
 "    Palauttaa ID:n tilan; epäonnistuu jos ID on virheellinen tai on annettu\n"
 "    virheellinen valitsin."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4563,7 +4601,7 @@ msgstr ""
 "    Palauttaa ID:n tilan; epäonnistuu jos ID on virheellinen tai on annettu\n"
 "    virheellinen valitsin."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4585,7 +4623,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4617,7 +4655,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4654,7 +4692,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4683,7 +4721,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    KOMENTOKETJUN paluuarvo."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4702,7 +4740,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4736,7 +4774,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4754,7 +4792,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen komennon paluuarvo."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4772,7 +4810,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4794,7 +4832,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    KOMENNON paluuarvo."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4817,7 +4855,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Onnistuu, ellei NIMI ole kirjoitussuojattu."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4836,7 +4874,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Viimeisen suoritetun komennon paluuarvo."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4862,7 +4900,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Työn tila."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4880,7 +4918,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    Palauttaa 1, jos LAUSEKKEEN arvo on 0; muuten palauttaa 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4934,7 +4972,7 @@ msgstr ""
 "    Paluuarvo:\n"
 "    0 tai 1 riippuen LAUSEKKEEN arvosta."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5037,7 +5075,7 @@ msgstr ""
 "    HISTIGNORE\tKaksoispistein eroteltu lista mallineista, joita käytetään\n"
 "    \t\tpäätettäessä komentojen tallentamisesta historialistaan.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5095,7 +5133,7 @@ msgstr ""
 "tai\n"
 "    hakemiston vaihtaminen epäonnistuu."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5142,7 +5180,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen argumentti tai\n"
 "    hakemiston vaihto epäonnistuu."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5196,7 +5234,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin\n"
 "    tai tapahtuu virhe."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5234,7 +5272,7 @@ msgstr ""
 "    Palauttaa onnistuneen, mikäli VALITSIN on käytössä, epäonnistuu jos on\n"
 "    annettu virheellinen VALITSIN tai VALITSIN ei ole käytössä."
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5253,8 +5291,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5288,7 +5326,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai\n"
 "    tapahtuu kirjoitus- tai sijoitusvirhe."
 
-#: builtins.c:1913
+#: builtins.c:1926
 #, fuzzy
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
@@ -5336,7 +5374,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai \n"
 "    tapahtuu virhe."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5359,7 +5397,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai\n"
 "    tapahtuu virhe."
 
-#: builtins.c:1956
+#: builtins.c:1969
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
@@ -5413,7 +5451,7 @@ msgstr ""
 "    Palauttaa onnistuneen paitsi jos on annettu virheellinen valitsin tai\n"
 "    NIMELLE ei ole määritetty täydennysmääritystä."
 
-#: builtins.c:1986
+#: builtins.c:1999
 #, fuzzy
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
@@ -5486,7 +5524,7 @@ msgstr ""
 "    tai TAULUKKO on kirjoitussuojattu."
 
 # Changed " characters into ”...
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index a6025a639f0e2e577dd4b3ffbd2f9b153c654103..c79e04e829d7dc6c221d4ee74a831e7a8daea583 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 53601e1c92ce91dfa0b4ac04bd6fe10a7a34ec48..4bb6b43f81db17e0320b38c924376c2ab76aa35c 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-03-19 19:38+0100\n"
 "Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -18,50 +18,53 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "mauvais indice de tableau"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s : impossible de convertir un tableau indexé en associatif"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s : clé non valable pour le tableau associatif"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s : impossible d'assigner à un index non numérique"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s : %s : l'assignation d'un tableau associatif doit se faire avec un indice"
+msgstr ""
+"%s : %s : l'assignation d'un tableau associatif doit se faire avec un indice"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s : impossible de créer : %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command : impossible de trouver le mappage clavier pour la commande"
+msgstr ""
+"bash_execute_unix_command : impossible de trouver le mappage clavier pour la "
+"commande"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s : le premier caractère non vide n'est pas « \" »"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "pas de « %c » de fermeture dans %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s : virgule de séparation manquante"
@@ -71,36 +74,36 @@ msgstr "%s : virgule de séparation manquante"
 msgid "`%s': invalid alias name"
 msgstr "« %s » : nom d'alias non valable"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "édition de ligne non activée"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "« %s » : nom du mappage clavier invalide"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s : impossible de lire : %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s : impossible à délier"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "%s : nom de fonction inconnu"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s n'est lié à aucune touche.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s peut être appelé via "
@@ -123,11 +126,15 @@ msgstr ""
 "    \n"
 "    Sans EXPR, renvoie"
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "« HOME » non défini"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "trop d'arguments"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "« OLDPWD » non défini"
 
@@ -136,7 +143,7 @@ msgstr "« OLDPWD » non défini"
 msgid "line %d: "
 msgstr "ligne %d : "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "avertissement :"
@@ -146,11 +153,7 @@ msgstr "avertissement :"
 msgid "%s: usage: "
 msgstr "%s : utilisation :"
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "trop d'arguments"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s : l'option nécessite un argument"
@@ -165,7 +168,7 @@ msgstr "%s : argument numérique nécessaire"
 msgid "%s: not found"
 msgstr "%s : non trouvé"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s : option non valable"
@@ -175,7 +178,7 @@ msgstr "%s : option non valable"
 msgid "%s: invalid option name"
 msgstr "%s : nom d'option non valable"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "« %s » : identifiant non valable"
@@ -188,7 +191,7 @@ msgstr "Nombre octal non valable"
 msgid "invalid hex number"
 msgstr "nombre hexadécimal non valable"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "nombre non valable"
 
@@ -200,9 +203,11 @@ msgstr "%s : indication de signal non valable"
 #: builtins/common.c:257
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr "« %s » : ce n'est pas un n° de processus ou une spécification de tâche valable"
+msgstr ""
+"« %s » : ce n'est pas un n° de processus ou une spécification de tâche "
+"valable"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s : variable en lecture seule"
@@ -274,26 +279,30 @@ msgstr "%s : erreur de détermination du répertoire actuel : %s : %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s : spécification de tâche ambiguë"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s : nom d'action non valable"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s : pas d'indication de complètement"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
-msgstr "avertissement : l'option « -F » peut fonctionner différemment de ce à quoi vous vous attendez"
+msgstr ""
+"avertissement : l'option « -F » peut fonctionner différemment de ce à quoi "
+"vous vous attendez"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
-msgstr "avertissement : l'option « -C » peut fonctionner différemment de ce à quoi vous vous attendez"
+msgstr ""
+"avertissement : l'option « -C » peut fonctionner différemment de ce à quoi "
+"vous vous attendez"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "fonction de completion actuellement non en cours d'exécution"
 
@@ -305,7 +314,7 @@ msgstr "utilisable seulement dans une fonction"
 msgid "cannot use `-f' to make functions"
 msgstr "« -f » ne peut pas être utilisé pour fabriquer des fonctions"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s : fonction en lecture seule"
@@ -315,7 +324,7 @@ msgstr "%s : fonction en lecture seule"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s : impossible de détruire des variables tableaux de cette façon"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s : impossible de convertir un tableau indexé en tableau associatif"
@@ -344,8 +353,8 @@ msgstr "%s : non chargé dynamiquement"
 msgid "%s: cannot delete: %s"
 msgstr "%s : impossible d'effacer : %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s : ceci est un répertoire"
@@ -360,8 +369,7 @@ msgstr "%s : ceci n'est pas un fichier régulier"
 msgid "%s: file is too large"
 msgstr "%s : le fichier est trop grand"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s : fichier binaire impossible à lancer"
@@ -445,8 +453,11 @@ msgstr[1] "Commandes du shell correspondant aux mots-clés « "
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "Aucune rubrique d'aide ne correspond à « %s ». Essayez « help help », « man -k %s » ou « info %s »."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"Aucune rubrique d'aide ne correspond à « %s ». Essayez « help help », « man -"
+"k %s » ou « info %s »."
 
 #: builtins/help.def:185
 #, c-format
@@ -464,8 +475,10 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Ces commandes de shell sont définies de manière interne.Tapez « help » pour voir cette liste.\n"
-"Tapez « help nom » pour en savoir plus sur la fonction qui s'appelle « nom ».\n"
+"Ces commandes de shell sont définies de manière interne.Tapez « help » pour "
+"voir cette liste.\n"
+"Tapez « help nom » pour en savoir plus sur la fonction qui s'appelle « nom "
+"».\n"
 "Utilisez « info bash » pour en savoir plus sur le shell en général.\n"
 "Utilisez « man -k » ou « info » pour en savoir plus sur les commandes qui\n"
 "ne font pas partie de cette liste.\n"
@@ -481,7 +494,7 @@ msgstr "impossible d'utiliser plus d'une option parmi « -anrw »"
 msgid "history position"
 msgstr "position dans l'historique"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s : l'expansion de l'historique a échoué"
@@ -498,13 +511,14 @@ msgstr "pas d'autre option permise avec « -x »"
 #: builtins/kill.def:198
 #, c-format
 msgid "%s: arguments must be process or job IDs"
-msgstr "%s : les arguments doivent être des identifiants de tâche ou de processus"
+msgstr ""
+"%s : les arguments doivent être des identifiants de tâche ou de processus"
 
 #: builtins/kill.def:261
 msgid "Unknown error"
 msgstr "Erreur inconnue"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "une expression est attendue"
 
@@ -513,12 +527,12 @@ msgstr "une expression est attendue"
 msgid "%s: not an indexed array"
 msgstr "%s : n'est pas un tableau indexé"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s : spécification de descripteur de fichier non valable"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d : descripteur de fichier non valable : %s"
@@ -546,31 +560,31 @@ msgstr "nom de variable tableau vide"
 msgid "array variable support required"
 msgstr "nécessité de prise en charge des variables tableaux"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "« %s » : caractère de format manquant"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c' : spécification de format d'heure incorrecte"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "« %c » : caractère de format non permis"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "avertissement : %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "chiffre hexadécimal manquant pour \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "chiffre unicode manquant pour \\%c"
@@ -606,14 +620,17 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Affiche la liste des répertoires actuellement mémorisés. Les répertoires\n"
-"   sont insérés dans la liste avec la commande « pushd ». Vous pouvez remonter\n"
+"   sont insérés dans la liste avec la commande « pushd ». Vous pouvez "
+"remonter\n"
 "   dans la liste en enlevant des éléments avec la commande « popd ».\n"
 "    \n"
 "     Options :\n"
@@ -625,10 +642,12 @@ msgstr ""
 "    \tavec la position dans la pile\n"
 "    \n"
 "    Arguments :\n"
-"    +N\t affiche le Nième élément en comptant de zéro depuis la gauche de la\n"
+"    +N\t affiche le Nième élément en comptant de zéro depuis la gauche de "
+"la\n"
 "    liste affichée par « dirs » lorsque celle-ci est appelée sans option.\n"
 "    \n"
-"    -N\t affiche le Nième élément en comptant de zéro depuis la droite de la\n"
+"    -N\t affiche le Nième élément en comptant de zéro depuis la droite de "
+"la\n"
 "    liste affichée par « dirs » lorsque celle-ci est appelée sans option."
 
 #: builtins/pushd.def:705
@@ -666,12 +685,15 @@ msgstr ""
 "    \n"
 "    Arguments :\n"
 "    +N\tPermute la pile de façon que le Nième répertoire se place en haut,\n"
-"    \ten comptant de zéro depuis la gauche de la liste fournie par « dirs ».\n"
+"    \ten comptant de zéro depuis la gauche de la liste fournie par « dirs "
+"».\n"
 "    \n"
 "    -N\tPermute la pile de façon que le Nième répertoire se place en haut,\n"
-"    \ten comptant de zéro depuis la droite de la liste fournie par « dirs ».\n"
+"    \ten comptant de zéro depuis la droite de la liste fournie par « dirs "
+"».\n"
 "    \n"
-"      dir\tajoute le répertoire DIR en haut de la pile, et en fait le nouveau\n"
+"      dir\tajoute le répertoire DIR en haut de la pile, et en fait le "
+"nouveau\n"
 "    \trépertoire de travail.\n"
 "    \n"
 "    Vous pouvez voir la pile des répertoires avec la commande « dirs »."
@@ -715,35 +737,39 @@ msgstr ""
 "    \n"
 "    Vous pouvez voir la pile des répertoires avec la commande « dirs »."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s : spécification de délai d'expiration non valable"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "Erreur de lecture : %d : %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "« return » n'est possible que depuis une fonction ou depuis un script exécuté par « source »"
+msgstr ""
+"« return » n'est possible que depuis une fonction ou depuis un script "
+"exécuté par « source »"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
-msgstr "« unset » ne peut pas s'appliquer simultanément à une fonction et à une variable"
+msgstr ""
+"« unset » ne peut pas s'appliquer simultanément à une fonction et à une "
+"variable"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s : « unset » impossible"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s : « unset » impossible : %s est en lecture seule"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s : n'est pas une variable tableau"
@@ -757,11 +783,13 @@ msgstr "%s : n'est pas une fonction"
 msgid "shift count"
 msgstr "nombre de « shift »"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
-msgstr "les options du shell ne peuvent pas être simultanément activées et désactivées"
+msgstr ""
+"les options du shell ne peuvent pas être simultanément activées et "
+"désactivées"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s : nom d'option du shell non valable"
@@ -803,7 +831,7 @@ msgstr "%s est une fonction\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s est une primitive du shell\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s est %s\n"
@@ -813,26 +841,26 @@ msgstr "%s est %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s est haché (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s : argument de limite non valable"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "« %c » : mauvaise commande"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s : impossible d'obtenir la limite : %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limite"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s : impossible de modifier la limite : %s"
@@ -851,7 +879,7 @@ msgstr "« %c » : opérateur de mode symbolique non valable"
 msgid "`%c': invalid symbolic mode character"
 msgstr "« %c » : caractère de mode symbolique non valable"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " ligne"
 
@@ -865,23 +893,23 @@ msgstr "dernière commande : %s\n"
 msgid "Aborting..."
 msgstr "Annulation..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "erreur de commande inconnue"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "mauvais type de commande"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "mauvais connecteur"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "mauvais saut"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s : variable sans liaison"
@@ -896,102 +924,118 @@ msgstr "\aattente de données expirée : déconnexion automatique\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "l'entrée standard ne peut pas être redirigée depuis /dev/null : %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT : « %c » : caractère de format non valable"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "erreur de tube"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
-msgstr "%s : restriction : « / » ne peut pas être spécifié dans un nom de commande"
+msgstr ""
+"%s : restriction : « / » ne peut pas être spécifié dans un nom de commande"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s : commande introuvable"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s : %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s : %s : mauvais interpréteur"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s : fichier binaire impossible à lancer"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s est une primitive du shell\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "Impossible de dupliquer le fd %d vers le fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "Dépassement du niveau de récursivité dans l'expression"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "Débordement négatif de la pile de récursivité"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "erreur de syntaxe dans l'expression"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "tentative d'affectation à une non-variable"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "division par 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bogue : mauvais symbole pour expassign"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "« : » attendu pour une expression conditionnelle."
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exposant négatif"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "identifiant attendu après un pré-incrément ou un pré-décrément"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "« ) » manquante"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "erreur de syntaxe : opérande attendue"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "erreur de syntaxe : opérateur arithmétique non valable"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s : %s (le symbole erroné est \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "base arithmétique non valable"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valeur trop grande pour la base"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s : erreur d'expression\n"
@@ -1000,163 +1044,165 @@ msgstr "%s : erreur d'expression\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd : ne peut accéder aux répertoires parents"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "Impossible de réinitialiser le mode « nodelay » pour le fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "impossible d'allouer un nouveau descripteur de fichier pour l'entrée de bash depuis le fd %d"
+msgstr ""
+"impossible d'allouer un nouveau descripteur de fichier pour l'entrée de bash "
+"depuis le fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input : le tampon existe déjà pour le nouveau fd %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline : pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "le processus cloné n°%d apparaît dans la tâche en fonctionnement %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "suppression de la tâche stoppée %d avec le groupe de processus %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process : processus %5ld (%s) dans le_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process : pid %5ld (%s) signalé toujours en vie"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid : %ld : n° de processus inexistant"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Fini"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stoppé"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoppé(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "En cours d'exécution"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Fini(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Termine %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "État inconnu"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd : %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "fils setpgid (%ld à %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait : le processus n°%ld n'est pas un fils de ce shell."
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for : aucun enregistrement du processus n°%ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job : la tâche %d est stoppée"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s : la tâche s'est terminée"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s : la tâche %d est déjà en arrière plan"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld : activation de WNOHANG pour éviter un blocage définitif"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s : ligne %d : "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(maintenant, wd : %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control : getpgrp a échoué"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control : discipline de ligne"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control : setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "impossible de régler le groupe de processus du terminlal (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "pas de contrôle de tâche dans ce shell"
 
@@ -1208,7 +1254,8 @@ msgstr "realloc : débordement négatif détecté ; « mh_nbytes » est hors pla
 
 #: lib/malloc/malloc.c:1022
 msgid "realloc: start and end chunk sizes differ"
-msgstr "realloc : les tailles de fragment au début et à la fin sont différentes"
+msgstr ""
+"realloc : les tailles de fragment au début et à la fin sont différentes"
 
 #: lib/malloc/table.c:177
 #, c-format
@@ -1225,7 +1272,7 @@ msgstr "register_alloc : %p déjà alloué selon la table ?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free : %p déjà libre selon la table ?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "base non valable"
 
@@ -1248,25 +1295,27 @@ msgstr "%s : mauvaise spécification de chemin réseau"
 msgid "network operations not supported"
 msgstr "opérations sur le réseau non prises en charge"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale : LC_ALL : impossible de changer le paramètre de langue (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr "setlocale : LC_ALL :  impossible de changer le paramètre de langue (%s) : %s"
+msgstr ""
+"setlocale : LC_ALL :  impossible de changer le paramètre de langue (%s) : %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale : %s : impossible de changer le paramètre de langue (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr "setlocale : %s : impossible de changer le paramètre de langue (%s) : %s"
+msgstr ""
+"setlocale : %s : impossible de changer le paramètre de langue (%s) : %s"
 
 #: mailcheck.c:433
 msgid "You have mail in $_"
@@ -1294,118 +1343,127 @@ msgstr "Erreur de syntaxe : « ; » non attendu"
 msgid "syntax error: `((%s))'"
 msgstr "Erreur de syntaxe : « ((%s)) »"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document : le type d'instruction %d est incorrect"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "« here-document » à la ligne %d délimité par la fin du fichier (au lieu de « %s »)"
+msgstr ""
+"« here-document » à la ligne %d délimité par la fin du fichier (au lieu de « "
+"%s »)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection : l'instruction de redirection « %d » est hors plage"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
-msgstr "Caractère de fin de fichier (EOF) prématuré lors de la recherche du « %c » correspondant"
+msgstr ""
+"Caractère de fin de fichier (EOF) prématuré lors de la recherche du « %c » "
+"correspondant"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
-msgstr "Caractère de fin de fichier (EOF) prématuré lors de la recherche de « ]] »"
+msgstr ""
+"Caractère de fin de fichier (EOF) prématuré lors de la recherche de « ]] »"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "Erreur de syntaxe dans une expression conditionnelle : symbole « %s » inattendu"
+msgstr ""
+"Erreur de syntaxe dans une expression conditionnelle : symbole « %s » "
+"inattendu"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "Erreur de syntaxe dans une expression conditionnelle"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "Symbole inattendu « %s » au lieu de « ) »"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "« ) » attendu"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argument inattendu « %s » pour l'opérateur conditionnel à un argument"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "argument inattendu pour l'opérateur conditionnel à un argument"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "Symbole « %s » trouvé à la place d'un opérateur binaire conditionnel"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "opérateur binaire conditionnel attendu"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argument « %s » inattendu pour l'opérateur binaire conditionnel"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "argument inattendu pour l'opérateur binaire conditionnel"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "Symbole « %c » inattendu dans la commande conditionnelle"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "Symbole « %s » inattendu dans la commande conditionnelle"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "Symbole « %d » inattendu dans la commande conditionnelle"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "Erreur de syntaxe près du symbole inattendu « %s »"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "Erreur de syntaxe près de « %s »"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "Erreur de syntaxe : fin de fichier prématurée"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "Erreur de syntaxe"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Utilisez « %s » pour quitter le shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
-msgstr "Caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » correspondant"
+msgstr ""
+"Caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » "
+"correspondant"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "complètement : fonction « %s » non trouvée"
@@ -1415,26 +1473,26 @@ msgstr "complètement : fonction « %s » non trouvée"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert : %s : NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command : mauvais connecteur « %d »"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set : %d : descripteur de fichier non valable"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set : pointeur de fichier NULL"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf : « %c » : caractère de format invalide"
@@ -1461,7 +1519,8 @@ msgstr "%s : restreint : impossible de rediriger la sortie"
 #: redir.c:192
 #, c-format
 msgid "cannot create temp file for here-document: %s"
-msgstr "impossible de créer un fichier temporaire pour le « here-document » : %s"
+msgstr ""
+"impossible de créer un fichier temporaire pour le « here-document » : %s"
 
 #: redir.c:196
 #, c-format
@@ -1472,33 +1531,34 @@ msgstr "%s : impossible d'affecter le descripteur de fichier à la variable"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port non pris en charge sans réseau"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
-msgstr "Erreur de redirection : impossible de dupliquer le descripteur de fichier"
+msgstr ""
+"Erreur de redirection : impossible de dupliquer le descripteur de fichier"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "« /tmp » introuvable, veuillez le créer !"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "« /tmp » doit être un nom de répertoire correct"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c : option non valable"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Je n'ai pas de nom !"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, version %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1507,39 +1567,41 @@ msgstr ""
 "Utilisation :\t%s [option longue GNU] [option] ...\n"
 "\t%s [option longue GNU] [option] fichier-script ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Options longues GNU :\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Options du shell :\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD ou -c commande ou -O shopt_option\t\t(invocation seulement)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ou -o option\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Pour en savoir plus sur les options du shell, tapez « %s -c \"help set\" ».\n"
+msgstr ""
+"Pour en savoir plus sur les options du shell, tapez « %s -c \"help set\" ».\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Pour en savoir plus sur les primitives du shell, tapez « %s -c help ».\n"
+msgstr ""
+"Pour en savoir plus sur les primitives du shell, tapez « %s -c help ».\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Utilisez la commande « bashbug » pour faire un rapport de bogue.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask : %d : operation non valable"
@@ -1713,81 +1775,86 @@ msgstr "N° de signal inconnu"
 msgid "Unknown Signal #%d"
 msgstr "Signal n°%d inconnu"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s : impossible d'affecter une liste à un élément de tableau"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "Impossible de fabriquer un tube pour une substitution de processus"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "Impossible de fabriquer un fils pour une substitution de processus"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "Impossible d'ouvrir le tube nommé « %s » en lecture"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "Impossible d'ouvrir le tube nommé « %s » en écriture"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "Impossible de dupliquer le tube nommé « %s » vers le fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "Impossible de fabriquer un tube pour une substitution de commande"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
-msgstr "Impossible de fabriquer un processus fils pour une substitution de commande"
+msgstr ""
+"Impossible de fabriquer un processus fils pour une substitution de commande"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute : impossible de dupliquer le tube vers le fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s : paramètre vide ou non défini"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s : expression de sous-chaîne négative"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s : mauvaise substitution"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s : affectation impossible de cette façon"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "Les versions futures du shell forceront l'évaluation comme une substitution arithmétique"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"Les versions futures du shell forceront l'évaluation comme une substitution "
+"arithmétique"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "Mauvais remplacement : pas de « ` » de fermeture dans %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "Pas de correspondance : %s"
@@ -1824,76 +1891,87 @@ msgstr "%s : opérateur binaire attendu"
 msgid "missing `]'"
 msgstr "« ] » manquant"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "Numéro de signal non valable"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps : mauvaise valeur dans trap_list[%d] : %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps : le gestionnaire de signal est SIG_DFL, %d (%s) renvoyé à moi-même"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps : le gestionnaire de signal est SIG_DFL, %d (%s) renvoyé à "
+"moi-même"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler : mauvais signal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "erreur lors de l'import de la définition de fonction pour « %s »"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "niveau de shell trop élevé (%d), initialisation à 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
-msgstr "make_local_variable : aucun contexte de fonction dans le champ d'application actuel"
+msgstr ""
+"make_local_variable : aucun contexte de fonction dans le champ d'application "
+"actuel"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
-msgstr "all_local_variables : aucun contexte de fonction dans le champ d'application actuel"
+msgstr ""
+"all_local_variables : aucun contexte de fonction dans le champ d'application "
+"actuel"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s a un « exportstr » vide"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "caractère %d non valable dans « exportstr » pour %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "Pas de « = » dans « exportstr » pour %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context : le début de « shell_variables » n'est pas un contexte de fonction"
+msgstr ""
+"pop_var_context : le début de « shell_variables » n'est pas un contexte de "
+"fonction"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context : aucun contexte à « global_variables »"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope : le début de « shell_variables » n'est pas un champ d'application temporaire d'environnement"
+msgstr ""
+"pop_scope : le début de « shell_variables » n'est pas un champ d'application "
+"temporaire d'environnement"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s : %s : impossible d'ouvrir comme FILE"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s : %s : valeur non valable pour un descripteur de fichier de trace"
@@ -1903,8 +1981,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1914,12 +1996,15 @@ msgstr "GNU bash, version %s (%s)\n"
 #: version.c:91 version2.c:88
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "Ceci est un logiciel libre ; vous être libre de le modifier et de le redistribuer.\n"
+msgstr ""
+"Ceci est un logiciel libre ; vous être libre de le modifier et de le "
+"redistribuer.\n"
 
 #: version.c:92 version2.c:89
 #, c-format
 msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr "Aucune garantie n'est fournie, dans la mesure de ce que la loi autorise.\n"
+msgstr ""
+"Aucune garantie n'est fournie, dans la mesure de ce que la loi autorise.\n"
 
 #: version2.c:86
 #, c-format
@@ -1928,8 +2013,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licence GPLv2+ : GNU GPL version 2 ou ultérieure <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licence GPLv2+ : GNU GPL version 2 ou ultérieure <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1960,8 +2049,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nom [nom ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m keymap] [-f nomfichier] [-q nom] [-u nom] [-r seqtouche] [-x seqtouche:commande-shell] [seqtouche:fonction-readline ou commande-readline]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m keymap] [-f nomfichier] [-q nom] [-u nom] [-r seqtouche] "
+"[-x seqtouche:commande-shell] [seqtouche:fonction-readline ou commande-"
+"readline]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2049,7 +2144,8 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e ename] [-lnr] [premier] [dernier] ou fc -s [ancien=nouveau] [commande]"
+msgstr ""
+"fc [-e ename] [-lnr] [premier] [dernier] ou fc -s [ancien=nouveau] [commande]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2068,8 +2164,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [motif ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d décalage] [n] ou history -anrw [nomfichier] ou history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d décalage] [n] ou history -anrw [nomfichier] ou history -ps "
+"arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2080,16 +2180,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [jobspec ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... ou kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... ou kill -l "
+"[sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a tableau] [-d delim] [-i texte] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [nom ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a tableau] [-d delim] [-i texte] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [nom ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2148,7 +2256,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nom [nom ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [limite]"
 
 #: builtins.c:172
@@ -2156,7 +2265,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mode]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2184,8 +2294,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case MOT in [MOTIF [| MOTIF]...) COMMANDES ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if COMMANDES; then COMMANDES; [ elif COMMANDES; then COMMANDES; ]... [ else COMMANDES; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if COMMANDES; then COMMANDES; [ elif COMMANDES; then COMMANDES; ]... [ else "
+"COMMANDES; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2244,24 +2358,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [arguments]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G motif_glob] [-W liste_mots]  [-F fonction] [-C commande] [-X motif_filtre] [-P prefixe] [-S suffixe] [nom ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G motif_glob] "
+"[-W liste_mots]  [-F fonction] [-C commande] [-X motif_filtre] [-P prefixe] "
+"[-S suffixe] [nom ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G motif_glob] [-W liste_mots]  [-F fonction] [-C commande] [-X motif_filtre] [-P prefixe] [-S suffixe] [mot]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G motif_glob] [-W "
+"liste_mots]  [-F fonction] [-C commande] [-X motif_filtre] [-P prefixe] [-S "
+"suffixe] [mot]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o option] [-DE] [nom ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n nombre] [-O origine] [-s nombre] [-t] [-u fd] [-C callback] [-c quantum] [tableau]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n nombre] [-O origine] [-s nombre] [-t] [-u fd] [-C callback] [-c "
+"quantum] [tableau]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n nombre] [-O origine] [-s nombre] [-t] [-u fd] [-C callback] [-c quantum] [tableau]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n nombre] [-O origine] [-s nombre] [-t] [-u fd] [-C callback] [-"
+"c quantum] [tableau]"
 
 #: builtins.c:254
 msgid ""
@@ -2278,23 +2411,27 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Définit ou affiche des alias.\n"
 "    \n"
-"    Sans argument, « alias » affiche la liste des alias avec le format réutilisable\n"
+"    Sans argument, « alias » affiche la liste des alias avec le format "
+"réutilisable\n"
 "    « alias NOM=VALEUR » sur la sortie standard.\n"
 "    \n"
 "    Sinon, un alias est définit pour chaque NOM dont la VALEUR est donnée.\n"
-"    Une espace à la fin de la VALEUR entraine le remplacement d'alias dans le mot\n"
+"    Une espace à la fin de la VALEUR entraine le remplacement d'alias dans "
+"le mot\n"
 "    suivant, lorsque l'alias est développé.\n"
 "    \n"
 "    Options :\n"
 "      -p\tAfficher tous les alias actuels dans un format réutilisable\n"
 "    \n"
 "    Code de sortie :\n"
-"    « alias » renvoie la valeur vraie à moins que NOM ne soit fourni et que celui-ci n'aie\n"
+"    « alias » renvoie la valeur vraie à moins que NOM ne soit fourni et que "
+"celui-ci n'aie\n"
 "    pas d'alias."
 
 #: builtins.c:276
@@ -2314,6 +2451,7 @@ msgstr ""
 "    Renvoie le code de succès à moins que NOM ne soit pas un alias existant."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2325,61 +2463,83 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 "Définit les associations de touches et les variables de « Readline ».\n"
 "    \n"
-"    Associe une séquence de touches à une fonction « Readline » ou définit une\n"
-"    variable « Readline ». Les arguments non-options suivent une syntaxe équivalente à celle\n"
-"    du fichier ~/.inputrc, mais doivent être transmis comme arguments uniques :\n"
+"    Associe une séquence de touches à une fonction « Readline » ou définit "
+"une\n"
+"    variable « Readline ». Les arguments non-options suivent une syntaxe "
+"équivalente à celle\n"
+"    du fichier ~/.inputrc, mais doivent être transmis comme arguments "
+"uniques :\n"
 "    ex : bind '\"\\C-x\\C-r\" : re-read-init-file'.\n"
 "    Options :\n"
 "      -m  keymap         Utilise KEYMAP comme mappage clavier pendant la\n"
-"                         durée de cette commande. Des noms de mappage valables                         sont « emacs », « emacs-standard », « emacs-meta », \n"
-"                         « emacs-ctlx », « vi », « vi-move », « vi-command » et\n"
+"                         durée de cette commande. Des noms de mappage "
+"valables                         sont « emacs », « emacs-standard », « emacs-"
+"meta », \n"
+"                         « emacs-ctlx », « vi », « vi-move », « vi-command » "
+"et\n"
 "                         « vi-insert ».\n"
 "      -l                 Affiche les noms de fonctions.\n"
 "      -P                 Affiche les noms et associations des fonctions.\n"
-"      -p                 Affiche les fonctions et associations dans une forme qui\n"
+"      -p                 Affiche les fonctions et associations dans une "
+"forme qui\n"
 "                         peut être réutilisée comme entrée.\n"
-"      -S                 Affiche les séquences de touches qui invoquent des macros,\n"
+"      -S                 Affiche les séquences de touches qui invoquent des "
+"macros,\n"
 "                         et leurs valeurs.\n"
-"      -s                 Affiche les séquences de touches qui invoquent des macros,\n"
-"                         et leurs valeurs sous une forme qui peut être utilisée comme entrée.      -r  seqtouche         Enlève l'association pour « seqtouche ».\n"
+"      -s                 Affiche les séquences de touches qui invoquent des "
+"macros,\n"
+"                         et leurs valeurs sous une forme qui peut être "
+"utilisée comme entrée.      -r  seqtouche         Enlève l'association pour "
+"« seqtouche ».\n"
 "      -V                 Affiche les noms et valeurs des variables\n"
-"      -v                 Affiche les noms et valeurs des variables dans une forme qui peut\n"
+"      -v                 Affiche les noms et valeurs des variables dans une "
+"forme qui peut\n"
 "                         être réutilisée comme entrée.\n"
-"      -q  nom-fonction   Permet de savoir quelles touches appellent la fonction.\n"
-"      -u  nom-fonction   Enlève toutes les associations de touches liée à la fonction.\n"
+"      -q  nom-fonction   Permet de savoir quelles touches appellent la "
+"fonction.\n"
+"      -u  nom-fonction   Enlève toutes les associations de touches liée à la "
+"fonction.\n"
 "      -r  seqtouches         Supprime l'association pour SEQTOUCHES.\n"
 "      -f  nomfichier       Lit l'association de touches depuis NOMFICHIER.\n"
-"      -x  seqtouche:commande-shell\tEntraîne l'exécution de la commande-shell\n"
+"      -x  seqtouche:commande-shell\tEntraîne l'exécution de la commande-"
+"shell\n"
 "                         \t\t\t\tlorsque « seqtouche » est entrée.\n"
 "      \n"
 "      Code de sortie :\n"
-"      « bind » renvoie 0 à moins qu'une option non reconnue ne soit donnée ou qu'une erreur ne survienne."
+"      « bind » renvoie 0 à moins qu'une option non reconnue ne soit donnée "
+"ou qu'une erreur ne survienne."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2391,13 +2551,14 @@ msgid ""
 msgstr ""
 "Sort des boucles for, while, ou until.\n"
 "    \n"
-"    Sort d'une boucle FOR, WHILE ou UNTIL.  Si N est spécifié, sort de N boucles\n"
+"    Sort d'une boucle FOR, WHILE ou UNTIL.  Si N est spécifié, sort de N "
+"boucles\n"
 "    imbriquées.\n"
 "    \n"
 "    Code de retour :\n"
 "    Le code de retour est 0 à moins que N ne soit pas supérieur ou égal à 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2409,19 +2570,21 @@ msgid ""
 msgstr ""
 "Reprend l'exécution des boucles for, while ou until.\n"
 "    \n"
-"    Reprend l'itération suivante de la boucle FOR, WHILE ou UNTIL de niveau supérieur.\n"
+"    Reprend l'itération suivante de la boucle FOR, WHILE ou UNTIL de niveau "
+"supérieur.\n"
 "    Si N est précisé, reprend à N-ième boucle supérieure.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Le code de sortie est 0 à moins que N ne soit pas supérieur ou égale à 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2429,16 +2592,20 @@ msgid ""
 msgstr ""
 "Exécute des commandes shell intégrées.\n"
 "    \n"
-"    Exécute SHELL-BUILTIN avec les arguments ARGs sans effectuer de recherche\n"
-"    de commande.  Ceci est utile lorsque vous souhaitez remplacer une commande\n"
-"    intégrée par une fonction shell, mais nécessite d'exécuter la commande intégrée\n"
+"    Exécute SHELL-BUILTIN avec les arguments ARGs sans effectuer de "
+"recherche\n"
+"    de commande.  Ceci est utile lorsque vous souhaitez remplacer une "
+"commande\n"
+"    intégrée par une fonction shell, mais nécessite d'exécuter la commande "
+"intégrée\n"
 "    dans la fonction.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de retour de SHELL-BUILTIN, ou false si SHELL-BUILTIN n'est\n"
+"    Renvoie le code de retour de SHELL-BUILTIN, ou false si SHELL-BUILTIN "
+"n'est\n"
 "    pas une commande intégrée.."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2456,72 +2623,97 @@ msgstr ""
 "Renvoie le contexte de l'appel de sous-routine actuel.\n"
 "    \n"
 "    Sans EXPR, renvoie « $ligne $nomfichier ».  Avec EXPR,\n"
-"    renvoie « $ligne $sousroutine $nomfichier »; ces informations supplémentaires\n"
+"    renvoie « $ligne $sousroutine $nomfichier »; ces informations "
+"supplémentaires\n"
 "    peuvent être utilisées pour fournir une trace de la pile.\n"
 "    \n"
-"    La valeur de EXPR indique le nombre de cadres d'appels duquel il faut revenir en arrière\n"
+"    La valeur de EXPR indique le nombre de cadres d'appels duquel il faut "
+"revenir en arrière\n"
 "    avant le cadre actuel ; le cadre supérieur est le cadre 0.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie 0 à moins que le shell ne soit pas en train d'exécuter une fonction ou que EXPR\n"
+"    Renvoie 0 à moins que le shell ne soit pas en train d'exécuter une "
+"fonction ou que EXPR\n"
 "    ne soit pas valable."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Change le répertoire de travail du shell.\n"
 "    \n"
 "    Change le répertoire actuel vers DIR.  Le répertoire DIR par défaut\n"
 "    est donné par la variable « $HOME ».    \n"
-"    La variable CDPATH définit le chemin de recherche du répertoire contenant\n"
-"    DIR. Les noms de répertoires alternatifs dans CDPATH sont séparés par un deux-point « : ».\n"
-"    Un nom de répertoire vide est identique au répertoire actuel.  Si DIR commence\n"
+"    La variable CDPATH définit le chemin de recherche du répertoire "
+"contenant\n"
+"    DIR. Les noms de répertoires alternatifs dans CDPATH sont séparés par un "
+"deux-point « : ».\n"
+"    Un nom de répertoire vide est identique au répertoire actuel.  Si DIR "
+"commence\n"
 "    avec une barre oblique « / », alors CDPATH n'est pas utilisé.\n"
 "    \n"
-"    Si le répertoire n'est pas trouvé et que l'option « cdable_vars » du shell est définie,\n"
-"    alors le mot est essayé comme nom de variable. Si la variable possède une valeur,\n"
+"    Si le répertoire n'est pas trouvé et que l'option « cdable_vars » du "
+"shell est définie,\n"
+"    alors le mot est essayé comme nom de variable. Si la variable possède "
+"une valeur,\n"
 "    alors cette valeur est utilisée pour DIR.\n"
 "    \n"
 "    Options :\n"
 "        -L\tforcer le suivi des liens symboliques.\n"
 "        -P\tutiliser la structure physique des répertoires sans suivre\n"
 "    les liens symboliques\n"
-"        -e\tsi l'option -P est fournie et que le répertoire de travail actuel ne peut pas\n"
-"    \têtre déterminé avec succès, alors sortir avec un code de retour non nul\n"
+"        -e\tsi l'option -P est fournie et que le répertoire de travail "
+"actuel ne peut pas\n"
+"    \têtre déterminé avec succès, alors sortir avec un code de retour non "
+"nul\n"
 "    \n"
-"    Le comportement par défaut est de suivre les liens symboliques, comme si « -L » était précisé.\n"
+"    Le comportement par défaut est de suivre les liens symboliques, comme si "
+"« -L » était précisé.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie 0 si le répertoire est changé et si $PWD est correctement défini\n"
+"    Renvoie 0 si le répertoire est changé et si $PWD est correctement "
+"défini\n"
 "    quand -P est utilisé ; sinon autre chose que 0."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2539,17 +2731,19 @@ msgstr ""
 "Affiche le nom du répertoire de travail courant.\n"
 "    \n"
 "    Options :\n"
-"      -L\taffiche la valeur de $PWD s'il nomme le répertoire de travail courant\n"
+"      -L\taffiche la valeur de $PWD s'il nomme le répertoire de travail "
+"courant\n"
 "    \t\n"
 "      -P\taffiche le répertoire physique, sans aucun lien symbolique\n"
 "    \n"
 "    Par défaut, « pwd » se comporte comme si « -L » était spécifié.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie 0 à moins qu'une option non valable ne soit donnée ou que le répertoire\n"
+"    Renvoie 0 à moins qu'une option non valable ne soit donnée ou que le "
+"répertoire\n"
 "    courant ne peut pas être lu."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2565,7 +2759,7 @@ msgstr ""
 "    Code de retour :\n"
 "    Renvoie toujours le code de succès."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2577,7 +2771,7 @@ msgstr ""
 "    Code de retour :\n"
 "    Succès."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2589,12 +2783,13 @@ msgstr ""
 "    Code de sortie :\n"
 "    Toujours l'échec."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2608,20 +2803,25 @@ msgid ""
 msgstr ""
 "Exécute une simple commande ou affiche des informations sur les commandes.\n"
 "    \n"
-"    Lance la COMMANDE avec des ARGS en court-circuitant la recherche de commande, ou affiche\n"
-"    des informations sur les COMMANDEs spécifiées.  Ceci peut être utilisé pour invoquer des commandes\n"
-"    sur le disque lorsqu'il y a conflit avec une fonction portant le même nom.\n"
+"    Lance la COMMANDE avec des ARGS en court-circuitant la recherche de "
+"commande, ou affiche\n"
+"    des informations sur les COMMANDEs spécifiées.  Ceci peut être utilisé "
+"pour invoquer des commandes\n"
+"    sur le disque lorsqu'il y a conflit avec une fonction portant le même "
+"nom.\n"
 "    \n"
 "    Options :\n"
 "      -p\tutilise une valeur par défaut pour CHEMIN qui garantit de trouver\n"
 "    \ttous les utilitaires standards\n"
-"      -v\taffiche une description de la COMMANDE similaire à la commande intégrée « type »\n"
+"      -v\taffiche une description de la COMMANDE similaire à la commande "
+"intégrée « type »\n"
 "      -V\taffiche une description plus détaillées de chaque COMMANDE\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de sortie de la COMMANDE, ou le code d'échec si la COMMANDE est introuvable."
+"    Renvoie le code de sortie de la COMMANDE, ou le code d'échec si la "
+"COMMANDE est introuvable."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2651,7 +2851,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2659,14 +2860,18 @@ msgid ""
 msgstr ""
 "Définit les valeurs et les attributs des variables.\n"
 "    \n"
-"    Permet de déclarer des variables et de leur donner des attributs.  Si aucun NOM n'est donné,\n"
+"    Permet de déclarer des variables et de leur donner des attributs.  Si "
+"aucun NOM n'est donné,\n"
 "    affiche les attributs et les valeurs de toutes les variables.\n"
 "    \n"
 "    Options :\n"
-"      -f\trestreint l'action ou l'affichage aux noms et définitions de fonctions\n"
-"      -F\trestreint l'affichage aux noms des fonctions uniquement (avec le numéro de ligne\n"
+"      -f\trestreint l'action ou l'affichage aux noms et définitions de "
+"fonctions\n"
+"      -F\trestreint l'affichage aux noms des fonctions uniquement (avec le "
+"numéro de ligne\n"
 "    \tet le fichier source lors du débogage)\n"
-"      -g\tcrée des variables globales lorsqu'utilisée dans une fonction shell ; ignoré sinon\n"
+"      -g\tcrée des variables globales lorsqu'utilisée dans une fonction "
+"shell ; ignoré sinon\n"
 "      -p\taffiche les attributs et la valeur de chaque NOM\n"
 "    \n"
 "    Options qui définissent des attributs :\n"
@@ -2681,16 +2886,21 @@ msgstr ""
 "    \n"
 "    Utiliser « + » au lieu de « - » permet de désactiver l'attribut donné.\n"
 "    \n"
-"    Les variables avec l'attribut « integer » ont une évaluation arithmétique (voir\n"
-"    la commande « let ») effectuée lorsqu'un valeur est affectée à la variable.\n"
+"    Les variables avec l'attribut « integer » ont une évaluation "
+"arithmétique (voir\n"
+"    la commande « let ») effectuée lorsqu'un valeur est affectée à la "
+"variable.\n"
 "    \n"
-"    Lorsqu'utilisée dans une fonction, « declare » permet aux NOMs d'être locaux,\n"
-"    comme avec la commande « local ». L'option « -g » supprime ce comportement.\n"
+"    Lorsqu'utilisée dans une fonction, « declare » permet aux NOMs d'être "
+"locaux,\n"
+"    comme avec la commande « local ». L'option « -g » supprime ce "
+"comportement.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'un option non valable soit fournie ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'un option non valable soit fournie "
+"ou qu'une erreur ne survienne."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2700,7 +2910,7 @@ msgstr ""
 "    \n"
 "    Obsolète.  Essayez « help declare »."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2716,21 +2926,28 @@ msgid ""
 msgstr ""
 "Définit des variables locales.\n"
 "    \n"
-"    Crée une variable locale nommée NOM, avec une valeur VALEUR.  OPTION peut\n"
+"    Crée une variable locale nommée NOM, avec une valeur VALEUR.  OPTION "
+"peut\n"
 "    être n'importe quelle option acceptée par « declare ».\n"
 "    \n"
-"    Les variables locales peut seulement être utilisée à l'intérieur d'une fonction; elles ne sont visibles\n"
-"    que des fonctions où elles ont été définies et dans ses fonctions filles.\n"
+"    Les variables locales peut seulement être utilisée à l'intérieur d'une "
+"fonction; elles ne sont visibles\n"
+"    que des fonctions où elles ont été définies et dans ses fonctions "
+"filles.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit fournie, qu'une erreur ne survienne,\n"
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"fournie, qu'une erreur ne survienne,\n"
 "    ou que l'inteprète ne soit pas dans une fonction."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2742,6 +2959,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2762,10 +2980,13 @@ msgstr ""
 "    \n"
 "    Options :\n"
 "      -n\tne pas ajouter de saut de ligne\n"
-"      -e\tactive l'interpretation des barres contre-obliques d'échappement ci-dessous\n"
-"      -E\tsupprime explicitement l'interpretation des barres contre-obliques d'échappement\n"
+"      -e\tactive l'interpretation des barres contre-obliques d'échappement "
+"ci-dessous\n"
+"      -E\tsupprime explicitement l'interpretation des barres contre-obliques "
+"d'échappement\n"
 "    \n"
-"    « echo » interprète les caractères suivants comme des séquences d'échappement :\n"
+"    « echo » interprète les caractères suivants comme des séquences "
+"d'échappement :\n"
 "      \\a\talerte (cloche)\n"
 "      \\b\tretour arrière\n"
 "      \\c\tsupprime caractère suivant\n"
@@ -2776,7 +2997,8 @@ msgstr ""
 "      \\t\ttabulation horizontale\n"
 "      \\v\ttabulation verticale\n"
 "      \\\\\tbarre contre-oblique\n"
-"      \\0nnn\tle caractère dont le code ASCII est NNN (en octal).  NNN peut être\n"
+"      \\0nnn\tle caractère dont le code ASCII est NNN (en octal).  NNN peut "
+"être\n"
 "    \tlong de 0 à 3 chiffres octaux\n"
 "      \\xHH\tle caractère à 8 bits dont la valeur est HH (hexadecimal).  HH\n"
 "    \tpeut être long de 1 ou 2 chiffres hexadécimaux\n"
@@ -2784,7 +3006,7 @@ msgstr ""
 "    Code de sortie :\n"
 "    Renvoie le code de succès à moins qu'une erreur ne survienne."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2806,7 +3028,7 @@ msgstr ""
 "    Code de sortie :\n"
 "    Renvoie le code de succès à moins qu'une erreur ne survienne."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2834,33 +3056,42 @@ msgid ""
 msgstr ""
 "Active et désactive les commandes intégrées.\n"
 "    \n"
-"    Active et désactive les commandes intégrées du shell.  Les désactiver vous permet\n"
-"    d'exécuter une commande du disque ayant le même nom qu'une commande du shell\n"
+"    Active et désactive les commandes intégrées du shell.  Les désactiver "
+"vous permet\n"
+"    d'exécuter une commande du disque ayant le même nom qu'une commande du "
+"shell\n"
 "    sans utiliser le chemin compler vers le fichier.\n"
 "    \n"
 "    Options :\n"
-"      -a\taffiche la liste des commandes intégrées et leur état d'activation\n"
-"      -n\tdésactive chaque NOM ou affiche la liste des commandes désactivées\n"
+"      -a\taffiche la liste des commandes intégrées et leur état "
+"d'activation\n"
+"      -n\tdésactive chaque NOM ou affiche la liste des commandes "
+"désactivées\n"
 "      -p\taffiche la liste des commandes dans un format réutilisable\n"
-"      -s\taffiche seulement les noms des commandes Posix de type « special »\n"
+"      -s\taffiche seulement les noms des commandes Posix de type « special "
+"»\n"
 "    \n"
 "    Options contrôlant le chargement dynamique :\n"
-"      -f\tCharge la commande intégrée NOM depuis la bibliothèque partagée FILENAME\n"
+"      -f\tCharge la commande intégrée NOM depuis la bibliothèque partagée "
+"FILENAME\n"
 "      -d\tDécharge une commande chargée avec « -f »\n"
 "    \n"
 "    S'il n'y a pas d'option, chaque commande NOM est activée.\n"
 "    \n"
-"    Pour utiliser le « test » trouvé dans $PATH au lieu de celui intégré au shell,\n"
+"    Pour utiliser le « test » trouvé dans $PATH au lieu de celui intégré au "
+"shell,\n"
 "    tapez « enable -n test ».\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins que NOM ne soit pas une commande intégrée ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins que NOM ne soit pas une commande "
+"intégrée ou qu'une erreur ne survienne."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2868,13 +3099,15 @@ msgid ""
 msgstr ""
 "Exécute des arguments comme s'ils étaient une commande du shell.\n"
 "    \n"
-"    Combine des ARGs en une chaîne unique, utilise le résultat comme entrée du shell,\n"
+"    Combine des ARGs en une chaîne unique, utilise le résultat comme entrée "
+"du shell,\n"
 "    puis exécute la commande résultante.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le même code de sortie que la commande, ou le code de succès si la commande est vide."
+"    Renvoie le même code de sortie que la commande, ou le code de succès si "
+"la commande est vide."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2924,40 +3157,58 @@ msgstr ""
 "    argument séparé d'elle par une espace.\n"
 "    \n"
 "    À chaque fois qu'elle est appelée, « getopts » place l'option suivante\n"
-"    dans la variable de shell « $nom », en l'initialisant si elle n'existe pas,\n"
-"    et place l'index de l'argument suivant dans la variable de shell OPTIND.\n"
-"    OPTIND est initialisé à 1 à chaque fois que le shell ou qu'un script shell\n"
-"    est appelé.  Lorsqu'une option nécessite un argument, « getopts » place cet\n"
+"    dans la variable de shell « $nom », en l'initialisant si elle n'existe "
+"pas,\n"
+"    et place l'index de l'argument suivant dans la variable de shell "
+"OPTIND.\n"
+"    OPTIND est initialisé à 1 à chaque fois que le shell ou qu'un script "
+"shell\n"
+"    est appelé.  Lorsqu'une option nécessite un argument, « getopts » place "
+"cet\n"
 "    argument dans la variable de shell OPTARG.\n"
 "    \n"
-"    « getopts » signale les erreurs d'une façon parmi deux.  Si le premier caractère\n"
-"    d'OPTSTRING est un deux-points, « getopts » utilise un signalement d'erreur\n"
-"    silencieux. Dans ce mode aucun message d'erreur n'est affiché. Si une option\n"
-"    incorrecte est rencontrée, « getopts » place dans OPTARG le caractère d'option\n"
-"    trouvé. Si un argument nécessaire n'est pas trouvé, « getopts » place un « : »\n"
-"    dans NOM et place dans OPTARG le caractère d'option trouvé.  Si « getopts »\n"
-"    n'est pas en mode silencieux et qu'une option incorrecte est rencontrée, il\n"
-"    place « ? » dans NAME et efface OPTARG.  Si un argument nécessaire n'est pas\n"
-"    trouvé, un « ? » est placé dans NAME, OPTARG est effacé et un message de diagnostic\n"
+"    « getopts » signale les erreurs d'une façon parmi deux.  Si le premier "
+"caractère\n"
+"    d'OPTSTRING est un deux-points, « getopts » utilise un signalement "
+"d'erreur\n"
+"    silencieux. Dans ce mode aucun message d'erreur n'est affiché. Si une "
+"option\n"
+"    incorrecte est rencontrée, « getopts » place dans OPTARG le caractère "
+"d'option\n"
+"    trouvé. Si un argument nécessaire n'est pas trouvé, « getopts » place un "
+"« : »\n"
+"    dans NOM et place dans OPTARG le caractère d'option trouvé.  Si « "
+"getopts »\n"
+"    n'est pas en mode silencieux et qu'une option incorrecte est rencontrée, "
+"il\n"
+"    place « ? » dans NAME et efface OPTARG.  Si un argument nécessaire n'est "
+"pas\n"
+"    trouvé, un « ? » est placé dans NAME, OPTARG est effacé et un message de "
+"diagnostic\n"
 "    est affiché.\n"
 "    \n"
-"    Si la variable de shell OPTERR possède la valeur 0, « getopts » désactive\n"
-"    l'affichage des messages d'erreur, même si le premier caractère d'OPTSTRING\n"
+"    Si la variable de shell OPTERR possède la valeur 0, « getopts » "
+"désactive\n"
+"    l'affichage des messages d'erreur, même si le premier caractère "
+"d'OPTSTRING\n"
 "    n'est pas un deux-points. OPTERR possède la valeur 1 par défaut.\n"
 "    \n"
-"    « getopts » analyse habituellement les paramètres de position ($0 - $9), mais\n"
+"    « getopts » analyse habituellement les paramètres de position ($0 - $9), "
+"mais\n"
 "    si plus d'argument sont données, ils sont analysés à la place.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès si une option est trouvée, le code d'échec si la fin des options\n"
+"    Renvoie le code de succès si une option est trouvée, le code d'échec si "
+"la fin des options\n"
 "    est rencontrée ou si une erreur survient."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2965,16 +3216,19 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Remplace le shell par la commande fournie.\n"
 "    \n"
 "    Exécute la COMMANDE, en remplaçant ce shell par le programme spécifiée.\n"
-"    Les ARGUMENTS deviennent ceux de la COMMANDE. Si la COMMANDE n'est pas fournie,\n"
+"    Les ARGUMENTS deviennent ceux de la COMMANDE. Si la COMMANDE n'est pas "
+"fournie,\n"
 "    les redirections prennent effet dans le shell courant.\n"
 "    \n"
 "    Options :\n"
@@ -2982,13 +3236,15 @@ msgstr ""
 "      -c\t\texécute la COMMANDE avec un environnement vide\n"
 "      -l\t\tplace un tiret comme argument numéro 0 de la COMMANDE\n"
 "    \n"
-"    Si la commande ne peut pas être exécutée, un shell non-interactif se termine, à moins\n"
+"    Si la commande ne peut pas être exécutée, un shell non-interactif se "
+"termine, à moins\n"
 "    que l'option « execfail » ne soit définie.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins que la COMMANDE ne soit pas trouvée ou qu'une erreur de redirection ne survienne."
+"    Renvoie le code de succès à moins que la COMMANDE ne soit pas trouvée ou "
+"qu'une erreur de redirection ne survienne."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3000,29 +3256,33 @@ msgstr ""
 "    Termine le shell avec le code de retour « N ».  Si N est omis, le code\n"
 " de retour est celui de la dernière commande exécutée."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Termine un shell de connexion.\n"
 "    \n"
-"    Termine un shell de connexion avec le code de sortie N.  Renvoie une erreur s'il n'est pas exécuté\n"
+"    Termine un shell de connexion avec le code de sortie N.  Renvoie une "
+"erreur s'il n'est pas exécuté\n"
 "    dans un shell de connexion."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3036,34 +3296,41 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Affiche ou exécute des commandes issues de l'historique.\n"
 "    \n"
-"  « fc » est utilisé pour afficher ou modifier puis ré-exécuter les commandes\n"
-"  de l'historique des commandes. PREMIER et DERNIER peuvent être des nombres\n"
+"  « fc » est utilisé pour afficher ou modifier puis ré-exécuter les "
+"commandes\n"
+"  de l'historique des commandes. PREMIER et DERNIER peuvent être des "
+"nombres\n"
 "  indiquant la plage ou PREMIER peut être une chaîne donnant le début de la\n"
 "  commande la plus récente recherchée.\n"
 "    \n"
 "    Options :\n"
-"       -e ENAME définit quel éditeur utiliser. Par défaut il s'agit de « FCEDIT »\n"
+"       -e ENAME définit quel éditeur utiliser. Par défaut il s'agit de « "
+"FCEDIT »\n"
 "          puis « EDITOR », puis « vi ».\n"
 "    \n"
 "       -l affiche les les lignes au lieu de les éditer.\n"
 "       -n n'affiche pas les numéros de ligne.\n"
 "       -r inverse l'ordre des lignes (les plus récentes en premier).\n"
 "    \n"
-"    En tapant « fc -s [ancien=nouveau ...] [commande] », la commande est ré-exécutée\n"
+"    En tapant « fc -s [ancien=nouveau ...] [commande] », la commande est ré-"
+"exécutée\n"
 "    après avoir effectué le remplacement ANCIEN=NOUVEAU.\n"
 "    \n"
 "    Un alias utile est « r='fc -s' » de sorte qu'en tapant « r cc »,\n"
-"    la dernière commande commençant par « cc » est ré-exécutée et avec « r », la\n"
+"    la dernière commande commençant par « cc » est ré-exécutée et avec « r "
+"», la\n"
 "    dernière commande est ré-exécutée.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès ou le code de sortie de la commande exécutée ; autre chose que 0 si une erreur survient."
+"    Renvoie le code de succès ou le code de sortie de la commande exécutée ; "
+"autre chose que 0 si une erreur survient."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3081,14 +3348,17 @@ msgstr ""
 "    de tâche actuelle.\n"
 "    \n"
 "    Code de sortie :\n"
-"    celui de la commande placée au premier plan ou le code d'échec si une erreur survient."
+"    celui de la commande placée au premier plan ou le code d'échec si une "
+"erreur survient."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3096,19 +3366,22 @@ msgid ""
 msgstr ""
 "Déplace des tâches vers l'arrière plan.\n"
 "    \n"
-"    Place chaque JOB_SPEC en arrière plan comme s'il avait été démarré avec « & ».\n"
+"    Place chaque JOB_SPEC en arrière plan comme s'il avait été démarré avec "
+"« & ».\n"
 "    Si JOB_SPEC n'est pas fourni, le shell utilise sa propre notion\n"
 "    de tâche actuelle.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins que le contrôle de tâche ne soit pas activé ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins que le contrôle de tâche ne soit pas "
+"activé ou qu'une erreur ne survienne."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3128,7 +3401,8 @@ msgstr ""
 "Mémorise ou affiche l'emplacement des programmes.\n"
 "    \n"
 "    Détermine et mémorise le chemin complet de chaque commande NOM.  Si\n"
-"    aucun argument n'est donné, une information sur les commandes mémorisées est affichée.\n"
+"    aucun argument n'est donné, une information sur les commandes mémorisées "
+"est affichée.\n"
 "    \n"
 "    Options :\n"
 "      -d\t\toublier l'emplacement mémorisé de chaque NOM\n"
@@ -3143,9 +3417,10 @@ msgstr ""
 "    \t\tdes commandes mémorisée.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins que le NOM ne soit pas trouvé ou qu'une option non valable ne soit donnée."
+"    Renvoie le code de succès à moins que le NOM ne soit pas trouvé ou "
+"qu'une option non valable ne soit donnée."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3163,12 +3438,14 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Affiche des informations sur les commandes intégrées.\n"
 "    \n"
 "    Affiche de courts résumés des commandes intégrées.  Si MOTIF est\n"
-"    spécifié, une aide détaillée de toutes les commandes correspondantes au MOTIF sont affichées,\n"
+"    spécifié, une aide détaillée de toutes les commandes correspondantes au "
+"MOTIF sont affichées,\n"
 "    sinon la liste des sujets d'aide est affichée.\n"
 "    \n"
 "    Options :\n"
@@ -3181,9 +3458,10 @@ msgstr ""
 "      MOTIF\tMotif spécifiant un sujet d'aide\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins que le MOTIF ne soit pas trouvé ou qu'une option non valable ne soit donnée."
+"    Renvoie le code de succès à moins que le MOTIF ne soit pas trouvé ou "
+"qu'une option non valable ne soit donnée."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3210,41 +3488,53 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 "Affiche ou manipule l''historique.\n"
 "    \n"
-"    Affiche l'historique avec les numéros de lignes en préfixant chaque élément\n"
-"    modifié d'un « * ».  Un argument égal à N limite la liste aux N derniers éléments.\n"
+"    Affiche l'historique avec les numéros de lignes en préfixant chaque "
+"élément\n"
+"    modifié d'un « * ».  Un argument égal à N limite la liste aux N derniers "
+"éléments.\n"
 "    \n"
 "    Options :\n"
 "      -c\tefface la liste d'historique en effaçant tous les éléments\n"
 "      -d offset\tefface l'élément d'historique à l'emplacement OFFSET.\n"
 "    \n"
-"      -a\tajouter les lignes d'historique de cette session au fichier d'historique\n"
-"      -n\tlire toutes les lignes d'historique non déjà lues depuis le fichier d'historique\n"
-"      -r\tlire le fichier d'historique et ajouter le contenu à la liste d'historique\n"
+"      -a\tajouter les lignes d'historique de cette session au fichier "
+"d'historique\n"
+"      -n\tlire toutes les lignes d'historique non déjà lues depuis le "
+"fichier d'historique\n"
+"      -r\tlire le fichier d'historique et ajouter le contenu à la liste "
+"d'historique\n"
 "      -w\técrire l'historique actuel dans le fichier d'historique\n"
 "    \tet l'ajoute à la liste d'historique\n"
 "    \n"
-"      -p\teffectuer un développement de l'historique sur chaque ARG et afficher le résultat\n"
+"      -p\teffectuer un développement de l'historique sur chaque ARG et "
+"afficher le résultat\n"
 "    \tsans le stocker dans la liste d'historique\n"
 "      -s\tajoute les ARGs à la liste d'historique comme entrée unique\n"
 "    \n"
-"    Si NOMFICHIER est donné, il est utilisé comme fichier d'historique. Sinon,\n"
-"    si $HISTFILE contient une valeur, celle-ci est utilisée, sinon ~/.bash_history.\n"
+"    Si NOMFICHIER est donné, il est utilisé comme fichier d'historique. "
+"Sinon,\n"
+"    si $HISTFILE contient une valeur, celle-ci est utilisée, sinon ~/."
+"bash_history.\n"
 "    \n"
-"    Si la variable $HISTTIMEFORMAT est définie et n'est pas vide, sa valeur est utillisée\n"
-"    comme chaîne de format pour que strftime(3) affiche l'horodatage associé\n"
+"    Si la variable $HISTTIMEFORMAT est définie et n'est pas vide, sa valeur "
+"est utillisée\n"
+"    comme chaîne de format pour que strftime(3) affiche l'horodatage "
+"associé\n"
 "    à chaque entrée d'historique.  Sinin, aucun horodatage n'est affiché.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable soit donnée ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'une option non valable soit donnée "
+"ou qu'une erreur ne survienne."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3269,26 +3559,32 @@ msgid ""
 msgstr ""
 "Affiche l'état des tâches.\n"
 "    \n"
-"    Affiche la liste des tâches actives.  JOBSPEC restreint l'affichage à cette tâche.\n"
-"    S'il n'y a pas d'option, l'état de toutes les tâches actives est affiché.\n"
+"    Affiche la liste des tâches actives.  JOBSPEC restreint l'affichage à "
+"cette tâche.\n"
+"    S'il n'y a pas d'option, l'état de toutes les tâches actives est "
+"affiché.\n"
 "    \n"
 "    Options :\n"
 "      -l\tafficher les IDs de processus en plus des informations normales\n"
-"      -n\tafficher seulement les processus dont l'état a changé depuis la dernière\n"
+"      -n\tafficher seulement les processus dont l'état a changé depuis la "
+"dernière\n"
 "    \tnotification\n"
 "      -p\tafficher seulement les IDs de processus\n"
 "      -r\trestreindre l'affichage aux tâches en cours d'exécution\n"
 "      -s\trestreindre l'affichage aux tâches stoppées\n"
 "    \n"
-"    Si « -x » est fournie, la COMMANDE est lancée après que toutes les spécifications\n"
-"    qui apparaissent dans ARGs ont été remplacées par l'ID de processus du leader de groupe\n"
+"    Si « -x » est fournie, la COMMANDE est lancée après que toutes les "
+"spécifications\n"
+"    qui apparaissent dans ARGs ont été remplacées par l'ID de processus du "
+"leader de groupe\n"
 "    de processus de cette tâche.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit donnée ou qu'une erreur ne survienne.\n"
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"donnée ou qu'une erreur ne survienne.\n"
 "    Si « -x » est utilisée, le code de sortie de la COMMANDE est renvoyé."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3311,14 +3607,16 @@ msgstr ""
 "    \n"
 "    Options :\n"
 "      -a\tretirer toutes lestâches si JOBSPEC n'est pas fourni\n"
-"      -h\tmarque chaque JOBSPEC de façon que SIGHUP ne soit pas envoyé à la tâche\n"
+"      -h\tmarque chaque JOBSPEC de façon que SIGHUP ne soit pas envoyé à la "
+"tâche\n"
 "    \tsi le shell reçoit un SIGHUP\n"
 "      -r\tretire seulement les tâches en cours de fonctionnement\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option ou un JOBSPEC non valable ne soit donné."
+"    Renvoie le code de succès à moins qu'une option ou un JOBSPEC non "
+"valable ne soit donné."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3341,30 +3639,36 @@ msgid ""
 msgstr ""
 "Envoie un signal à une tâche.\n"
 "    \n"
-"    Envoie le signal nommé par SIGSPEC ou SIGNUM au processus identifié par PID ou JOBSPEC.\n"
+"    Envoie le signal nommé par SIGSPEC ou SIGNUM au processus identifié par "
+"PID ou JOBSPEC.\n"
 "    Si SIGSPEC et SIGNUM ne sont pas donnés, alors SIGTERM est envoyé.\n"
 "    \n"
 "    Options :\n"
 "      -s sig\tSIG est un nom de signal\n"
 "      -n sig\tSIG est un numéro de signal\n"
-"      -l\tafficher la liste des noms de signaux ; si des arguments suivent « -l », ils sont supposés être\n"
+"      -l\tafficher la liste des noms de signaux ; si des arguments suivent « "
+"-l », ils sont supposés être\n"
 "    \tdes numéro de signaux pour lesquels les noms doivent être affichés\n"
 "    \n"
-"    « kill » est une commande intégrée pour deux raisons : elle permet aux IDs de tâches d'être utilisées\n"
-"    à la place des IDs de processus et elle permet aux processus d'être tués si la limite du nombre de processus\n"
+"    « kill » est une commande intégrée pour deux raisons : elle permet aux "
+"IDs de tâches d'être utilisées\n"
+"    à la place des IDs de processus et elle permet aux processus d'être tués "
+"si la limite du nombre de processus\n"
 "    que vous pouvez créer est atteinte.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable soit donnée ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'une option non valable soit donnée "
+"ou qu'une erreur ne survienne."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3431,29 +3735,37 @@ msgstr ""
 "    \t&=, ^=, |=\taffectation\n"
 "    \n"
 "    Les variables de shell sont autorisées comme opérandes. Le nom de la\n"
-"    variable est remplacé par sa valeur (contrainte à un entier de largeur fixe)\n"
-"    à l'intérieur d'une expression. La variable n'a pas besoin d'avoir son attribut\n"
+"    variable est remplacé par sa valeur (contrainte à un entier de largeur "
+"fixe)\n"
+"    à l'intérieur d'une expression. La variable n'a pas besoin d'avoir son "
+"attribut\n"
 "    d'entier activé pour être utilisée dans une expression.\n"
 "    \n"
-"    Les opérateurs sont évalués dans leur ordre de priorité. Les sous-expressions entre\n"
-"    parenthèses sont évaluées en premier et peuvent être prioritaires sur les règles\n"
+"    Les opérateurs sont évalués dans leur ordre de priorité. Les sous-"
+"expressions entre\n"
+"    parenthèses sont évaluées en premier et peuvent être prioritaires sur "
+"les règles\n"
 "    ci-dessus.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Si le dernier ARG est évalué à 0, « let » renvoie 1, sinon 0 est renvoyé."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3465,64 +3777,88 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Lit une ligne depuis l'entrée standard et la découper en morceaux.\n"
 "    \n"
-"    Lit une simple ligne depuis l'entrée standard ou depuis le descripteur de fichier FD\n"
-"    si l'option « -u » est fournie.  La ligne est découpée en morceaux comme des mots,\n"
-"    et le premier mot est assigné au premier NOM, le deuxième mot au deuxième NOM,\n"
-"    et ainsi de suite, le dernier NOM récupérant la liste des mots restants.\n"
+"    Lit une simple ligne depuis l'entrée standard ou depuis le descripteur "
+"de fichier FD\n"
+"    si l'option « -u » est fournie.  La ligne est découpée en morceaux comme "
+"des mots,\n"
+"    et le premier mot est assigné au premier NOM, le deuxième mot au "
+"deuxième NOM,\n"
+"    et ainsi de suite, le dernier NOM récupérant la liste des mots "
+"restants.\n"
 "    Seul les caractères trouvés dans $IFS sont reconnus comme délimiteurs\n"
 "    de mots\n"
 "    \n"
-"    Si aucun NOM n'est fourni, la ligne lue est stockée dans la variable REPLY.\n"
+"    Si aucun NOM n'est fourni, la ligne lue est stockée dans la variable "
+"REPLY.\n"
 "    \n"
 "    Options :\n"
-"      -a tableau\taffecter les indices de la variable tableau séquentiellement aux mots lus,\n"
+"      -a tableau\taffecter les indices de la variable tableau "
+"séquentiellement aux mots lus,\n"
 "    \t\ten commançant à 0\n"
-"      -d délim\tcontinuer jusqu'à ce que le premier caractère de DELIM soit lu,\n"
+"      -d délim\tcontinuer jusqu'à ce que le premier caractère de DELIM soit "
+"lu,\n"
 "    \t\tau lieu du retour à la ligne\n"
-"      -e\t\tutiliser « Readline » pour obtenir la ligne dans un shell interactif\n"
+"      -e\t\tutiliser « Readline » pour obtenir la ligne dans un shell "
+"interactif\n"
 "      -i texte\tUtiliser TEXTE comme texte initial pour « Readline »\n"
 "      -n n\tterminer après avoir lu N caractères plutôt que d'attendre\n"
-"    \t\tun retour à la ligne, mais obéir à un délimiteur si moins de N caractères\n"
+"    \t\tun retour à la ligne, mais obéir à un délimiteur si moins de N "
+"caractères\n"
 "    \t\tsont lus avant le délimiteur\n"
-"      -N n\ttermine seulement après avoir lu exactement N caractères, à moins\n"
-"    \t\tque le caractère EOF soit recontré ou que le délai de lecture n'expire, en ignorant tout délimiteur\n"
-"      -p prompt\taffiche la chaîne PROMPT sans retour à la ligne final, avant de tenter une\n"
+"      -N n\ttermine seulement après avoir lu exactement N caractères, à "
+"moins\n"
+"    \t\tque le caractère EOF soit recontré ou que le délai de lecture "
+"n'expire, en ignorant tout délimiteur\n"
+"      -p prompt\taffiche la chaîne PROMPT sans retour à la ligne final, "
+"avant de tenter une\n"
 "    \t\tlecture\n"
-"      -r\t\tne pas permettre aux barres obliques inverses de se comporter comme des caractères d'échappement\n"
+"      -r\t\tne pas permettre aux barres obliques inverses de se comporter "
+"comme des caractères d'échappement\n"
 "      -s\t\tne pas répéter l'entrée provenant d'un terminal\n"
-"      -t timeout\texpire et renvoie un code d'échec si une ligne d'entrée complète n'est pas\n"
+"      -t timeout\texpire et renvoie un code d'échec si une ligne d'entrée "
+"complète n'est pas\n"
 "    \t\tlue en moins de TIMEOUT secondes.  La valeur de la variable TIMEOUT\n"
-"    \t\test le délai d'expiration par défaut.  TIMEOUT peut être un nombre à virgule\n"
+"    \t\test le délai d'expiration par défaut.  TIMEOUT peut être un nombre à "
+"virgule\n"
 "    \t\tSi TIMEOUT est à, la lecture renvoie un code de succès seulement\n"
 "    \t\tsi l'entrée est disponible sur le descripteut de fichier.  Le code\n"
 "    \t\tde sortie est supérieur à 128 si le délai a expiré\n"
-"      -u fd\t\tlire depuis le descripteur de fichier FD plutôt que l'entrée standard\n"
+"      -u fd\t\tlire depuis le descripteur de fichier FD plutôt que l'entrée "
+"standard\n"
 "    \n"
 "    Code de sortie :\n"
-"    Le code de retour est 0, à moins qu'une fin de fichier ne survienne, que le délai expire,\n"
-"    ou qu'un descripteur de fichier non valable ne soit fourni comme argument à « -u »."
+"    Le code de retour est 0, à moins qu'une fin de fichier ne survienne, que "
+"le délai expire,\n"
+"    ou qu'un descripteur de fichier non valable ne soit fourni comme "
+"argument à « -u »."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3535,14 +3871,18 @@ msgid ""
 msgstr ""
 "Termine depuis une fonction du shell.\n"
 "    \n"
-"    Entraine l'arrêt d'une fonction ou d'un script sourcé, avec le code de retour spécifié par N.\n"
-"    Si N est omis, le code de retour est celui de la dernière commande exécutée\n"
+"    Entraine l'arrêt d'une fonction ou d'un script sourcé, avec le code de "
+"retour spécifié par N.\n"
+"    Si N est omis, le code de retour est celui de la dernière commande "
+"exécutée\n"
 "    à l'intérieur de la fonction ou du script\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie N ou le code d'échec si le shell n'est pas en train d'exécuter une fonction ou un script."
+"    Renvoie N ou le code d'échec si le shell n'est pas en train d'exécuter "
+"une fonction ou un script."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3585,7 +3925,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3607,7 +3948,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3625,18 +3966,23 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
-"Définit ou invalide des valeurs d'options et des paramètres de position du shell.\n"
+"Définit ou invalide des valeurs d'options et des paramètres de position du "
+"shell.\n"
 "    \n"
-"    Change la valeur des attributs du shell et des paramètres de position, ou\n"
+"    Change la valeur des attributs du shell et des paramètres de position, "
+"ou\n"
 "    affiche les noms et valeurs des variables du shell.\n"
 "    \n"
 "    Options :\n"
-"        -a  Marquer pour l'export toutes les variables qui sont modifiées ou créées.\n"
+"        -a  Marquer pour l'export toutes les variables qui sont modifiées ou "
+"créées.\n"
 "        -b  Avertir immédiatement de la fin d'une tâche.\n"
-"        -e  Terminer immédiatement si une commande s'arrête avec un code de retour non nul.\n"
+"        -e  Terminer immédiatement si une commande s'arrête avec un code de "
+"retour non nul.\n"
 "        -f  Désactiver la génération de nom de fichier (globbing).\n"
 "        -h  Mémoriser l'emplacement des commandes après leur recherche.\n"
-"        -k  Placer dans l'environnement tous les arguments d'affectation pour une commande,\n"
+"        -k  Placer dans l'environnement tous les arguments d'affectation "
+"pour une commande,\n"
 "            pas seulement ceux qui précèdent le nom de la commande.\n"
 "        -m  Activer le contrôle de tâche.\n"
 "        -n  Lire les commandes, mais ne pas les exécuter.\n"
@@ -3651,9 +3997,11 @@ msgstr ""
 "                hashall      identique à -h\n"
 "                histexpand   identique à -H\n"
 "                history      activer l'historique des commandes\n"
-"                ignoreeof    ne pas terminer le shell à la lecture d'un « EOF »\n"
+"                ignoreeof    ne pas terminer le shell à la lecture d'un « "
+"EOF »\n"
 "                interactive-comments\n"
-"                             permet aux commentaires d'apparaître dans les commandes interactives\n"
+"                             permet aux commentaires d'apparaître dans les "
+"commandes interactives\n"
 "                keyword      identique à -k\n"
 "                monitor      identique à -m\n"
 "                noclobber    identique à -C\n"
@@ -3664,46 +4012,67 @@ msgstr ""
 "                nounset      identique à -u\n"
 "                onecmd       identique à -t\n"
 "                physical     identique à -P\n"
-"                pipefail     le code de retour d'un tube est celui de la dernière commande\n"
+"                pipefail     le code de retour d'un tube est celui de la "
+"dernière commande\n"
 "                             qui s'est terminée avec un code non nul,\n"
-"                             ou zéro si aucune commande ne s'est arrêtée avec un code non nul.\n"
-"                posix        modifie le comportement de « bash » pour qu'il se comporte comme\n"
-"                             le standard 1003.2 aux endroits où il diffère par défaut.\n"
+"                             ou zéro si aucune commande ne s'est arrêtée "
+"avec un code non nul.\n"
+"                posix        modifie le comportement de « bash » pour qu'il "
+"se comporte comme\n"
+"                             le standard 1003.2 aux endroits où il diffère "
+"par défaut.\n"
 "                privileged   identique à -p\n"
 "                verbose      identique à -v\n"
 "                vi           utiliser une édition de ligne façon « vi »\n"
 "                xtrace       identique à -x\n"
-"        -p  Option activée lorsque les n° d'identifiants utilisateurs réels et effectifs ne\n"
-"            sont pas les mêmes. Désactive le traitement du fichier $ENV et l'import des\n"
-"            fonctions du shell. Désactiver cette option permet de définir les uid et gid\n"
+"        -p  Option activée lorsque les n° d'identifiants utilisateurs réels "
+"et effectifs ne\n"
+"            sont pas les mêmes. Désactive le traitement du fichier $ENV et "
+"l'import des\n"
+"            fonctions du shell. Désactiver cette option permet de définir "
+"les uid et gid\n"
 "            effectifs à la valeur des uid et gid réels.\n"
 "        -t  Terminer après la lecture et l'exécution d'une commande.\n"
-"        -u  Traiter les variables non définies comme des erreurs lors de la substitution.\n"
+"        -u  Traiter les variables non définies comme des erreurs lors de la "
+"substitution.\n"
 "        -v  Afficher les lignes d'entrée du shell à leur lecture.\n"
-"        -x  Afficher les commandes et leurs arguments au moment de leur exécution.\n"
+"        -x  Afficher les commandes et leurs arguments au moment de leur "
+"exécution.\n"
 "        -B  Effectuer l'expansion des accolades\n"
-"        -C  Si définit, empêche les fichiers réguliers existants d'être écrasés par une\n"
+"        -C  Si définit, empêche les fichiers réguliers existants d'être "
+"écrasés par une\n"
 "            redirection de la sortie.\n"
-"        -E  Si définit, l'interception ERR est héritée par les fonctions du shell.\n"
-"        -H  Activer la substitution d'historique façon « ! ». Ceci est actif par défaut\n"
+"        -E  Si définit, l'interception ERR est héritée par les fonctions du "
+"shell.\n"
+"        -H  Activer la substitution d'historique façon « ! ». Ceci est actif "
+"par défaut\n"
 "            lorsque le shell est interactif.\n"
-"        -P  Si définit, les liens symboliques ne sont pas suivis lors de l'exécution des\n"
+"        -P  Si définit, les liens symboliques ne sont pas suivis lors de "
+"l'exécution des\n"
 "            commandes telles que « cd » qui changent le répertoire courant.\n"
-"        -T  Si définit, l'interception DEBUG est héritée par les fonctions du shell.\n"
+"        -T  Si définit, l'interception DEBUG est héritée par les fonctions "
+"du shell.\n"
 "      --  Affecte tous les arguments restants aux paramètres de position.\n"
-"          S'il n'y a plus d'argument, les paramètres de position sont indéfinis.\n"
-"        -   Affecter tous les arguments restants aux paramètres de position.\n"
+"          S'il n'y a plus d'argument, les paramètres de position sont "
+"indéfinis.\n"
+"        -   Affecter tous les arguments restants aux paramètres de "
+"position.\n"
 "            Les options « -x » et « -v » sont désactivées.\n"
 "    \n"
-"    Ces indicateurs peuvent être désactivés en utilisant « + » plutôt que « - ». Ils peuvent\n"
-"    être utilisés lors de l'appel au shell. Le jeu d'indicateurs actuel peut être trouvé\n"
-"    dans « $- ».  Les n ARGs restants sont des paramètres de position et sont affectés,\n"
-"    dans l'ordre, à $1, $2, .. $n.  Si aucun ARG n'est donné, toutes les variables du shell\n"
+"    Ces indicateurs peuvent être désactivés en utilisant « + » plutôt que « "
+"- ». Ils peuvent\n"
+"    être utilisés lors de l'appel au shell. Le jeu d'indicateurs actuel peut "
+"être trouvé\n"
+"    dans « $- ».  Les n ARGs restants sont des paramètres de position et "
+"sont affectés,\n"
+"    dans l'ordre, à $1, $2, .. $n.  Si aucun ARG n'est donné, toutes les "
+"variables du shell\n"
 "    sont affichées.    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit donnée."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"donnée."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3713,7 +4082,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3732,17 +4102,20 @@ msgstr ""
 "    Sans option, « unset » essaye d'abord d'annuler une variable et, \n"
 "    en cas d'échec, essaye d'annuler la fonction.\n"
 "    \n"
-"    Certaines variables ne peuvent pas être annulées ; consultez aussi « readonly ».\n"
+"    Certaines variables ne peuvent pas être annulées ; consultez aussi « "
+"readonly ».\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit donnée ou que NOM soit en lecture seule."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"donnée ou que NOM soit en lecture seule."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3756,8 +4129,10 @@ msgid ""
 msgstr ""
 "Définit l'attribut « export » pour des variables du shell.\n"
 "    \n"
-"    Marque chaque NOM pour export automatique vers l'environnement des commandes\n"
-"    exécutées ultérieurement.  Si VALEUR est fournie, affecte la VALEUR avant l'export.\n"
+"    Marque chaque NOM pour export automatique vers l'environnement des "
+"commandes\n"
+"    exécutées ultérieurement.  Si VALEUR est fournie, affecte la VALEUR "
+"avant l'export.\n"
 "    \n"
 "    Options :\n"
 "      -f\tse référer aux fonctions du shell\n"
@@ -3767,9 +4142,10 @@ msgstr ""
 "    L'argument « -- » désactive tout traitement postérieur d'options.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit données ou que NOM ne soit pas valable."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"données ou que NOM ne soit pas valable."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3790,22 +4166,26 @@ msgid ""
 msgstr ""
 "Marque des variables du shell comme non modifiables.\n"
 "    \n"
-"    Marque chaque NOM comme étant en lecture seule ; les valeurs de ces NOMs ne peuvent plus\n"
-"    être modifiées par des affectations ultérieures.  Si VALEUR est founie, lui affecter la VALEUR avant le\n"
+"    Marque chaque NOM comme étant en lecture seule ; les valeurs de ces NOMs "
+"ne peuvent plus\n"
+"    être modifiées par des affectations ultérieures.  Si VALEUR est founie, "
+"lui affecter la VALEUR avant le\n"
 "    passage en lecture seule.\n"
 "    \n"
 "    Options :\n"
 "      -a\tse référer à des variables étant des tableaux indexés\n"
 "      -A\tse référer à des variables étant des tableaux associatifs\n"
 "      -f\tse référer à des fonctions du shell\n"
-"      -p\tafficher une liste des toutes les fonctions et variables en lecture seule\n"
+"      -p\tafficher une liste des toutes les fonctions et variables en "
+"lecture seule\n"
 "    \n"
 "    Un argument « -- » désactive tout traitement postérieur d'options.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'une options non valable ne soit données ou que NOM ne soit pas valable."
+"    Renvoie le code de succès à moins qu'une options non valable ne soit "
+"données ou que NOM ne soit pas valable."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3817,13 +4197,14 @@ msgid ""
 msgstr ""
 "Décale des paramètres de position.\n"
 "    \n"
-"    Renomme les paramètres de position $N+1,$N+2 ... à $1,$2 ...  Si N n'est pas\n"
+"    Renomme les paramètres de position $N+1,$N+2 ... à $1,$2 ...  Si N n'est "
+"pas\n"
 "    donné, il est supposé égal à 1.\n"
 "    \n"
 "    Code de retour :\n"
 "    Renvoie le code de succès à moins que N soit négatif ou supérieur à $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3838,16 +4219,20 @@ msgid ""
 msgstr ""
 "Execute des commandes depuis un fichier dans le shell actuel.\n"
 "    \n"
-"    Lit et exécute des commandes depuis NOMFICHIER dans le shell actuel.  Les\n"
-"    éléments dans $PATH sont utilisés pour trouver le répertoire contenant NOMFICHIER.\n"
-"    Si des ARGUMENTS sont fournis, ils deviennent les paramètres de position\n"
+"    Lit et exécute des commandes depuis NOMFICHIER dans le shell actuel.  "
+"Les\n"
+"    éléments dans $PATH sont utilisés pour trouver le répertoire contenant "
+"NOMFICHIER.\n"
+"    Si des ARGUMENTS sont fournis, ils deviennent les paramètres de "
+"position\n"
 "    lorsque NOMFICHIER est exécuté.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de la dernière commande exécutée dans NOMFICHIER, ou le code\n"
+"    Renvoie le code de la dernière commande exécutée dans NOMFICHIER, ou le "
+"code\n"
 "    d'échec si NOMFICHIER ne peut pas être lu."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3862,16 +4247,19 @@ msgid ""
 msgstr ""
 "Suspend l'exécution du shell.\n"
 "    \n"
-"    Suspend l'exécution de ce shell jusqu'à qu'il reçoive un signal SIGCONT.\n"
-"    À moins que ce soit forcé, les shell de connexion ne peuvent pas être suspendus.\n"
+"    Suspend l'exécution de ce shell jusqu'à qu'il reçoive un signal "
+"SIGCONT.\n"
+"    À moins que ce soit forcé, les shell de connexion ne peuvent pas être "
+"suspendus.\n"
 "    \n"
 "    Options :\n"
 "      -f\tforce la suspension, même si le shell est un shell de connexion\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins que le contrôle de tâche ne soit pas activé ou qu'une erreur survienne."
+"    Renvoie le code de succès à moins que le contrôle de tâche ne soit pas "
+"activé ou qu'une erreur survienne."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3905,7 +4293,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3926,7 +4315,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3957,14 +4347,16 @@ msgstr ""
 "    pour examiner l'état d'un fichier. Il existe aussi des opérateurs de\n"
 "    chaîne, ainsi que des opérateurs de comparaison numériques.\n"
 "    \n"
-"    Le comportement de test dépend du nombre d'arguments.  Consultez la page\n"
+"    Le comportement de test dépend du nombre d'arguments.  Consultez la "
+"page\n"
 "    de manuel de bash pour connaître les spécifications complètes.\n"
 ".    \n"
 "    Opérateurs sur des fichiers : \n"
 "    \n"
 "        -a FICHIER     Vrai si le fichier existe.\n"
 "        -b FICHIER     Vrai si le fichier est un fichier spécial de bloc\n"
-"        -c FICHIER     Vrai si le fichier est un fichier spécial de caractères\n"
+"        -c FICHIER     Vrai si le fichier est un fichier spécial de "
+"caractères\n"
 "        -d FICHIER     Vrai si le fichier est un répertoire.\n"
 "        -e FICHIER     Vrai si le fichier existe\n"
 "        -f FICHIER     Vrai si le fichier existe et est un fichier régulier\n"
@@ -3980,13 +4372,19 @@ msgstr ""
 "        -u FICHIER     Vrai si le fichier est « set-user-id »\n"
 "        -w FICHIER     Vrai si le fichier peut être écrit par vous\n"
 "        -x FICHIER     Vrai si le fichier est exécutable par vous\n"
-"        -O FICHIER     Vrai si le fichier est effectivement possédé par vous\n"
-"        -G FICHIER     Vrai si le fichier est effectivement possédé par votre groupe\n"
-"        -N FICHIER     Vrai si le fichier a été modifié depuis la dernière fois qu'il a été lu\n"
+"        -O FICHIER     Vrai si le fichier est effectivement possédé par "
+"vous\n"
+"        -G FICHIER     Vrai si le fichier est effectivement possédé par "
+"votre groupe\n"
+"        -N FICHIER     Vrai si le fichier a été modifié depuis la dernière "
+"fois qu'il a été lu\n"
 "\n"
-"       FICHIER1 -nt FICHIER2 Vrai si le fichier1 est plus récent que le fichier2 (selon la date de modification)\n"
-"       FICHIER1 -ot FICHIER2 Vrai si le fichier1 est plus vieux que le fichier2\n"
-"       FICHIER1 -ef FICHIER2 Vrai si le fichier1 est un lien physique vers le fichier2\n"
+"       FICHIER1 -nt FICHIER2 Vrai si le fichier1 est plus récent que le "
+"fichier2 (selon la date de modification)\n"
+"       FICHIER1 -ot FICHIER2 Vrai si le fichier1 est plus vieux que le "
+"fichier2\n"
+"       FICHIER1 -ef FICHIER2 Vrai si le fichier1 est un lien physique vers "
+"le fichier2\n"
 "    \n"
 "    Opérateurs sur des chaînes :\n"
 "    \n"
@@ -3999,9 +4397,11 @@ msgstr ""
 "        CHAÎNE1 != CHAÎNE2\n"
 "                      Vrai si les chaînes ne sont pas égales\n"
 "        CHAÎNE1 < CHAÎNE2\n"
-"                      Vrai si le tri lexicographique place la chaîne1 en premier\n"
+"                      Vrai si le tri lexicographique place la chaîne1 en "
+"premier\n"
 "        CHAÎNE1 > CHAÎNE2\n"
-"                      Vrai si le tri lexicographique place la chaîne1 en deuxième\n"
+"                      Vrai si le tri lexicographique place la chaîne1 en "
+"deuxième\n"
 "    \n"
 "    Autres opérateurs :\n"
 "    \n"
@@ -4014,13 +4414,16 @@ msgstr ""
 "        arg1 OP arg2   Tests arithmétiques. OP peut être -eq, -ne,\n"
 "                       -lt, -le, -gt ou -ge.\n"
 "    \n"
-"    Les opérateurs arithmétiques binaires renvoient « vrai » si ARG1 est égal,\n"
-"    non-égal, inférieur, inférieur ou égal, supérieur, supérieur ou égal à ARG2.    \n"
+"    Les opérateurs arithmétiques binaires renvoient « vrai » si ARG1 est "
+"égal,\n"
+"    non-égal, inférieur, inférieur ou égal, supérieur, supérieur ou égal à "
+"ARG2.    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès si EXPR est vraie, le code d'échec si EXPR est fausse ou si\n"
+"    Renvoie le code de succès si EXPR est vraie, le code d'échec si EXPR est "
+"fausse ou si\n"
 "    un argument non valable est donné."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4032,11 +4435,12 @@ msgstr ""
 "    Ceci est un synonyme de la primitive « test », mais le dernier argument\n"
 "    doit être le caractère « ] », pour fermer le « [ » correspondant."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4050,11 +4454,12 @@ msgstr ""
 "    Code de retour :\n"
 "    Toujours le code de succès."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4063,46 +4468,60 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Intercepter des signaux et d'autres événements.\n"
 "    \n"
-"    Définit et active des gestionnaires à lancer lorsque le shell reçoit des signaux\n"
+"    Définit et active des gestionnaires à lancer lorsque le shell reçoit des "
+"signaux\n"
 "    ou sous d'autres conditions.\n"
 "    \n"
 "    La commande ARG doit être lue et exécutée lorsque le shell reçoit le\n"
 "    signal SIGNAL_SPEC. Si ARG est absent (et qu'un unique SIGNAL_SPEC)\n"
 "    est fourni) ou égal à « - », tous les signaux spécifié sont remis\n"
-"    à leur valeur d'origine. Si ARG est une chaîne vide, tous les SIGNAL_SPEC\n"
+"    à leur valeur d'origine. Si ARG est une chaîne vide, tous les "
+"SIGNAL_SPEC\n"
 "    sont ignorés par le shell et les commandes qu'il appelle.\n"
 "    \n"
-"    Si SIGNAL_SPEC est EXIT (0), la commande ARG est exécutée à la sortie du shell. Si un\n"
+"    Si SIGNAL_SPEC est EXIT (0), la commande ARG est exécutée à la sortie du "
+"shell. Si un\n"
 "    SIGNAL_SPEC est DEBUG, ARG est exécuté après chaque commande simple. Si\n"
-"    un SIGNAL_SPEC est RETURN, ARG est exécuté à chaque fois qu'une fonction shell ou\n"
+"    un SIGNAL_SPEC est RETURN, ARG est exécuté à chaque fois qu'une fonction "
+"shell ou\n"
 "    qu'un script lancé avec . ou source se termine.  Un SIGNAL_SPEC\n"
-"    valant ERR permet d'exécuter ARG à chaque fois qu'un échec d'une commande engendrerait\n"
+"    valant ERR permet d'exécuter ARG à chaque fois qu'un échec d'une "
+"commande engendrerait\n"
 "    la sortie du shell lorsque l'option -e est activée.\n"
 "    \n"
-"    Si aucun argument n'est fourni, « trap » affiche la liste des commandes associées\n"
+"    Si aucun argument n'est fourni, « trap » affiche la liste des commandes "
+"associées\n"
 "    à chaque signal.\n"
 "    \n"
 "    Options :\n"
@@ -4110,14 +4529,16 @@ msgstr ""
 "      -p\taffiche les commandes de « trap » associées à chaque SIGNAL_SPEC\n"
 "    \n"
 "    Chaque SIGNAL_SPEC est soit un nom de signal dans <signal.h>\n"
-"    ou un numéro de signal. Les noms de signaux sont insensibles à la casse et\n"
+"    ou un numéro de signal. Les noms de signaux sont insensibles à la casse "
+"et\n"
 "    le préfixe « SIG » est facultatif. Un signal peut être envoyé au\n"
 "    shell avec « kill -signal $$ ».\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins que SIGSPEC ne soit pas valable ou qu'une option non valable ne soit donnée."
+"    Renvoie le code de succès à moins que SIGSPEC ne soit pas valable ou "
+"qu'une option non valable ne soit donnée."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4143,7 +4564,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Affiche des informations sur le type de commande.\n"
 "    \n"
@@ -4152,30 +4574,38 @@ msgstr ""
 "    \n"
 "    Options :\n"
 "      -a\taffiche tous les emplacements contenant un exécutable nommé NOM;\n"
-"    \tinclut les alias, les commandes intégrées et les fonctions si et seulement si\n"
+"    \tinclut les alias, les commandes intégrées et les fonctions si et "
+"seulement si\n"
 "    \tl'option n'est pas « -p » n'est pas utilisée\n"
 "      -f\tdésactive la recherche de fonctions du shell\n"
-"      -P\tforce une recherche de CHEMIN pour chaque NOM, même si c'est un alias,\n"
-"    \tune commande intégrée ou une fonction et renvoie le nom du fichier du disque\n"
+"      -P\tforce une recherche de CHEMIN pour chaque NOM, même si c'est un "
+"alias,\n"
+"    \tune commande intégrée ou une fonction et renvoie le nom du fichier du "
+"disque\n"
 "    \tqui serait exécuté\n"
 "      -p\trenvoie soir le nom du fichier du disque qui serait exécuté,\n"
 "    \tsoit rien si « type -t NOM » ne renvoyait pas « file ».\n"
 "      -t\taffiche un mot unique parmi « alias », « keyword »,\n"
-"    \t« function », « builtin », « file » or « », si NOM est respectivement un alias,\n"
-"    \tun mot réservé du shell, une fonction du shell, une commande intégrée,\n"
+"    \t« function », « builtin », « file » or « », si NOM est respectivement "
+"un alias,\n"
+"    \tun mot réservé du shell, une fonction du shell, une commande "
+"intégrée,\n"
 "    \tun fichier du disque ou un nom inconnu\n"
 "    \n"
 "    Arguments :\n"
 "      NOM\tNom de commande à interpréter.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès si tous les NOMs sont trouvés, le code d'échec si l'un d'entre eux n'est pas trouvé."
+"    Renvoie le code de succès si tous les NOMs sont trouvés, le code d'échec "
+"si l'un d'entre eux n'est pas trouvé."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4199,6 +4629,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4215,7 +4648,8 @@ msgid ""
 msgstr ""
 "Modifie les limites de ressources du shell.\n"
 "    \n"
-"    Fournit un contrôle sur les ressources disponibles au shell et aux processus\n"
+"    Fournit un contrôle sur les ressources disponibles au shell et aux "
+"processus\n"
 "    qu'il crée, sur les systèmes qui permettent un tel contrôle. \n"
 "    \n"
 "    Options :\n"
@@ -4240,20 +4674,27 @@ msgstr ""
 "        -v\tla taille de la mémoire virtuelle\n"
 "        -x\tle nombre maximal de verrous de fichiers\n"
 "        \n"
-"    Si LIMIT est fournie, elle est utilisée comme nouvelle valeur de ressource\n"
-"    Les valeurs spéciales de LIMIT « soft », « hard » et « unlimited » correspondent\n"
-"    respectivement aux valeurs actuelles de la limite souple, de la limite dure,\n"
-"    ou à une absence de limite. Sinon la valeur actuelle de la limite est affichée\n"
+"    Si LIMIT est fournie, elle est utilisée comme nouvelle valeur de "
+"ressource\n"
+"    Les valeurs spéciales de LIMIT « soft », « hard » et « unlimited » "
+"correspondent\n"
+"    respectivement aux valeurs actuelles de la limite souple, de la limite "
+"dure,\n"
+"    ou à une absence de limite. Sinon la valeur actuelle de la limite est "
+"affichée\n"
 "    Si aucune option n'est donnée, « -f » est supposée.\n"
 "    \n"
-"    Les valeurs sont des multiples de 1024 octets, sauf pour « -t » qui prend des secondes,\n"
-"    « -p » qui prend un multiple de 512 octets et « -u » qui prend un nombre\n"
+"    Les valeurs sont des multiples de 1024 octets, sauf pour « -t » qui "
+"prend des secondes,\n"
+"    « -p » qui prend un multiple de 512 octets et « -u » qui prend un "
+"nombre\n"
 "    de processus sans unité.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit fournie ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"fournie ou qu'une erreur ne survienne."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4272,45 +4713,59 @@ msgid ""
 msgstr ""
 "Affiche ou définit le masque de mode de fichier.\n"
 "    \n"
-"    Définit le masque de création de fichier comme étant MODE.  Si MODE est omis, affiche\n"
+"    Définit le masque de création de fichier comme étant MODE.  Si MODE est "
+"omis, affiche\n"
 "    la valeur courante du MASQUE.\n"
 "    \n"
-"    Si MODE commence par un chiffre, il est interprété comme un nombre octal ;\n"
-"    sinon comme une chaîne de symboles de mode comme ceux acceptés par chmod(1).\n"
+"    Si MODE commence par un chiffre, il est interprété comme un nombre "
+"octal ;\n"
+"    sinon comme une chaîne de symboles de mode comme ceux acceptés par chmod"
+"(1).\n"
 "    \n"
 "    Options :\n"
-"      -p\tsi MODE est omis, afficher sous une forme réutilisable comme une entrée\n"
-"      -S\tafficher sous forme symbolique, sinon la sortie octale est utilisée\n"
+"      -p\tsi MODE est omis, afficher sous une forme réutilisable comme une "
+"entrée\n"
+"      -S\tafficher sous forme symbolique, sinon la sortie octale est "
+"utilisée\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins que MODE ne soit pas valable ou qu'une option non valable ne soit donnée."
+"    Renvoie le code de succès à moins que MODE ne soit pas valable ou qu'une "
+"option non valable ne soit donnée."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Attend la fin d'une tâche et renvoie le code de retour.\n"
 "    \n"
-"    Attend que le processus identifié par ID, qui peut être un ID de processus ou\n"
-"    une spécification de tâche et renvoie son code de retour.  Si ID n'est pas\n"
-"    donné, la commande attend tous les processus actifs en cours et le code de retour\n"
-"    est zéro.  Si ID est une spécification de tâche, la commande attend tous les processus\n"
+"    Attend que le processus identifié par ID, qui peut être un ID de "
+"processus ou\n"
+"    une spécification de tâche et renvoie son code de retour.  Si ID n'est "
+"pas\n"
+"    donné, la commande attend tous les processus actifs en cours et le code "
+"de retour\n"
+"    est zéro.  Si ID est une spécification de tâche, la commande attend tous "
+"les processus\n"
 "    dans le pipeline de la tâche.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le même code que celui d'ID, ou le code d'échec si ID n'est pas valable ou en cas d'option non valable."
+"    Renvoie le même code que celui d'ID, ou le code d'échec si ID n'est pas "
+"valable ou en cas d'option non valable."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4319,7 +4774,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Attend la fin d'un processus et renvoie le code de sortie.\n"
@@ -4329,10 +4785,11 @@ msgstr ""
 "    et le code de retour est zéro. PID doit être un ID de processus.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de ID, l'échec si ID n'est pas valable ou si une option non valable\n"
+"    Renvoie le code de ID, l'échec si ID n'est pas valable ou si une option "
+"non valable\n"
 "    est donnée."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4346,15 +4803,17 @@ msgid ""
 msgstr ""
 "Exécute des commandes pour chaque membre d'une liste.\n"
 "    \n"
-"    La boucle « for » exécute une suite de commandes pour chaque membre d'une\n"
-"    liste d'éléments. Si « in MOTS ...; » n'est pas fourni, « in \"$@\" » est\n"
+"    La boucle « for » exécute une suite de commandes pour chaque membre "
+"d'une\n"
+"    liste d'éléments. Si « in MOTS ...; » n'est pas fourni, « in \"$@\" » "
+"est\n"
 "    utilisé. Pour chaque élément dans MOTS, NOM est défini à cet élément,\n"
 "    et les COMMANDES sont exécutées.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4378,13 +4837,14 @@ msgstr ""
 "    \t\tCOMMANDS\n"
 "    \t\t(( EXP3 ))\n"
 "    \tdone\n"
-"    EXP1, EXP2, and EXP3 sont des expressions arithmétiques.  Si une expression\n"
+"    EXP1, EXP2, and EXP3 sont des expressions arithmétiques.  Si une "
+"expression\n"
 "    omise, elle se comporte comme si elle s'évaluait à 1.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4420,7 +4880,7 @@ msgstr ""
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4437,19 +4897,21 @@ msgid ""
 msgstr ""
 "Signale le temps passé pendant l'exécution d'un tube de commandes.\n"
 "    \n"
-"    Exécute PIPELINE et affiche un résumé du temps réel, du temps processeur\n"
+"    Exécute PIPELINE et affiche un résumé du temps réel, du temps "
+"processeur\n"
 "    utilisateur, et du temps processeur système passés à exécuter PIPELINE\n"
 "    lorsque celui-ci se termine.\n"
 "    \n"
 "    Options :\n"
 "      -p\taffiche le résumé dans le format portable Posix.\n"
 "    \n"
-"    La valeur de la variable TIMEFORMAT est utilisée comme format de sortie.\n"
+"    La valeur de la variable TIMEFORMAT est utilisée comme format de "
+"sortie.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Le code de retour est celui du PIPELINE."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4461,22 +4923,29 @@ msgid ""
 msgstr ""
 "Exécute des commandes selon une correspondance de motif.\n"
 "    \n"
-"    Exécute de manière sélective les COMMANDES selon la correspondance du MOT\n"
-"    au MOTIF. Le caractère « | » est utilisé pour séparer les différents motifs.\n"
+"    Exécute de manière sélective les COMMANDES selon la correspondance du "
+"MOT\n"
+"    au MOTIF. Le caractère « | » est utilisé pour séparer les différents "
+"motifs.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4484,18 +4953,23 @@ msgid ""
 msgstr ""
 "Exécute des commandes selon une condition.\n"
 "    \n"
-"    La liste « if COMMANDES » est exécutée. Si elle se termine avec un code de zéro,\n"
+"    La liste « if COMMANDES » est exécutée. Si elle se termine avec un code "
+"de zéro,\n"
 "    alors la liste « then COMMANDES » est exécutée. Sinon, chaque liste\n"
-"    « elif COMMANDES » est exécutée à son tour et si son code de retour est zéro,\n"
-"    la liste « then COMMANDES » correspondante est exécutée et la commande « if »\n"
-"    se termine. Sinon, la list « else COMMANDES » est exécutée si elle existe.\n"
-"    Le code de retour de l'ensemble est celui de la dernière commande exécutée\n"
+"    « elif COMMANDES » est exécutée à son tour et si son code de retour est "
+"zéro,\n"
+"    la liste « then COMMANDES » correspondante est exécutée et la commande « "
+"if »\n"
+"    se termine. Sinon, la list « else COMMANDES » est exécutée si elle "
+"existe.\n"
+"    Le code de retour de l'ensemble est celui de la dernière commande "
+"exécutée\n"
 "    ou zéro si aucune condition n'était vraie.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4508,13 +4982,14 @@ msgstr ""
 "Exécute des commandes aussi longtemps qu'elle réussissent.\n"
 "    \n"
 "    Effectue une expansion et exécute les COMMANDES aussi longtemps\n"
-"    que la commande finale parmi celles situées dans « while » se termine avec un\n"
+"    que la commande finale parmi celles situées dans « while » se termine "
+"avec un\n"
 "    code de retour de zéro.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4526,14 +5001,15 @@ msgid ""
 msgstr ""
 "Exécute des commandes aussi longtemps qu'un test échoue.\n"
 "    \n"
-"    Effectue une expansion et exécute les commandes « COMMANDES » aussi longtemps\n"
+"    Effectue une expansion et exécute les commandes « COMMANDES » aussi "
+"longtemps\n"
 "    que les commandes de « until » se terminent avec un code de retour\n"
 "    différent de zéro.\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4547,20 +5023,23 @@ msgid ""
 msgstr ""
 "Crée un coprocessus nommé NOM.\n"
 "    \n"
-"    Exécute la COMMANDE de manière asynchrone, en connectant la sortie et l'entrée standard\n"
-"    de la commande par un tube aux decripteurs de fichier affectés aux indices 0 et 1\n"
+"    Exécute la COMMANDE de manière asynchrone, en connectant la sortie et "
+"l'entrée standard\n"
+"    de la commande par un tube aux decripteurs de fichier affectés aux "
+"indices 0 et 1\n"
 "    d'une variable tableau NOM dans le shell en cours d'exécution.\n"
 "    Le NOM par défaut est « COPROC ».\n"
 "    \n"
 "    Code de retour :\n"
 "    Renvoie le même code de retour que la COMMANDE."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4569,15 +5048,18 @@ msgid ""
 msgstr ""
 "Définit une fonction du shell.\n"
 "    \n"
-"    Crée une fonction du shell nommée NOM.  Lorsqu'appelée comme une simple commande,\n"
-"    NOM lance la COMMANDE dans le contexte du shell qui l'appelle.  Lorsque NOM est appelé,\n"
-"    les arguments sont transmis à la fonction comme $1...$n, et le nom de la fonction\n"
+"    Crée une fonction du shell nommée NOM.  Lorsqu'appelée comme une simple "
+"commande,\n"
+"    NOM lance la COMMANDE dans le contexte du shell qui l'appelle.  Lorsque "
+"NOM est appelé,\n"
+"    les arguments sont transmis à la fonction comme $1...$n, et le nom de la "
+"fonction\n"
 "    est $FUNCNAME.\n"
 "    \n"
 "    Code de retour :\n"
 "    Renvoie le code de succès à moins que NOM ne soit en lecture seule."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4595,7 +5077,7 @@ msgstr ""
 "    Code de sortie :\n"
 "    Renvoie le code de la dernière commande exécutée."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4610,16 +5092,19 @@ msgid ""
 msgstr ""
 "Reprend une tâche en arrière plan.\n"
 "    \n"
-"    Équivalent à l'argument JOB_SPEC de la commande « fg ». Reprend l'exécution\n"
+"    Équivalent à l'argument JOB_SPEC de la commande « fg ». Reprend "
+"l'exécution\n"
 "    d'une tâche stoppée ou en tâche de fond. JOB_SPEC peut spécifier soit\n"
-"    un nom soit un numéro de tâche. Faire suivre JOB_SPEC de « & » permet de\n"
-"    placer la tâche en arrière plan, comme si la spécification de tâche avait\n"
+"    un nom soit un numéro de tâche. Faire suivre JOB_SPEC de « & » permet "
+"de\n"
+"    placer la tâche en arrière plan, comme si la spécification de tâche "
+"avait\n"
 "    été fournie comme argument de « bg ».\n"
 "    \n"
 "    Code de sortie :\n"
 "    Renvoie le code de la commande reprise."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4637,13 +5122,16 @@ msgstr ""
 "    Code de sortie :\n"
 "    Renvoie 1 si EXPRESSION est évaluée à 0, sinon renvoie 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4663,18 +5151,23 @@ msgid ""
 msgstr ""
 "Exécute une commande conditionnelle.\n"
 "    \n"
-"    Renvoie un code de retour de 0 ou 1 dépendant de l'évaluation de l'EXPRESSION\n"
-"    conditionnelle. Les expressions sont formées de la même façon que pour la\n"
-"    primitive « test », et peuvent être combinées avec les opérateurs suivants :\n"
+"    Renvoie un code de retour de 0 ou 1 dépendant de l'évaluation de "
+"l'EXPRESSION\n"
+"    conditionnelle. Les expressions sont formées de la même façon que pour "
+"la\n"
+"    primitive « test », et peuvent être combinées avec les opérateurs "
+"suivants :\n"
 "    \n"
 "    \t( EXPRESSION )\tRenvoie la valeur de l'EXPRESSION\n"
 "    \t! EXPRESSION\tVrai si l'EXPRESSION est fausse, sinon vrai\n"
 "    \tEXPR1 && EXPR2\tVrai si EXPR1 et EXPR2 sont vraies, faux sinon\n"
 "    \tEXPR1 || EXPR2\tVrai si EXPR1 ou EXPR2 est vraie, faux sinon\n"
 "    \n"
-"    Lorsque les opérateurs « == » et « != » sont utilisés, la chaîne à droite de l'opérateur\n"
+"    Lorsque les opérateurs « == » et « != » sont utilisés, la chaîne à "
+"droite de l'opérateur\n"
 "    est utilisée comme motif, et une mise en correspondance est effectuée.\n"
-"    Lorsque l'opérateur « =~ » est utilisé, la chaîne à droite de l'opérateur\n"
+"    Lorsque l'opérateur « =~ » est utilisé, la chaîne à droite de "
+"l'opérateur\n"
 "    est mise en correspondance comme une expression rationnelle.\n"
 "    \n"
 "    Les opérateurs « && » et « || » n'évaluent pas EXPR2 si\n"
@@ -4683,7 +5176,7 @@ msgstr ""
 "    Code de sortie :\n"
 "    0 ou 1 selon la valeur de l'EXPRESSION."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4741,25 +5234,34 @@ msgstr ""
 "    BASH_VERSION\tNuméro de version de ce Bash.\n"
 "    CDPATH\tUne liste de répertoires, séparés par un deux-points, utilisés\n"
 "    \t\tpar « cd » pour la recherche de répertoires.\n"
-"    GLOBIGNORE\tUne liste de motifs séparés par un deux-points, décrivant les\n"
+"    GLOBIGNORE\tUne liste de motifs séparés par un deux-points, décrivant "
+"les\n"
 "    \t\tnoms de fichier à ignorer lors de l'expansion des chemins.\n"
-"    HISTFILE\tLe nom du fichier où votre historique des commandes est stocké.\n"
+"    HISTFILE\tLe nom du fichier où votre historique des commandes est "
+"stocké.\n"
 "    HISTFILESIZE\tLe nombre maximal de lignes que ce fichier peut contenir.\n"
 "    HISTSIZE\tLe nombre maximal de lignes d'historique auquel un shell en\n"
 "    \t\tfonctionnement peut accéder.\n"
 "    HOME\tLe chemin complet vers votre répertoire de connexion.\n"
 "    HOSTNAME\tLe nom de la machine actuelle.\n"
-"    HOSTTYPE\tLe type de processeur sur laquelle cette version de Bash fonctionne.\n"
-"    IGNOREEOF\tContrôle l'action du shell à la réception d'un caractère « EOF »\n"
-"    \t\tcomme seule entrée. Si défini, sa valeur est le nombre de caractères\n"
+"    HOSTTYPE\tLe type de processeur sur laquelle cette version de Bash "
+"fonctionne.\n"
+"    IGNOREEOF\tContrôle l'action du shell à la réception d'un caractère « "
+"EOF »\n"
+"    \t\tcomme seule entrée. Si défini, sa valeur est le nombre de "
+"caractères\n"
 "    \t\t« EOF » qui peuvent être rencontrés à la suite sur une ligne vide\n"
 "    \t\tavant que le shell ne se termine (10 par défaut).\n"
 "    \t\tS'il n'est pas défini, « EOF » signifie la fin de l'entrée.\n"
-"    MACHTYPE\tUne chaîne décrivant le système actuel sur lequel fonctionne Bash.\n"
-"    MAILCHECK\tLe nombre de secondes séparant deux vérifications du courrier par Bash.\n"
-"    MAILPATH\tUne liste de fichiers séparés par un deux-points, que Bash utilise\n"
+"    MACHTYPE\tUne chaîne décrivant le système actuel sur lequel fonctionne "
+"Bash.\n"
+"    MAILCHECK\tLe nombre de secondes séparant deux vérifications du courrier "
+"par Bash.\n"
+"    MAILPATH\tUne liste de fichiers séparés par un deux-points, que Bash "
+"utilise\n"
 "    \t\tpour vérifier les nouveaux courriers.\n"
-"    OSTYPE\tLa version d'Unix sur laquelle cette version de Bash fonctionne.\n"
+"    OSTYPE\tLa version d'Unix sur laquelle cette version de Bash "
+"fonctionne.\n"
 "    PATH\tUne liste de répertoires séparés par un deux-points, utilisés\n"
 "    \t\tpour la recherche des commandes.\n"
 "    PROMPT_COMMAND\tUne commande à exécuter avant d'afficher chaque invite\n"
@@ -4767,27 +5269,38 @@ msgstr ""
 "    PS1\t\tL'invite de commande principale.\n"
 "    PS2\t\tL'invite secondaire.\n"
 "    PWD\t\tLe chemin complet vers le répertoire actuel.\n"
-"    SHELLOPTS\tLa liste des options activées du shell, séparées par un deux-points.\n"
+"    SHELLOPTS\tLa liste des options activées du shell, séparées par un deux-"
+"points.\n"
 "    TERM\tLe nom du type actuel du terminal.\n"
-"    TIMEFORMAT\tLe format de sortie pour les statistiques de temps affichées\n"
+"    TIMEFORMAT\tLe format de sortie pour les statistiques de temps "
+"affichées\n"
 "    \t\tpar le mot réservé « time ».\n"
 "    auto_resume\tNon-vide signifie qu'un mot de commande apparaissant\n"
 "    \t\tde lui-même sur une ligne est d'abord recherché dans la liste des\n"
-"    \t\ttâches stoppées. Si elle est trouvée, la tâche est remise en avant-plan.\n"
-"    \t\tUne valeur de « exact » signifie que le mot de commande doit correspondre\n"
-"    \t\texactement à la commande dans la liste des tâches stoppées.  Une valeur\n"
+"    \t\ttâches stoppées. Si elle est trouvée, la tâche est remise en avant-"
+"plan.\n"
+"    \t\tUne valeur de « exact » signifie que le mot de commande doit "
+"correspondre\n"
+"    \t\texactement à la commande dans la liste des tâches stoppées.  Une "
+"valeur\n"
 "    \t\tde « substring » signifie que le mot de commande\n"
-"    \t\tcorrespondre à une sous-chaîne de la tâche. Une autre valeur signifie\n"
+"    \t\tcorrespondre à une sous-chaîne de la tâche. Une autre valeur "
+"signifie\n"
 "    \t\tque la commande doit être un préfixe d'une tâche stoppée.\n"
-"    histchars\tCaractères contrôlant l'expansion d'historique et la substitution\n"
-"    \t\trapide. Le premier caractère est le caractère de substitution d'historique,\n"
-"    \t\thabituellement « ! ». Le deuxième est le caractère de substitution rapide,\n"
+"    histchars\tCaractères contrôlant l'expansion d'historique et la "
+"substitution\n"
+"    \t\trapide. Le premier caractère est le caractère de substitution "
+"d'historique,\n"
+"    \t\thabituellement « ! ». Le deuxième est le caractère de substitution "
+"rapide,\n"
 "    \t\thabituellement « ^ ». Le troisième est le caractère de commentaire\n"
 "    \t\td'historique, habituellement « # ».\n"
-"    HISTIGNORE\tUne liste de motifs séparés par un deux-points, utilisés pour\n"
-"    \t\tdécider quelles commandes doivent être conservées dans la liste d'historique.\n"
+"    HISTIGNORE\tUne liste de motifs séparés par un deux-points, utilisés "
+"pour\n"
+"    \t\tdécider quelles commandes doivent être conservées dans la liste "
+"d'historique.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4830,21 +5343,25 @@ msgstr ""
 "    \n"
 "    Arguments :\n"
 "    +N\tPermuter la pile de façon que le Nième répertoire se place en haut,\n"
-"    \ten comptant de zéro depuis la gauche de la liste fournie par « dirs ».\n"
+"    \ten comptant de zéro depuis la gauche de la liste fournie par « dirs "
+"».\n"
 "    \n"
 "    -N\tPermuter la pile de façon que le Nième répertoire se place en haut,\n"
-"    \ten comptant de zéro depuis la droite de la liste fournie par « dirs ».\n"
+"    \ten comptant de zéro depuis la droite de la liste fournie par « dirs "
+"».\n"
 "    \n"
-"    dir\tajouter le répertoire DIR en haut de la pile, et en faire le nouveau\n"
+"    dir\tajouter le répertoire DIR en haut de la pile, et en faire le "
+"nouveau\n"
 "    \trépertoire de travail.\n"
 "    \n"
 "    Vous pouvez voir la pile des répertoires avec la commande « dirs ».\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'un argument non valable ne soit fourni\n"
+"    Renvoie le code de succès à moins qu'un argument non valable ne soit "
+"fourni\n"
 "    ou que le changement de répertoire n'échoue."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4890,10 +5407,11 @@ msgstr ""
 "    Vous pouvez voir la pile des répertoires avec la commande « dirs ».\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'un argument non valable ne soit donné\n"
+"    Renvoie le code de succès à moins qu'un argument non valable ne soit "
+"donné\n"
 "    ou que le changement de répertoire n'échoue."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4910,10 +5428,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4921,8 +5441,10 @@ msgid ""
 msgstr ""
 "Affiche la pile de répertoire.\n"
 "    \n"
-"    Affiche la liste des répertoires actuellement mémorisés. Les répertoires\n"
-"   sont insérés dans la liste avec la commande « pushd ». Vous pouvez remonter\n"
+"    Affiche la liste des répertoires actuellement mémorisés. Les "
+"répertoires\n"
+"   sont insérés dans la liste avec la commande « pushd ». Vous pouvez "
+"remonter\n"
 "   dans la liste en enlevant des éléments avec la commande « popd ».\n"
 "    \n"
 "    Options:\n"
@@ -4934,21 +5456,25 @@ msgstr ""
 "    \ten préfixant avec sa position dans la pile\n"
 "    \n"
 "    Arguments :\n"
-"    +N\t affiche le Nième élément en comptant de zéro depuis la gauche de la\n"
+"    +N\t affiche le Nième élément en comptant de zéro depuis la gauche de "
+"la\n"
 "    liste affichée par « dirs » lorsque celle-ci est appelée sans option.\n"
 "    \n"
-"    -N\t affiche le Nième élément en comptant de zéro depuis la droite de la\n"
+"    -N\t affiche le Nième élément en comptant de zéro depuis la droite de "
+"la\n"
 "    liste affichée par « dirs » lorsque celle-ci est appelée sans option.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit fournie ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"fournie ou qu'une erreur ne survienne."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4964,22 +5490,27 @@ msgid ""
 msgstr ""
 "Active ou désactive des options du shell.\n"
 "    \n"
-"    Change la valeur de chaque option du shell NOMOPT.  S'il n'y a pas d'argument à l'option\n"
-"    la commande liste toutes les options du shell en indiquant si elles sont actives\n"
+"    Change la valeur de chaque option du shell NOMOPT.  S'il n'y a pas "
+"d'argument à l'option\n"
+"    la commande liste toutes les options du shell en indiquant si elles sont "
+"actives\n"
 "    ou non.\n"
 "    \n"
 "    Options :\n"
-"      -o\trestreint les NOMOPT à ceux définis pour être utilisés avec « set -o »\n"
+"      -o\trestreint les NOMOPT à ceux définis pour être utilisés avec « set -"
+"o »\n"
 "      -p\taffiche chaque option du shell en indiquant son état\n"
 "      -q\tsupprime l'affichage\n"
 "      -s\tactive (set) chaque NOMOPT\n"
 "      -u\tdésactive (unset) chaque NOMOPT\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès si NOMOPT est active ; échec si une option non valable\n"
+"    Renvoie le code de succès si NOMOPT est active ; échec si une option non "
+"valable\n"
 "    est donnée ou si NOMOPT est inactive."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4987,53 +5518,70 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Formatte et affiche des ARGUMENTS en contrôlant le FORMAT.\n"
 "    \n"
 "    Options :\n"
-"      -v var\taffecte la sortie à la variable VAR du shell plutôt que de l'afficher\n"
+"      -v var\taffecte la sortie à la variable VAR du shell plutôt que de "
+"l'afficher\n"
 "    \t\tsur la sortie standard\n"
 "    \n"
-"    Le FORMAT est une chaîne de caractères qui contient trois types d'objets : des caractères\n"
-"    normaux qui sont simplement copiés vers la sortie standard, des séquences d'échappement\n"
-"    qui sont converties et copiées vers la sortie standard et des spécifications de\n"
+"    Le FORMAT est une chaîne de caractères qui contient trois types "
+"d'objets : des caractères\n"
+"    normaux qui sont simplement copiés vers la sortie standard, des "
+"séquences d'échappement\n"
+"    qui sont converties et copiées vers la sortie standard et des "
+"spécifications de\n"
 "    format, chacun entraînant l'affichage de l'argument suivant.\n"
 "    \n"
-"    En plus des formats standards décrits dans printf(1) et printf(3), « printf » interprète :\n"
+"    En plus des formats standards décrits dans printf(1) et printf(3), « "
+"printf » interprète :\n"
 "    \n"
-"      %b\tdéveloppe les séquences d'échappement à contre-oblique dans l'argument correspondant\n"
-"      %q\tprotège les arguments par guillemets de façon qu'ils puissent être réutilisés\n"
+"      %b\tdéveloppe les séquences d'échappement à contre-oblique dans "
+"l'argument correspondant\n"
+"      %q\tprotège les arguments par guillemets de façon qu'ils puissent être "
+"réutilisés\n"
 "      comme entrée du shell.\n"
-"      %(fmt)T renvoie la chaîne date-heure résultant de l'utilisation de FMT comme une\n"
+"      %(fmt)T renvoie la chaîne date-heure résultant de l'utilisation de FMT "
+"comme une\n"
 "            chaîne de format pour strftime(3)\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit donnée ou qu'une\n"
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"donnée ou qu'une\n"
 "    erreur d'écriture ou d'affectation ne survienne."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5054,32 +5602,41 @@ msgid ""
 msgstr ""
 "Spécifie la façon dont Readline complète les arguments.\n"
 "    \n"
-"    Pour chaque NOM, la commande spécifie la façon dont les arguments son complétés\n"
-"    S'il n'y a pas d'option, le réglage actuel est affiché d'une manièré réutilisable comme\n"
+"    Pour chaque NOM, la commande spécifie la façon dont les arguments son "
+"complétés\n"
+"    S'il n'y a pas d'option, le réglage actuel est affiché d'une manièré "
+"réutilisable comme\n"
 "    une entrée.\n"
 "    \n"
 "    Options :\n"
-"      -p\taffiche le réglage d'auto-complètement actuel dans un format réutilisable\n"
-"      -r\tretire un réglage d'auto-complètement à chaque NOM ou, si aucun NOM\n"
+"      -p\taffiche le réglage d'auto-complètement actuel dans un format "
+"réutilisable\n"
+"      -r\tretire un réglage d'auto-complètement à chaque NOM ou, si aucun "
+"NOM\n"
 "    \tn'est fourni, retire tous les réglages\n"
-"      -D\tapplique les auto-complètements et actions comme valeurs par défaut aux commandes\n"
+"      -D\tapplique les auto-complètements et actions comme valeurs par "
+"défaut aux commandes\n"
 "    \tne possédant aucun auto-complètement spécifique\n"
 "      -E\tapplique les auto-complètements et actions aux commandes vides (\n"
 "    \tauto-complètement tenté sur une ligne vide)\n"
 "    \n"
-"    Lorsqu'un auto-complètement est tenté, les actions sont appliquées dans l'ordre\n"
-"    dans lequel les options en majuscule ci-dessus sont listées.  L'option « -D » est prioritaire\n"
+"    Lorsqu'un auto-complètement est tenté, les actions sont appliquées dans "
+"l'ordre\n"
+"    dans lequel les options en majuscule ci-dessus sont listées.  L'option « "
+"-D » est prioritaire\n"
 "    sur « -E ».\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit fournie ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"fournie ou qu'une erreur ne survienne."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5092,15 +5649,19 @@ msgstr ""
 "    des correspondances avec « WORD » sont générées.\n"
 "    \n"
 "    Code de sortie :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit fournie ou qu'une erreur ne survienne."
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"fournie ou qu'une erreur ne survienne."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5123,45 +5684,61 @@ msgid ""
 msgstr ""
 "Modifie ou affiche les options d'auto-complètement.\n"
 "    \n"
-"    Modifie les options d'auto-complètement pour chaque NOM ou, si aucun NOM n'est fourni,\n"
-"    pour l'auto-complètement actuellement exécuté.  si aucune OPTION n'est donnée, affiche\n"
-"    les options d'auto-complètement de chaque NOM ou le réglage actuel d'auto-complètement.\n"
+"    Modifie les options d'auto-complètement pour chaque NOM ou, si aucun NOM "
+"n'est fourni,\n"
+"    pour l'auto-complètement actuellement exécuté.  si aucune OPTION n'est "
+"donnée, affiche\n"
+"    les options d'auto-complètement de chaque NOM ou le réglage actuel "
+"d'auto-complètement.\n"
 "    \n"
 "    Options :\n"
-"    \t-o option\tDéfinir l'option d'auto-complètement OPTION pour chaque NOM\n"
-"    \t-D\t\tChanger les options pour l'auto-complètement de commande par défaut\n"
+"    \t-o option\tDéfinir l'option d'auto-complètement OPTION pour chaque "
+"NOM\n"
+"    \t-D\t\tChanger les options pour l'auto-complètement de commande par "
+"défaut\n"
 "    \t-E\t\tChanger les options pour l'auto-complètement de commande vide\n"
 "    \n"
 "    Utiliser « +o » au lieu de « -o » désactive l'option spécifiée.\n"
 "    \n"
 "    Arguments :\n"
 "    \n"
-"    Chaque NOM correspond à une commande pour laquelle un réglage d'auto-complètement\n"
-"    doit déjà avoir été défini grâce à la commande intégrée « complete ».  Si aucun NOM\n"
-"    n'est fourni, « compopt » doit être appelée par une fonction générant actuellement\n"
-"    des auto-complètements ; ainsi les options de ce générateur d'auto-complètement en cours d'exécution\n"
+"    Chaque NOM correspond à une commande pour laquelle un réglage d'auto-"
+"complètement\n"
+"    doit déjà avoir été défini grâce à la commande intégrée « complete ».  "
+"Si aucun NOM\n"
+"    n'est fourni, « compopt » doit être appelée par une fonction générant "
+"actuellement\n"
+"    des auto-complètements ; ainsi les options de ce générateur d'auto-"
+"complètement en cours d'exécution\n"
 "    seront modifiées.\n"
 "    \n"
 "    Code de retour :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit fournie\n"
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"fournie\n"
 "    ou que NOM n'ait aucun réglage d'auto-complètement."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5171,43 +5748,56 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Lit des lignes depuis l'entrée standard vers une variable tableau indexé.\n"
 "    \n"
-"    Lit des lignes depuis l'entrée standard vers la variable tableau indexé TABLEAU ou\n"
-"    depuis le descripteur de fichier FD si l'option « -u » est utilisée. La variable MAPFILE\n"
+"    Lit des lignes depuis l'entrée standard vers la variable tableau indexé "
+"TABLEAU ou\n"
+"    depuis le descripteur de fichier FD si l'option « -u » est utilisée. La "
+"variable MAPFILE\n"
 "    est le TABLEAU par défaut.\n"
 "    \n"
 "    Options :\n"
-"      -n nombre\tCopie au maximum NOMBRE lignes.  Si NOMBRE est 0, toutes les lignes sont copiées.\n"
-"      -O origine\tCommence l'affectation au TABLEAU à l'indice ORIGINE.  L'indice par défaut est 0.\n"
+"      -n nombre\tCopie au maximum NOMBRE lignes.  Si NOMBRE est 0, toutes "
+"les lignes sont copiées.\n"
+"      -O origine\tCommence l'affectation au TABLEAU à l'indice ORIGINE.  "
+"L'indice par défaut est 0.\n"
 "      -s nombre\tSaute les NOMBRE premières lignes lues.\n"
 "      -t\t\tRetire les retours à la ligne de chaque ligne lue.\n"
-"      -u fd\t\tLit les lignes depuis le descripteur de fichier FD au lieu de l'entrée standard.\n"
-"      -C callback\tÉvalue le CALLBACK à chaque fois que QUANTUM lignes sont lues.\n"
-"      -c quantum\tIndique le nombre de lignes lues entre chaque appel au CALLBACK.\n"
+"      -u fd\t\tLit les lignes depuis le descripteur de fichier FD au lieu de "
+"l'entrée standard.\n"
+"      -C callback\tÉvalue le CALLBACK à chaque fois que QUANTUM lignes sont "
+"lues.\n"
+"      -c quantum\tIndique le nombre de lignes lues entre chaque appel au "
+"CALLBACK.\n"
 "    \n"
 "    Arguments :\n"
 "      TABLEAU\t\tNom de la variable tableau à utiliser pour les données.\n"
 "    \n"
-"    Si l'option « -C » est fournie sans option « -c », le quantum par défaut est 5000.  Lorsque\n"
-"    CALLBACK est évalué, l'indice du prochain élément de tableau qui sera affecté\n"
+"    Si l'option « -C » est fournie sans option « -c », le quantum par défaut "
+"est 5000.  Lorsque\n"
+"    CALLBACK est évalué, l'indice du prochain élément de tableau qui sera "
+"affecté\n"
 "    lui est transmis comme argument additionnel.\n"
 "    \n"
-"    Si la commande « mapfile » n'est pas fournie avec une origine explicite, le tableau est vidé\n"
+"    Si la commande « mapfile » n'est pas fournie avec une origine explicite, "
+"le tableau est vidé\n"
 "    avant affectation.\n"
 "    \n"
 "    code de retour :\n"
-"    Renvoie le code de succès à moins qu'une option non valable ne soit donnée ou que\n"
+"    Renvoie le code de succès à moins qu'une option non valable ne soit "
+"donnée ou que\n"
 "    le TABLEAU soit en lecture seule ou ne soit pas un tableau indexé."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5228,13 +5818,15 @@ msgstr ""
 #~ "; 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"
+#~ "    The value of EXPR indicates how many call frames to go back before "
+#~ "the\n"
 #~ "    current one; the top frame is frame 0."
 #~ msgstr ""
 #~ "; ces informations supplémentaires peuvent être utilisées pour\n"
 #~ "    fournir une trace d'appels\n"
 #~ "    \n"
-#~ "    La valeur de EXPR indique le nombre de cadres d'appels duquel il faut revenir en arrière\n"
+#~ "    La valeur de EXPR indique le nombre de cadres d'appels duquel il faut "
+#~ "revenir en arrière\n"
 #~ "    avant le cadre actuel ; le cadre supérieur est le cadre 0."
 
 #~ msgid " "
@@ -5244,13 +5836,18 @@ msgstr ""
 #~ msgstr "Sans « EXPR », renvoie « $ligne $nomfichier ».  Avec « EXPR »,"
 
 #~ msgid "returns \"$line $subroutine $filename\"; this extra information"
-#~ msgstr "renvoie « $ligne $sousroutine $nomfichier » ; cette information supplémentaire"
+#~ msgstr ""
+#~ "renvoie « $ligne $sousroutine $nomfichier » ; cette information "
+#~ "supplémentaire"
 
 #~ msgid "can be used used to provide a stack trace."
 #~ msgstr "peut être utilisée pour fournir une trace de la pile"
 
-#~ msgid "The value of EXPR indicates how many call frames to go back before the"
-#~ msgstr "La valeur de « EXPR » indique le nombre de cadres d'appel dont il faut reculer"
+#~ msgid ""
+#~ "The value of EXPR indicates how many call frames to go back before the"
+#~ msgstr ""
+#~ "La valeur de « EXPR » indique le nombre de cadres d'appel dont il faut "
+#~ "reculer"
 
 #~ msgid "current one; the top frame is frame 0."
 #~ msgstr "par rapport à l'actuel ; le cadre supérieur est le cadre 0."
@@ -5262,82 +5859,117 @@ msgstr ""
 #~ msgstr "Commandes du shell correspondant aux mots-clés « "
 
 #~ msgid "Display the list of currently remembered directories.  Directories"
-#~ msgstr "Affiche la liste des répertoires actuellement mémorisés. Les répertoires"
+#~ msgstr ""
+#~ "Affiche la liste des répertoires actuellement mémorisés. Les répertoires"
 
 #~ msgid "find their way onto the list with the `pushd' command; you can get"
 #~ msgstr "sont insérés dans la pile avec la commande « pushd » ; vous pouvez"
 
 #~ msgid "back up through the list with the `popd' command."
-#~ msgstr "remonter dans la pile en enlevant des éléments avec la commande « popd »."
+#~ msgstr ""
+#~ "remonter dans la pile en enlevant des éléments avec la commande « popd »."
 
-#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
-#~ msgstr "L'option « -l » demande à « dirs » de ne pas afficher sous forme abrégée"
+#~ msgid ""
+#~ "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgstr ""
+#~ "L'option « -l » demande à « dirs » de ne pas afficher sous forme abrégée"
 
-#~ msgid "of directories which are relative to your home directory.  This means"
-#~ msgstr "les répertoires relatifs à votre répertoire personnel.  Cela signifie que"
+#~ msgid ""
+#~ "of directories which are relative to your home directory.  This means"
+#~ msgstr ""
+#~ "les répertoires relatifs à votre répertoire personnel.  Cela signifie que"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
-#~ msgstr "le répertoire « ~/bin » pourra être affiché « /homes/bfox/bin ». L'option « -v »"
+#~ msgstr ""
+#~ "le répertoire « ~/bin » pourra être affiché « /homes/bfox/bin ». L'option "
+#~ "« -v »"
 
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
 #~ msgstr "demande à « dirs » d'afficher un répertoire de la pile par ligne,"
 
-#~ msgid "prepending the directory name with its position in the stack.  The -p"
-#~ msgstr "en le précédant de sa position dans la pile.  L'option « -p » fait la même chose"
+#~ msgid ""
+#~ "prepending the directory name with its position in the stack.  The -p"
+#~ msgstr ""
+#~ "en le précédant de sa position dans la pile.  L'option « -p » fait la "
+#~ "même chose"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "sans afficher le numéro d'emplacement dans la pile."
 
-#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
-#~ msgstr "L'option « -c » vide la pile des répertoires en retirant tous ses éléments."
+#~ msgid ""
+#~ "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgstr ""
+#~ "L'option « -c » vide la pile des répertoires en retirant tous ses "
+#~ "éléments."
 
-#~ msgid "+N   displays the Nth entry counting from the left of the list shown by"
-#~ msgstr "+N   affiche la Nième entrée à partir de la gauche de la liste fournie par"
+#~ msgid ""
+#~ "+N   displays the Nth entry counting from the left of the list shown by"
+#~ msgstr ""
+#~ "+N   affiche la Nième entrée à partir de la gauche de la liste fournie par"
 
 #~ msgid "     dirs when invoked without options, starting with zero."
-#~ msgstr "     « dirs » lorsqu'elle est appelée sans option, la première entrée étant zéro."
+#~ msgstr ""
+#~ "     « dirs » lorsqu'elle est appelée sans option, la première entrée "
+#~ "étant zéro."
 
-#~ msgid "-N   displays the Nth entry counting from the right of the list shown by"
-#~ msgstr "+N   affiche la Nième entrée à partir de la droite de la liste fournie par"
+#~ msgid ""
+#~ "-N   displays the Nth entry counting from the right of the list shown by"
+#~ msgstr ""
+#~ "+N   affiche la Nième entrée à partir de la droite de la liste fournie par"
 
 #~ msgid "Adds a directory to the top of the directory stack, or rotates"
-#~ msgstr "Ajoute un répertoire au dessus de la pile des répertoires ou effectue une"
+#~ msgstr ""
+#~ "Ajoute un répertoire au dessus de la pile des répertoires ou effectue une"
 
 #~ msgid "the stack, making the new top of the stack the current working"
-#~ msgstr "rotation de la pile en plaçant le répertoire supérieur comme répertoire courant."
+#~ msgstr ""
+#~ "rotation de la pile en plaçant le répertoire supérieur comme répertoire "
+#~ "courant."
 
 #~ msgid "directory.  With no arguments, exchanges the top two directories."
-#~ msgstr "Sans paramètre, les deux répertoires supérieurs de la pile sont échangés."
+#~ msgstr ""
+#~ "Sans paramètre, les deux répertoires supérieurs de la pile sont échangés."
 
 #~ msgid "+N   Rotates the stack so that the Nth directory (counting"
-#~ msgstr "+N   effectue une rotation de la pile de façon que le Nième répertoire soit"
+#~ msgstr ""
+#~ "+N   effectue une rotation de la pile de façon que le Nième répertoire "
+#~ "soit"
 
 #~ msgid "     from the left of the list shown by `dirs', starting with"
-#~ msgstr "placé au dessus (N commençant à zéro et en partant à gauche de la liste"
+#~ msgstr ""
+#~ "placé au dessus (N commençant à zéro et en partant à gauche de la liste"
 
 #~ msgid "     zero) is at the top."
 #~ msgstr " fournie par « dirs »)."
 
 #~ msgid "-N   Rotates the stack so that the Nth directory (counting"
-#~ msgstr "+N   effectue une rotation de la pile de façon que le Nième répertoire soit"
+#~ msgstr ""
+#~ "+N   effectue une rotation de la pile de façon que le Nième répertoire "
+#~ "soit"
 
 #~ msgid "     from the right of the list shown by `dirs', starting with"
-#~ msgstr "placé au dessus (N commençant à zéro et en partant à gauche de la liste"
+#~ msgstr ""
+#~ "placé au dessus (N commençant à zéro et en partant à gauche de la liste"
 
 #~ msgid "-n   suppress the normal change of directory when adding directories"
-#~ msgstr "-n   inhibe le changement de répertoire lors d'un ajout de répertoire "
+#~ msgstr ""
+#~ "-n   inhibe le changement de répertoire lors d'un ajout de répertoire "
 
 #~ msgid "     to the stack, so only the stack is manipulated."
 #~ msgstr "     à la liste. Seule la pile est manipulée."
 
 #~ msgid "dir  adds DIR to the directory stack at the top, making it the"
-#~ msgstr "dir  ajoute « DIR » au dessus de la pile des répertoires, en faisant de lui"
+#~ msgstr ""
+#~ "dir  ajoute « DIR » au dessus de la pile des répertoires, en faisant de "
+#~ "lui"
 
 #~ msgid "     new current working directory."
 #~ msgstr "     le nouveau répertoire courant."
 
 #~ msgid "You can see the directory stack with the `dirs' command."
-#~ msgstr "Vous pouvez voir le contenu de la pile des répertoires avec la commande « dirs »."
+#~ msgstr ""
+#~ "Vous pouvez voir le contenu de la pile des répertoires avec la commande « "
+#~ "dirs »."
 
 #~ msgid "Removes entries from the directory stack.  With no arguments,"
 #~ msgstr "Enlève des éléments de la pile des répertoires. Sans paramètre,"
@@ -5366,8 +5998,11 @@ msgstr ""
 #~ msgid "     removes the last directory, `popd -1' the next to last."
 #~ msgstr "     enlève le dernier répertoire, « popd  -1 » l'avant-dernier."
 
-#~ msgid "-n   suppress the normal change of directory when removing directories"
-#~ msgstr "-n   inhibe le changement de répertoire lors de l'enlèvement d'un répertoire"
+#~ msgid ""
+#~ "-n   suppress the normal change of directory when removing directories"
+#~ msgstr ""
+#~ "-n   inhibe le changement de répertoire lors de l'enlèvement d'un "
+#~ "répertoire"
 
 #~ msgid "     from the stack, so only the stack is manipulated."
 #~ msgstr "     de la liste. Seule la pile est manipulée."
@@ -5397,7 +6032,8 @@ msgstr ""
 #~ msgstr "xrealloc : impossible d'allouer %lu octets"
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc : %s:%d : impossible de réallouer %lu octets (%lu octets alloués)"
+#~ msgstr ""
+#~ "xrealloc : %s:%d : impossible de réallouer %lu octets (%lu octets alloués)"
 
 #~ msgid ""
 #~ "Exit from within a FOR, WHILE or UNTIL loop.  If N is specified,\n"
@@ -5411,15 +6047,18 @@ msgstr ""
 #~ "    shell builtin to be a function, but need the functionality of the\n"
 #~ "    builtin within the function itself."
 #~ msgstr ""
-#~ "Lance une primitive du shell. Ceci est utile lorsque vous souhaitez nommer une fonction comme\n"
-#~ "    une primitive, mais que vous avez besoin d'utiliser la primitive dans la fonction elle-même."
+#~ "Lance une primitive du shell. Ceci est utile lorsque vous souhaitez "
+#~ "nommer une fonction comme\n"
+#~ "    une primitive, mais que vous avez besoin d'utiliser la primitive dans "
+#~ "la fonction elle-même."
 
 #~ msgid ""
 #~ "Print the current working directory.  With the -P option, pwd prints\n"
 #~ "    the physical directory, without any symbolic links; the -L option\n"
 #~ "    makes pwd follow symbolic links."
 #~ msgstr ""
-#~ "Affiche le répertoire de travail actuel.  Avec l'option « -P », « pwd » affiche\n"
+#~ "Affiche le répertoire de travail actuel.  Avec l'option « -P », « pwd » "
+#~ "affiche\n"
 #~ "    le répertoire physique, sans lien symbolique ; l'option « -L »\n"
 #~ "    demande à « pwd » de suivre les liens symboliques."
 
@@ -5429,17 +6068,26 @@ msgstr ""
 #~ msgid ""
 #~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell\n"
 #~ "    function called `ls', and you wish to call the command `ls', you can\n"
-#~ "    say \"command ls\".  If the -p option is given, a default value is used\n"
-#~ "    for PATH that is guaranteed to find all of the standard utilities.  If\n"
-#~ "    the -V or -v option is given, a string is printed describing COMMAND.\n"
+#~ "    say \"command ls\".  If the -p option is given, a default value is "
+#~ "used\n"
+#~ "    for PATH that is guaranteed to find all of the standard utilities.  "
+#~ "If\n"
+#~ "    the -V or -v option is given, a string is printed describing "
+#~ "COMMAND.\n"
 #~ "    The -V option produces a more verbose description."
 #~ msgstr ""
-#~ "Lance la commande COMMAND avec les ARGS en ignorant les fonctions du shell.  Si vous\n"
-#~ "    avez défini une fonction de shell appelée « ls » et que vous voulez appeler\n"
-#~ "    la commande « ls », vous pouvez faire « command ls ».  Si l'option « -p » est\n"
-#~ "    donnée, une valeur par défaut est utilisée pour le PATH garantissant que tous\n"
-#~ "    les utilitaires standards seront trouvés.  Si l'option « -V » ou « -v » est\n"
-#~ "    donnée, une description de la commande s'affiche. L'option « -V » fournit plus\n"
+#~ "Lance la commande COMMAND avec les ARGS en ignorant les fonctions du "
+#~ "shell.  Si vous\n"
+#~ "    avez défini une fonction de shell appelée « ls » et que vous voulez "
+#~ "appeler\n"
+#~ "    la commande « ls », vous pouvez faire « command ls ».  Si l'option « -"
+#~ "p » est\n"
+#~ "    donnée, une valeur par défaut est utilisée pour le PATH garantissant "
+#~ "que tous\n"
+#~ "    les utilitaires standards seront trouvés.  Si l'option « -V » ou « -v "
+#~ "» est\n"
+#~ "    donnée, une description de la commande s'affiche. L'option « -V » "
+#~ "fournit plus\n"
 #~ "    d'informations."
 
 #~ msgid ""
@@ -5451,7 +6099,8 @@ msgstr ""
 #~ "    \n"
 #~ "      -a\tto make NAMEs arrays (if supported)\n"
 #~ "      -f\tto select from among function names only\n"
-#~ "      -F\tto display function names (and line number and source file name if\n"
+#~ "      -F\tto display function names (and line number and source file name "
+#~ "if\n"
 #~ "    \tdebugging) without definitions\n"
 #~ "      -i\tto make NAMEs have the `integer' attribute\n"
 #~ "      -r\tto make NAMEs readonly\n"
@@ -5465,32 +6114,40 @@ msgstr ""
 #~ "    and definition.  The -F option restricts the display to function\n"
 #~ "    name only.\n"
 #~ "    \n"
-#~ "    Using `+' instead of `-' turns off the given attribute instead.  When\n"
+#~ "    Using `+' instead of `-' turns off the given attribute instead.  "
+#~ "When\n"
 #~ "    used in a function, makes NAMEs local, as with the `local' command."
 #~ msgstr ""
-#~ "Déclare des variables ou ajoute des attributs aux variables.  Si aucun nom\n"
-#~ "    n'est donné, affiche plutôt les valeurs des variables.  L'option « -p »\n"
+#~ "Déclare des variables ou ajoute des attributs aux variables.  Si aucun "
+#~ "nom\n"
+#~ "    n'est donné, affiche plutôt les valeurs des variables.  L'option « -p "
+#~ "»\n"
 #~ "    permet d'afficher les attributs et les valeurs de chaque NAME.\n"
 #~ "    \n"
 #~ "    Les options sont :\n"
 #~ "    \n"
 #~ "      -a\tpour faire des tableaux de NAME (si pris en charge)\n"
 #~ "      -f\tpour choisir uniquement parmi les noms de fonctions\n"
-#~ "      -F\tpour afficher les noms de fonctions (et les numéros de ligne et le\n"
+#~ "      -F\tpour afficher les noms de fonctions (et les numéros de ligne et "
+#~ "le\n"
 #~ "       \tfichier source si le mode de débogage est activé\n"
 #~ "      -i\tpour que les NAME aient l'attribut « integer »\n"
 #~ "      -r\tpour que les NAME soient en lecture seule\n"
 #~ "      -t\tpour que les NAME aient l'attribut « trace »\n"
 #~ "      -x\tpour faire un export des NAME\n"
 #~ "    \n"
-#~ "    L'évaluation arithmétique des variables ayant l'attribut « integer » est\n"
+#~ "    L'évaluation arithmétique des variables ayant l'attribut « integer » "
+#~ "est\n"
 #~ "    effectuée au moment de l'affectation (voir « let »).\n"
 #~ "    \n"
-#~ "    Lors de l'affichage des valeurs de variables, -f affiche le nom de la fonction\n"
+#~ "    Lors de l'affichage des valeurs de variables, -f affiche le nom de la "
+#~ "fonction\n"
 #~ "    et sa définition.  L'option -F permet de n'afficher que le nom.\n"
 #~ "    \n"
-#~ "    Un attribut peut être désactivé en utilisant « + » au lieu de « - ».  Dans une\n"
-#~ "    fonction, ceci a pour effet de rendre les NAME locaux, comme avec la commande «local »."
+#~ "    Un attribut peut être désactivé en utilisant « + » au lieu de « - ».  "
+#~ "Dans une\n"
+#~ "    fonction, ceci a pour effet de rendre les NAME locaux, comme avec la "
+#~ "commande «local »."
 
 #~ msgid "Obsolete.  See `declare'."
 #~ msgstr "Obsolète. Consulter « declare »."
@@ -5500,11 +6157,15 @@ msgstr ""
 #~ "    can only be used within a function; it makes the variable NAME\n"
 #~ "    have a visible scope restricted to that function and its children."
 #~ msgstr ""
-#~ "Permet de créer une variable locale appelée NAME, et de lui affecter une VALUE.\n"
-#~ "    LOCAL peut seulement être utilisé à l'intérieur d'une fonction ; il rend le nom de\n"
-#~ "    variable NAME visible uniquement à l'intérieur de la fonction et de ses filles."
+#~ "Permet de créer une variable locale appelée NAME, et de lui affecter une "
+#~ "VALUE.\n"
+#~ "    LOCAL peut seulement être utilisé à l'intérieur d'une fonction ; il "
+#~ "rend le nom de\n"
+#~ "    variable NAME visible uniquement à l'intérieur de la fonction et de "
+#~ "ses filles."
 
-#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgid ""
+#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
 #~ msgstr "Affiche les ARGs. L'option « -n » supprime le saut de ligne final."
 
 #~ msgid ""
@@ -5519,25 +6180,39 @@ msgstr ""
 #~ "    previously loaded with -f.  If no non-option names are given, or\n"
 #~ "    the -p option is supplied, a list of builtins is printed.  The\n"
 #~ "    -a option means to print every builtin with an indication of whether\n"
-#~ "    or not it is enabled.  The -s option restricts the output to the POSIX.2\n"
-#~ "    `special' builtins.  The -n option displays a list of all disabled builtins."
+#~ "    or not it is enabled.  The -s option restricts the output to the "
+#~ "POSIX.2\n"
+#~ "    `special' builtins.  The -n option displays a list of all disabled "
+#~ "builtins."
 #~ msgstr ""
 #~ "Active et désactive les primitives du shell.  Ceci permet\n"
-#~ "    d'utiliser une commande du disque qui a le même nom qu'une commande intégrée\n"
+#~ "    d'utiliser une commande du disque qui a le même nom qu'une commande "
+#~ "intégrée\n"
 #~ "    sans devoir spécifier un chemin complet.  Si « -n » est utilisé, les\n"
-#~ "    noms NAME sont désactivés ; sinon, les noms NAME sont activés. Par exemple,\n"
+#~ "    noms NAME sont désactivés ; sinon, les noms NAME sont activés. Par "
+#~ "exemple,\n"
 #~ "    pour utiliser « test » trouvé dans $PATH au lieu de la primitive du\n"
-#~ "    même nom, tapez « enable -n test ».  Sur les systèmes permettant le chargement\n"
-#~ "    dynamique, l'option « -f » peut être utilisée pour charger de nouvelles primitives\n"
-#~ "    depuis l'objet partagé FILENAME.  L'option « -d » efface une primitive précédemment\n"
-#~ "    chargée avec « -f ».  Si aucun nom (n'étant pas une option) n'est donné, ou si l'option\n"
-#~ "    « -p » est spécifiée, une liste de primitive est affichée.  L'option « -a » permet d'afficher\n"
-#~ "    toutes les primitives en précisant si elles sont activées ou non. L'option « -s » restreint\n"
-#~ "    la sortie aux primitives « special » POSIX.2. L'option « -n » affiche une liste de toutes les\n"
+#~ "    même nom, tapez « enable -n test ».  Sur les systèmes permettant le "
+#~ "chargement\n"
+#~ "    dynamique, l'option « -f » peut être utilisée pour charger de "
+#~ "nouvelles primitives\n"
+#~ "    depuis l'objet partagé FILENAME.  L'option « -d » efface une "
+#~ "primitive précédemment\n"
+#~ "    chargée avec « -f ».  Si aucun nom (n'étant pas une option) n'est "
+#~ "donné, ou si l'option\n"
+#~ "    « -p » est spécifiée, une liste de primitive est affichée.  L'option "
+#~ "« -a » permet d'afficher\n"
+#~ "    toutes les primitives en précisant si elles sont activées ou non. "
+#~ "L'option « -s » restreint\n"
+#~ "    la sortie aux primitives « special » POSIX.2. L'option « -n » affiche "
+#~ "une liste de toutes les\n"
 #~ "    primitives désactivées."
 
-#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
-#~ msgstr "Lit les ARGs comme une entrée du shell et exécute les commandes résultantes."
+#~ msgid ""
+#~ "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgstr ""
+#~ "Lit les ARGs comme une entrée du shell et exécute les commandes "
+#~ "résultantes."
 
 #~ msgid ""
 #~ "Exec FILE, replacing this shell with the specified program.\n"
@@ -5549,14 +6224,16 @@ msgstr ""
 #~ "    If the file cannot be executed and the shell is not interactive,\n"
 #~ "    then the shell exits, unless the shell option `execfail' is set."
 #~ msgstr ""
-#~ "Exécute le fichier FILE en remplaçant ce shell par le programme spécifié.\n"
+#~ "Exécute le fichier FILE en remplaçant ce shell par le programme "
+#~ "spécifié.\n"
 #~ "    Si FILE n'est pas spécifié, les redirections prennent effet dans\n"
 #~ "    ce shell. Si le premier argument est « -l », un tiret est placé dans\n"
 #~ "    l'argument n°0 transmis à FILE, comme le fait « login ». Si l'option\n"
 #~ "    « -c » est fournie, FILE est exécuté avec un environnement vide.\n"
 #~ "    L'option « -a » indique de définir « argv[0] » du processus exécuté\n"
 #~ "    à NAME. Si le fichier ne peut pas être exécuté et que le shell n'est\n"
-#~ "    pas interactif, alors le shell se termine, à moins que l'option « execfail »\n"
+#~ "    pas interactif, alors le shell se termine, à moins que l'option « "
+#~ "execfail »\n"
 #~ "    ne soit définie."
 
 #~ msgid "Logout of a login shell."
@@ -5567,22 +6244,36 @@ msgstr ""
 #~ "    remembered.  If the -p option is supplied, PATHNAME is used as the\n"
 #~ "    full pathname of NAME, and no path search is performed.  The -r\n"
 #~ "    option causes the shell to forget all remembered locations.  The -d\n"
-#~ "    option causes the shell to forget the remembered location of each NAME.\n"
+#~ "    option causes the shell to forget the remembered location of each "
+#~ "NAME.\n"
 #~ "    If the -t option is supplied the full pathname to which each NAME\n"
-#~ "    corresponds is printed.  If multiple NAME arguments are supplied with\n"
-#~ "    -t, the NAME is printed before the hashed full pathname.  The -l option\n"
-#~ "    causes output to be displayed in a format that may be reused as input.\n"
-#~ "    If no arguments are given, information about remembered commands is displayed."
+#~ "    corresponds is printed.  If multiple NAME arguments are supplied "
+#~ "with\n"
+#~ "    -t, the NAME is printed before the hashed full pathname.  The -l "
+#~ "option\n"
+#~ "    causes output to be displayed in a format that may be reused as "
+#~ "input.\n"
+#~ "    If no arguments are given, information about remembered commands is "
+#~ "displayed."
 #~ msgstr ""
-#~ "Pour chaque NAME, le chemin complet de la commande est déterminé puis mémorisé.\n"
-#~ "    Si l'option « -p » est fournie, le CHEMIN est utilisé comme chemin complet\n"
-#~ "    pour NAME, et aucune recherche n'est effectuée. L'option « -r » demande au shell\n"
-#~ "    d'oublier tous les chemins mémorisés. L'option « -d » demande au shell d'oublier\n"
-#~ "    les chemins mémorisés pour le NAME. Si l'option « -t » est fournie, le chemin\n"
-#~ "    complet auquel correspond chaque NAME est affiché. Si plusieurs NAME sont fournis\n"
-#~ "    à l'option « -t », le NAME est affiché avant chemin complet haché. L'option\n"
-#~ "    « -l » permet d'utiliser un format de sortie qui peut être réutilisé comme entrée.\n"
-#~ "    Si aucun argument n'est donné, des informations sur les commandes mémorisées sont\n"
+#~ "Pour chaque NAME, le chemin complet de la commande est déterminé puis "
+#~ "mémorisé.\n"
+#~ "    Si l'option « -p » est fournie, le CHEMIN est utilisé comme chemin "
+#~ "complet\n"
+#~ "    pour NAME, et aucune recherche n'est effectuée. L'option « -r » "
+#~ "demande au shell\n"
+#~ "    d'oublier tous les chemins mémorisés. L'option « -d » demande au "
+#~ "shell d'oublier\n"
+#~ "    les chemins mémorisés pour le NAME. Si l'option « -t » est fournie, "
+#~ "le chemin\n"
+#~ "    complet auquel correspond chaque NAME est affiché. Si plusieurs NAME "
+#~ "sont fournis\n"
+#~ "    à l'option « -t », le NAME est affiché avant chemin complet haché. "
+#~ "L'option\n"
+#~ "    « -l » permet d'utiliser un format de sortie qui peut être réutilisé "
+#~ "comme entrée.\n"
+#~ "    Si aucun argument n'est donné, des informations sur les commandes "
+#~ "mémorisées sont\n"
 #~ "    affichées."
 
 #~ msgid ""
@@ -5593,75 +6284,120 @@ msgstr ""
 #~ "    a short usage synopsis."
 #~ msgstr ""
 #~ "Affiche des informations utiles sur les commandes intégrées. Si MOTIF\n"
-#~ "    est précisé, une aide détaillée sur toutes les commandes correspondant\n"
+#~ "    est précisé, une aide détaillée sur toutes les commandes "
+#~ "correspondant\n"
 #~ "    au MOTIF sont affichées, sinon une liste des commandes intégrées est\n"
 #~ "    fournie. L'option « -s » restreint l'affichage de chaque commande\n"
 #~ "    correspondant au MOTIF à une courte description sur l'utilisation."
 
 #~ msgid ""
 #~ "By default, removes each JOBSPEC argument from the table of active jobs.\n"
-#~ "    If the -h option is given, the job is not removed from the table, but is\n"
+#~ "    If the -h option is given, the job is not removed from the table, but "
+#~ "is\n"
 #~ "    marked so that SIGHUP is not sent to the job if the shell receives a\n"
-#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all\n"
-#~ "    jobs from the job table; the -r option means to remove only running jobs."
+#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove "
+#~ "all\n"
+#~ "    jobs from the job table; the -r option means to remove only running "
+#~ "jobs."
 #~ msgstr ""
-#~ "Par défaut, enlève tous les arguments JOBSPEC de la table des tâches actives.\n"
-#~ "    Si l'option « -h » est fournie, la tâche n'est pas retirée de la table mais\n"
-#~ "    est marquée de telle sorte que le signal SIGHUP ne lui soit pas envoyé quand\n"
-#~ "    le shell reçoit un SIGHUP. Lorsque JOBSPEC n'est pas fournie, l'option « -a »,\n"
-#~ "    permet d'enlever toutes les tâches de la table des tâches. L'option « -r »\n"
+#~ "Par défaut, enlève tous les arguments JOBSPEC de la table des tâches "
+#~ "actives.\n"
+#~ "    Si l'option « -h » est fournie, la tâche n'est pas retirée de la "
+#~ "table mais\n"
+#~ "    est marquée de telle sorte que le signal SIGHUP ne lui soit pas "
+#~ "envoyé quand\n"
+#~ "    le shell reçoit un SIGHUP. Lorsque JOBSPEC n'est pas fournie, "
+#~ "l'option « -a »,\n"
+#~ "    permet d'enlever toutes les tâches de la table des tâches. L'option « "
+#~ "-r »\n"
 #~ "    indique de ne retirer que les tâches en cours de fonctionnement."
 
 #~ msgid ""
-#~ "One line is read from the standard input, or from file descriptor FD if the\n"
-#~ "    -u option is supplied, and the first word is assigned to the first NAME,\n"
-#~ "    the second word to the second NAME, and so on, with leftover words assigned\n"
-#~ "    to the last NAME.  Only the characters found in $IFS are recognized as word\n"
-#~ "    delimiters.  If no NAMEs are supplied, the line read is stored in the REPLY\n"
-#~ "    variable.  If the -r option is given, this signifies `raw' input, and\n"
-#~ "    backslash escaping is disabled.  The -d option causes read to continue\n"
-#~ "    until the first character of DELIM is read, rather than newline.  If the -p\n"
-#~ "    option is supplied, the string PROMPT is output without a trailing newline\n"
-#~ "    before attempting to read.  If -a is supplied, the words read are assigned\n"
-#~ "    to sequential indices of ARRAY, starting at zero.  If -e is supplied and\n"
-#~ "    the shell is interactive, readline is used to obtain the line.  If -n is\n"
+#~ "One line is read from the standard input, or from file descriptor FD if "
+#~ "the\n"
+#~ "    -u option is supplied, and the first word is assigned to the first "
+#~ "NAME,\n"
+#~ "    the second word to the second NAME, and so on, with leftover words "
+#~ "assigned\n"
+#~ "    to the last NAME.  Only the characters found in $IFS are recognized "
+#~ "as word\n"
+#~ "    delimiters.  If no NAMEs are supplied, the line read is stored in the "
+#~ "REPLY\n"
+#~ "    variable.  If the -r option is given, this signifies `raw' input, "
+#~ "and\n"
+#~ "    backslash escaping is disabled.  The -d option causes read to "
+#~ "continue\n"
+#~ "    until the first character of DELIM is read, rather than newline.  If "
+#~ "the -p\n"
+#~ "    option is supplied, the string PROMPT is output without a trailing "
+#~ "newline\n"
+#~ "    before attempting to read.  If -a is supplied, the words read are "
+#~ "assigned\n"
+#~ "    to sequential indices of ARRAY, starting at zero.  If -e is supplied "
+#~ "and\n"
+#~ "    the shell is interactive, readline is used to obtain the line.  If -n "
+#~ "is\n"
 #~ "    supplied with a non-zero NCHARS argument, read returns after NCHARS\n"
 #~ "    characters have been read.  The -s option causes input coming from a\n"
 #~ "    terminal to not be echoed.\n"
 #~ "    \n"
-#~ "    The -t option causes read to time out and return failure if a complete line\n"
-#~ "    of input is not read within TIMEOUT seconds.  If the TMOUT variable is set,\n"
-#~ "    its value is the default timeout.  The return code is zero, unless end-of-file\n"
-#~ "    is encountered, read times out, or an invalid file descriptor is supplied as\n"
+#~ "    The -t option causes read to time out and return failure if a "
+#~ "complete line\n"
+#~ "    of input is not read within TIMEOUT seconds.  If the TMOUT variable "
+#~ "is set,\n"
+#~ "    its value is the default timeout.  The return code is zero, unless "
+#~ "end-of-file\n"
+#~ "    is encountered, read times out, or an invalid file descriptor is "
+#~ "supplied as\n"
 #~ "    the argument to -u."
 #~ msgstr ""
-#~ "Une ligne est lue depuis l'entrée standard ou depuis le descripteur de fichier\n"
-#~ "    FD si l'option « -u » est fournie. Le premier mot est affecté au premier NAME,\n"
-#~ "    le second mot au second NAME, et ainsi de suite, les mots restants étant affectés\n"
-#~ "    au dernier NAME. Seuls les caractères situés dans « $IFS » sont reconnus comme\n"
-#~ "    étant des délimiteurs de mots. Si aucun NAME n'est fourni, la ligne est conservée\n"
-#~ "    dans la variable REPLY. L'option « -r » signifie « entrée brute » et la neutralisation \n"
-#~ "    par barre oblique inverse est désactivée. L'option « -d » indique de continuer\"    la lecture jusqu'à ce que le premier caractère de DELIM soit lu plutôt que\n"
-#~ "    le retour à la ligne. Si « -p » est fourni, la chaîne PROMPT est affichée\n"
-#~ "    sans retour à la ligne final avant la tentative de lecture. Si « -a » est fourni,\n"
-#~ "    les mots lus sont affectés en séquence aux indices du TABLEAU, en commençant\n"
-#~ "    à zéro. Si « -e » est fourni et que le shell est interactif, « readline » est\n"
-#~ "    utilisé pour obtenir la ligne. Si « -n » est fourni avec un argument NCHARS non nul,\n"
-#~ "    « read » se termine après que NCHARS caractères ont été lus. L'option « -s »\n"
+#~ "Une ligne est lue depuis l'entrée standard ou depuis le descripteur de "
+#~ "fichier\n"
+#~ "    FD si l'option « -u » est fournie. Le premier mot est affecté au "
+#~ "premier NAME,\n"
+#~ "    le second mot au second NAME, et ainsi de suite, les mots restants "
+#~ "étant affectés\n"
+#~ "    au dernier NAME. Seuls les caractères situés dans « $IFS » sont "
+#~ "reconnus comme\n"
+#~ "    étant des délimiteurs de mots. Si aucun NAME n'est fourni, la ligne "
+#~ "est conservée\n"
+#~ "    dans la variable REPLY. L'option « -r » signifie « entrée brute » et "
+#~ "la neutralisation \n"
+#~ "    par barre oblique inverse est désactivée. L'option « -d » indique de "
+#~ "continuer\"    la lecture jusqu'à ce que le premier caractère de DELIM "
+#~ "soit lu plutôt que\n"
+#~ "    le retour à la ligne. Si « -p » est fourni, la chaîne PROMPT est "
+#~ "affichée\n"
+#~ "    sans retour à la ligne final avant la tentative de lecture. Si « -a » "
+#~ "est fourni,\n"
+#~ "    les mots lus sont affectés en séquence aux indices du TABLEAU, en "
+#~ "commençant\n"
+#~ "    à zéro. Si « -e » est fourni et que le shell est interactif, « "
+#~ "readline » est\n"
+#~ "    utilisé pour obtenir la ligne. Si « -n » est fourni avec un argument "
+#~ "NCHARS non nul,\n"
+#~ "    « read » se termine après que NCHARS caractères ont été lus. L'option "
+#~ "« -s »\n"
 #~ "    permet aux données venant d'un terminal de ne pas être répétées.\n"
 #~ "    \n"
-#~ "    L'option « -t » permet à « read » de se terminer avec une erreur si une ligne\n"
-#~ "    entière de données ne lui a pas été fournie avant le DÉLAI d'expiration. Si la\n"
-#~ "    variable TMOUT est définie, sa valeur est le délai d'expiration par défaut. Le code\n"
-#~ "    de retour est zéro à moins qu'une fin de fichier ne soit rencontrée, que « read »\n"
-#~ "    atteigne le délai d'expiration ou qu'un descripteur de fichier incorrect ne soit\n"
+#~ "    L'option « -t » permet à « read » de se terminer avec une erreur si "
+#~ "une ligne\n"
+#~ "    entière de données ne lui a pas été fournie avant le DÉLAI "
+#~ "d'expiration. Si la\n"
+#~ "    variable TMOUT est définie, sa valeur est le délai d'expiration par "
+#~ "défaut. Le code\n"
+#~ "    de retour est zéro à moins qu'une fin de fichier ne soit rencontrée, "
+#~ "que « read »\n"
+#~ "    atteigne le délai d'expiration ou qu'un descripteur de fichier "
+#~ "incorrect ne soit\n"
 #~ "    fourni pour l'argument « -u »."
 
 #~ msgid ""
 #~ "Causes a function to exit with the return value specified by N.  If N\n"
 #~ "    is omitted, the return status is that of the last command."
 #~ msgstr ""
-#~ "Permet à une fonction de se terminer avec le code de retour spécifié par N.\n"
+#~ "Permet à une fonction de se terminer avec le code de retour spécifié par "
+#~ "N.\n"
 #~ "    Si N est omis, le code de retour est celui de la dernière commande."
 
 #~ msgid ""
@@ -5673,9 +6409,12 @@ msgstr ""
 #~ msgstr ""
 #~ "Pour chaque NAME, supprime la variable ou la fonction correspondante.\n"
 #~ "    En spécifiant « -v », « unset » agira seulement sur les variables.\n"
-#~ "    Avec l'option « -f », « unset » n'agit que sur les fonctions. Sans option,\n"
-#~ "    « unset » essaye d'abord de supprimer une variable et, s'il échoue, essaye\n"
-#~ "    de supprimer une fonction. Certaines variables ne peuvent pas être supprimées.\n"
+#~ "    Avec l'option « -f », « unset » n'agit que sur les fonctions. Sans "
+#~ "option,\n"
+#~ "    « unset » essaye d'abord de supprimer une variable et, s'il échoue, "
+#~ "essaye\n"
+#~ "    de supprimer une fonction. Certaines variables ne peuvent pas être "
+#~ "supprimées.\n"
 #~ "    Consultez aussi « readonly ».    "
 
 #~ msgid ""
@@ -5688,27 +6427,39 @@ msgstr ""
 #~ "    processing."
 #~ msgstr ""
 #~ "Les NAME sont marqués pour export automatique vers l'environnement des\n"
-#~ "    prochaines commandes exécutées. si l'option « -f » est donnée, les NAME\n"
-#~ "    se rapportent à des fonctions. Si aucun NAME n'est donné ou si « -p »\n"
-#~ "    est fourni, la liste de tous les NAME exportés dans ce shell s'affiche.\n"
-#~ "    L'argument « -n » permet de supprimer la propriété d'export des NAME qui\n"
-#~ "    suivent. L'argument « -- » désactive le traitement des options suivantes."
+#~ "    prochaines commandes exécutées. si l'option « -f » est donnée, les "
+#~ "NAME\n"
+#~ "    se rapportent à des fonctions. Si aucun NAME n'est donné ou si « -p "
+#~ "»\n"
+#~ "    est fourni, la liste de tous les NAME exportés dans ce shell "
+#~ "s'affiche.\n"
+#~ "    L'argument « -n » permet de supprimer la propriété d'export des NAME "
+#~ "qui\n"
+#~ "    suivent. L'argument « -- » désactive le traitement des options "
+#~ "suivantes."
 
 #~ msgid ""
 #~ "The given NAMEs are marked readonly and the values of these NAMEs may\n"
 #~ "    not be changed by subsequent assignment.  If the -f option is given,\n"
 #~ "    then functions corresponding to the NAMEs are so marked.  If no\n"
-#~ "    arguments are given, or if `-p' is given, a list of all readonly names\n"
+#~ "    arguments are given, or if `-p' is given, a list of all readonly "
+#~ "names\n"
 #~ "    is printed.  The `-a' option means to treat each NAME as\n"
 #~ "    an array variable.  An argument of `--' disables further option\n"
 #~ "    processing."
 #~ msgstr ""
-#~ "Les NAME donnés sont marqués pour lecture seule et les valeurs de ces NAME\n"
-#~ "    ne peuvent plus être changés par affection. Si l'option « -f » est donnée,\n"
-#~ "    les fonctions correspondant aux NAME sont marquées de la sorte. Si aucun\n"
-#~ "    argument n'est donné ou si « -p » est fourni, la liste de tous les noms\n"
-#~ "    en lecture seule est affichée. L'option « -a » indique de traiter tous les\n"
-#~ "    NAME comme des variables tableaux. L'argument « -- » désactive le traitement\n"
+#~ "Les NAME donnés sont marqués pour lecture seule et les valeurs de ces "
+#~ "NAME\n"
+#~ "    ne peuvent plus être changés par affection. Si l'option « -f » est "
+#~ "donnée,\n"
+#~ "    les fonctions correspondant aux NAME sont marquées de la sorte. Si "
+#~ "aucun\n"
+#~ "    argument n'est donné ou si « -p » est fourni, la liste de tous les "
+#~ "noms\n"
+#~ "    en lecture seule est affichée. L'option « -a » indique de traiter "
+#~ "tous les\n"
+#~ "    NAME comme des variables tableaux. L'argument « -- » désactive le "
+#~ "traitement\n"
 #~ "    des option suivantes."
 
 #~ msgid ""
@@ -5723,8 +6474,10 @@ msgstr ""
 #~ "    signal.  The `-f' if specified says not to complain about this\n"
 #~ "    being a login shell if it is; just suspend anyway."
 #~ msgstr ""
-#~ "Suspend l'exécution de ce shell jusqu'à ce qu'il reçoive le signal SIGCONT.\n"
-#~ "    Si « -f » est spécifié, il indique de ne pas se plaindre s'il s'agit d'un \n"
+#~ "Suspend l'exécution de ce shell jusqu'à ce qu'il reçoive le signal "
+#~ "SIGCONT.\n"
+#~ "    Si « -f » est spécifié, il indique de ne pas se plaindre s'il s'agit "
+#~ "d'un \n"
 #~ "    shell de connexion, mais de suspendre quand-même."
 
 #~ msgid ""
@@ -5738,60 +6491,85 @@ msgstr ""
 #~ "For each NAME, indicate how it would be interpreted if used as a\n"
 #~ "    command name.\n"
 #~ "    \n"
-#~ "    If the -t option is used, `type' outputs a single word which is one of\n"
-#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n"
-#~ "    alias, shell reserved word, shell function, shell builtin, disk file,\n"
+#~ "    If the -t option is used, `type' outputs a single word which is one "
+#~ "of\n"
+#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is "
+#~ "an\n"
+#~ "    alias, shell reserved word, shell function, shell builtin, disk "
+#~ "file,\n"
 #~ "    or unfound, respectively.\n"
 #~ "    \n"
 #~ "    If the -p flag is used, `type' either returns the name of the disk\n"
 #~ "    file that would be executed, or nothing if `type -t NAME' would not\n"
 #~ "    return `file'.\n"
 #~ "    \n"
-#~ "    If the -a flag is used, `type' displays all of the places that contain\n"
+#~ "    If the -a flag is used, `type' displays all of the places that "
+#~ "contain\n"
 #~ "    an executable named `file'.  This includes aliases, builtins, and\n"
 #~ "    functions, if and only if the -p flag is not also used.\n"
 #~ "    \n"
 #~ "    The -f flag suppresses shell function lookup.\n"
 #~ "    \n"
-#~ "    The -P flag forces a PATH search for each NAME, even if it is an alias,\n"
-#~ "    builtin, or function, and returns the name of the disk file that would\n"
+#~ "    The -P flag forces a PATH search for each NAME, even if it is an "
+#~ "alias,\n"
+#~ "    builtin, or function, and returns the name of the disk file that "
+#~ "would\n"
 #~ "    be executed."
 #~ msgstr ""
-#~ "Indique comment chaque NAME serait interprété s'il était utilisé comme un\n"
+#~ "Indique comment chaque NAME serait interprété s'il était utilisé comme "
+#~ "un\n"
 #~ "    nom de commande.\n"
 #~ "    \n"
-#~ "    Si l'option « -t » est utilisée, « type » affiche un simple mot parmi\n"
-#~ "    « alias », « keyword », « function », « builtin », « file » ou « », si\n"
-#~ "    NAME est respectivement un alias, un mot réservé du shell, une fonction\n"
+#~ "    Si l'option « -t » est utilisée, « type » affiche un simple mot "
+#~ "parmi\n"
+#~ "    « alias », « keyword », « function », « builtin », « file » ou « », "
+#~ "si\n"
+#~ "    NAME est respectivement un alias, un mot réservé du shell, une "
+#~ "fonction\n"
 #~ "    du shell, une primitive, un fichier du disque, ou s'il est inconnu.\n"
 #~ "    \n"
-#~ "    Si l'indicateur « -p » est utilisé, « type » renvoie soit le nom du fichier\n"
-#~ "    du disque qui serait exécuté, soit rien si « type -t NAME » ne retourne pas\n"
+#~ "    Si l'indicateur « -p » est utilisé, « type » renvoie soit le nom du "
+#~ "fichier\n"
+#~ "    du disque qui serait exécuté, soit rien si « type -t NAME » ne "
+#~ "retourne pas\n"
 #~ "    « file ».\n"
 #~ "    \n"
-#~ "    Si « -a » est utilisé, « type » affiche tous les emplacements qui contiennent\n"
-#~ "    un exécutable nommé « file ». Ceci inclut les alias, les primitives et les\n"
+#~ "    Si « -a » est utilisé, « type » affiche tous les emplacements qui "
+#~ "contiennent\n"
+#~ "    un exécutable nommé « file ». Ceci inclut les alias, les primitives "
+#~ "et les\n"
 #~ "    fonctions si, et seulement si « -p » n'est pas également utilisé.\n"
 #~ "    \n"
-#~ "    L'indicateur « -P » force une recherche dans PATH pour chaque NAME même\n"
-#~ "    si c'est un alias, une primitive ou une fonction et renvoie le nom du\n"
+#~ "    L'indicateur « -P » force une recherche dans PATH pour chaque NAME "
+#~ "même\n"
+#~ "    si c'est un alias, une primitive ou une fonction et renvoie le nom "
+#~ "du\n"
 #~ "    fichier du disque qui serait exécuté."
 
 #~ msgid ""
 #~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if\n"
-#~ "    `-S' is supplied, the current value of the mask is printed.  The `-S'\n"
-#~ "    option makes the output symbolic; otherwise an octal number is output.\n"
+#~ "    `-S' is supplied, the current value of the mask is printed.  The `-"
+#~ "S'\n"
+#~ "    option makes the output symbolic; otherwise an octal number is "
+#~ "output.\n"
 #~ "    If `-p' is supplied, and MODE is omitted, the output is in a form\n"
 #~ "    that may be used as input.  If MODE begins with a digit, it is\n"
-#~ "    interpreted as an octal number, otherwise it is a symbolic mode string\n"
+#~ "    interpreted as an octal number, otherwise it is a symbolic mode "
+#~ "string\n"
 #~ "    like that accepted by chmod(1)."
 #~ msgstr ""
-#~ "Le masque de création des fichiers utilisateurs est réglé à MODE. Si MODE\n"
-#~ "    est omis ou si « -S » est fourni, la valeur actuelle du masque est affichée\n"
-#~ "    L'option « -S » rend la sortie symbolique, sinon une valeur octale est\n"
-#~ "    est utilisée. Si « -p » est fourni et que MODE est omis, la sortie se fait\n"
-#~ "    dans un format qui peut être réutilisé comme entrée. Si MODE commence par\n"
-#~ "    un chiffre, il est interprété comme un nombre octal, sinon comme une chaîne\n"
+#~ "Le masque de création des fichiers utilisateurs est réglé à MODE. Si "
+#~ "MODE\n"
+#~ "    est omis ou si « -S » est fourni, la valeur actuelle du masque est "
+#~ "affichée\n"
+#~ "    L'option « -S » rend la sortie symbolique, sinon une valeur octale "
+#~ "est\n"
+#~ "    est utilisée. Si « -p » est fourni et que MODE est omis, la sortie se "
+#~ "fait\n"
+#~ "    dans un format qui peut être réutilisé comme entrée. Si MODE commence "
+#~ "par\n"
+#~ "    un chiffre, il est interprété comme un nombre octal, sinon comme une "
+#~ "chaîne\n"
 #~ "    symbolique de mode comme celle utilisée par « chmod(1) »."
 
 #~ msgid ""
@@ -5824,23 +6602,38 @@ msgstr ""
 #~ "    settable options is displayed, with an indication of whether or\n"
 #~ "    not each is set."
 #~ msgstr ""
-#~ "Commute la valeur des variables qui contrôlent les comportements optionnels.\n"
-#~ "    L'option « -s » indique d'activer chaque option nommée OPTNAME. L'option\n"
-#~ "    « -u » désactive l'option OPTNAME. L'option « -q » rend la sortie silencieuse.\n"
-#~ "    Le code de retour indique si chaque OPTNAME est activée ou désactivée.\n"
-#~ "    L'option « -o » restreint les options OPTNAME à celles qui peuvent être utilisées avec\n"
-#~ "    « set -o ». Sans option ou avec l'option « -p », une liste de toutes les\n"
-#~ "    options modifiables est affichée, avec une indication sur l'état de chacune."
+#~ "Commute la valeur des variables qui contrôlent les comportements "
+#~ "optionnels.\n"
+#~ "    L'option « -s » indique d'activer chaque option nommée OPTNAME. "
+#~ "L'option\n"
+#~ "    « -u » désactive l'option OPTNAME. L'option « -q » rend la sortie "
+#~ "silencieuse.\n"
+#~ "    Le code de retour indique si chaque OPTNAME est activée ou "
+#~ "désactivée.\n"
+#~ "    L'option « -o » restreint les options OPTNAME à celles qui peuvent "
+#~ "être utilisées avec\n"
+#~ "    « set -o ». Sans option ou avec l'option « -p », une liste de toutes "
+#~ "les\n"
+#~ "    options modifiables est affichée, avec une indication sur l'état de "
+#~ "chacune."
 
 #~ msgid ""
 #~ "For each NAME, specify how arguments are to be completed.\n"
-#~ "    If the -p option is supplied, or if no options are supplied, existing\n"
-#~ "    completion specifications are printed in a way that allows them to be\n"
-#~ "    reused as input.  The -r option removes a completion specification for\n"
-#~ "    each NAME, or, if no NAMEs are supplied, all completion specifications."
+#~ "    If the -p option is supplied, or if no options are supplied, "
+#~ "existing\n"
+#~ "    completion specifications are printed in a way that allows them to "
+#~ "be\n"
+#~ "    reused as input.  The -r option removes a completion specification "
+#~ "for\n"
+#~ "    each NAME, or, if no NAMEs are supplied, all completion "
+#~ "specifications."
 #~ msgstr ""
 #~ "Pour chaque NAME, spécifie comment les arguments doivent être complétés.\n"
-#~ "    Si l'option « -p » est fournie ou si aucune option n'est fournie, les spécifications\n"
-#~ "    de complètement actuelles sont affichées de manière à pouvoir être réutilisées\n"
-#~ "    comme entrée. L'option « -r » enlève la spécification de complètement pour chaque\n"
-#~ "    NAME ou, si aucun NAME n'est fourni, toutes les spécifications de complètement."
+#~ "    Si l'option « -p » est fournie ou si aucune option n'est fournie, les "
+#~ "spécifications\n"
+#~ "    de complètement actuelles sont affichées de manière à pouvoir être "
+#~ "réutilisées\n"
+#~ "    comme entrée. L'option « -r » enlève la spécification de complètement "
+#~ "pour chaque\n"
+#~ "    NAME ou, si aucun NAME n'est fourni, toutes les spécifications de "
+#~ "complètement."
index d9152837264878ce9c9bc2842847b21e16c79230..5459301564daaba7784f0f6bf127c69349953c7d 100644 (file)
Binary files a/po/ga.gmo and b/po/ga.gmo differ
index 00ff693807b979049d122e504929d905dd024197..3ad0539f75a0df009af094ef9ba62e4565748575 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,63 +7,64 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\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"
+"Language: ga\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "droch-fhoscript eagair"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 "%s: ní féidir eagar innéacsaithe a thiontú go heagar comhthiomsaitheach"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: eochair neamhbhailí eagair chomhthiomsaithigh"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: ní féidir sannadh go hinnéacs neamhuimhriúil."
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 "%s: %s: caithfear foscript a úsáid le sannadh chuig eagar comhthiomsaitheach"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ní féidir cruthú: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 "bash_execute_unix_command: ní féidir mapa eochrach an ordaithe a aimsiú"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: ní \" é an chéad charachtar nach spás bán é."
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "Níl \"%c\" dúnta i %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: deighilteoir idirstaid ar iarraidh"
@@ -73,36 +74,36 @@ msgstr "%s: deighilteoir idirstaid ar iarraidh"
 msgid "`%s': invalid alias name"
 msgstr "\"%s\": ainm neamhbhailí ar mhapa eochrach "
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "níl eagarthóireacht líne cumasaithe"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "\"%s\": ainm neamhbhailí ar mhapa eochrach "
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: ní féidir léamh: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "\"%s\": ní féidir dícheangail"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "\"%s\": ainm feidhme neamhaithnid"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "Níl %s ceangailte le heochair ar bith.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "Is féidir %s a ghlaoigh trí "
@@ -125,11 +126,15 @@ msgstr ""
 "    \n"
 "    Gan SLONN, aischuirtear "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "Níl HOME socruithe"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "An iomarca argóintí"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "Níl OLDPWD socruithe"
 
@@ -138,7 +143,7 @@ msgstr "Níl OLDPWD socruithe"
 msgid "line %d: "
 msgstr "líne %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "rabhadh: "
@@ -148,11 +153,7 @@ msgstr "rabhadh: "
 msgid "%s: usage: "
 msgstr "%s: úsáid: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "An iomarca argóintí"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: tá argóint riachtanach don rogha"
@@ -167,7 +168,7 @@ msgstr "%s: argóint uimhriúil de dhíth"
 msgid "%s: not found"
 msgstr "%s: gan aimsiú"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: rogha neamhbhailí"
@@ -177,7 +178,7 @@ msgstr "%s: rogha neamhbhailí"
 msgid "%s: invalid option name"
 msgstr "%s: ainm neamhbhailí rogha"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "\"%s\": ní aitheantóir bailí é"
@@ -190,7 +191,7 @@ msgstr "uimhir ochtnártha neamhbhailí"
 msgid "invalid hex number"
 msgstr "uimhir heicsidheachúlach neamhbhailí"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "uimhir neamhbhailí"
 
@@ -204,7 +205,7 @@ msgstr "%s: sonrú neamhbhailí comhartha"
 msgid "`%s': not a pid or valid job spec"
 msgstr "\"%s\": ní aitheantas próisis nó sonrú jab bailí é"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: athróg inléite amháin"
@@ -276,28 +277,28 @@ msgstr "%s: earráid ag fáil na comhadlainne reatha: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: sonrú jab athbhríoch"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: ainm neamhbhailí gnímh"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: níl sonrú iomlánaithe ann."
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 "Rabhadh: b'fhéidir nach n-oibríonn an rogha -F mar a bheifeá ag súil leis."
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 "Rabhadh: b'fhéidir nach n-oibríonn an rogha -C mar a bheifeá ag súil leis."
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "níl an fheidhm chomhlánaithe á rith faoi láthair"
 
@@ -309,7 +310,7 @@ msgstr "Inúsáidte i bhfeidhmeanna amháin. "
 msgid "cannot use `-f' to make functions"
 msgstr "Ní féidir \"-f\" a úsáid chun feidhmeanna a dhéanamh"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: feidhm inléite amháin"
@@ -319,7 +320,7 @@ msgstr "%s: feidhm inléite amháin"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: ní féidir athróga eagair a scrios mar seo."
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -349,8 +350,8 @@ msgstr "%s: níl sé luchtaithe go dinimiciúil"
 msgid "%s: cannot delete: %s"
 msgstr "%s: ní féidir scrios: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: is comhadlann é"
@@ -365,8 +366,7 @@ msgstr "%s: ní gnáthchomhad é"
 msgid "%s: file is too large"
 msgstr "%s: tá an comhad ró-mhór"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ní féidir comhad dénártha a rith"
@@ -490,7 +490,7 @@ msgstr "Ní féidir níos mó ná ceann amháin as -anrw a úsáid."
 msgid "history position"
 msgstr "suíomh staire"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: theip ar fhairsingiú staire."
@@ -513,7 +513,7 @@ msgstr "%s: is gá le argóintí bheith ina aitheantais phróisis nó jab"
 msgid "Unknown error"
 msgstr "Earráid neamhaithnid"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "Ag súil le slonn"
 
@@ -522,12 +522,12 @@ msgstr "Ag súil le slonn"
 msgid "%s: not an indexed array"
 msgstr "%s: ní athróg eagair é"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: sonrú neamhbhailí tuairisceora comhaid"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
@@ -555,31 +555,31 @@ msgstr "ainm folamh athróga eagair"
 msgid "array variable support required"
 msgstr "tacaíocht le hathróga eagair de dhíth"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "\"%s\": carachtar formáide ar iarraidh."
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: sonrú neamhbhailí teorann ama"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "\"%c\": carachtar formáide neamhbhailí."
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "rabhadh: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "digit heicsidheachúlach ar iarraidh le haghaidh \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "digit heicsidheachúlach ar iarraidh le haghaidh \\x"
@@ -670,17 +670,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: sonrú neamhbhailí teorann ama"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "earráid léite: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 "ní féidir \"return\" a dhéanamh ach ó fheidhm nó ó script rite le \"source\""
@@ -689,17 +689,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "Ní féidir feidhm agus athróg a dhíshocrú ag an am céanna."
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: ní féidir díshocrú"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: ní féidir díshocrú: %s inléite amháin"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ní athróg eagair é"
@@ -713,11 +713,11 @@ msgstr "%s: ní feidhm é."
 msgid "shift count"
 msgstr "comhaireamh iomlaoide"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "Ní féidir roghanna blaoisce a shocrú agus a dhíshocrú ag an am céanna."
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ainm neamhbhailí ar rogha blaoisce"
@@ -759,7 +759,7 @@ msgstr "Is feidhm é %s.\n"
 msgid "%s is a shell builtin\n"
 msgstr "Is ordú ionsuite blaoisce é %s\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "Tá %s %s\n"
@@ -769,26 +769,26 @@ msgstr "Tá %s %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "Tá %s haiseáilte (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: argóint teorann neamhbhailí"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "\"%c\": droch-ordú"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: ní féidir teorainn a fháil: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "teorainn"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: ní féidir teorainn a athrú: %s"
@@ -807,7 +807,7 @@ msgstr "\"%c\": oibreoir neamhbhailí móid shiombalaigh"
 msgid "`%c': invalid symbolic mode character"
 msgstr "\"%c\": carachtar neamhbhailí móid shiombalaigh"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " líne "
 
@@ -821,23 +821,23 @@ msgstr "Ordú deireanach: %s\n"
 msgid "Aborting..."
 msgstr "Ag tobscor..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "earráid ordaithe neamhaithnid"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "droch-chineál ordaithe"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "drochnascóir"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "drochléim"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: athróg neamhcheangailte"
@@ -852,103 +852,118 @@ msgstr "\aimithe thar am ag feitheamh le hionchur: logáil amach uathoibríoch\n
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "Ní féidir an ionchur caighdeánach a atreorú ó /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "FORMÁID_AMA: \"%c\": carachtar formáide neamhbhaií."
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "earráid phíopa"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: srianta: ní féidir \"/\" a shonrú in ainmneacha ordaithe"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: níor aimsíodh an t-ordú"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "Tá %s %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: drochléirmhínitheoir"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ní féidir comhad dénártha a rith"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "Is ordú ionsuite blaoisce é %s\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 "Ní féidir an tuairisceoir comhaid %d a dhúbailt mar thuairisceoir comhaid %d."
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "imithe thar leibhéal athchursála sloinn"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "gannsreabhadh na cruaiche athchúrsála"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "Earráid chomhréire sa slonn."
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "Deineadh iarracht sannadh go rud nach athróg é."
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "roinnt ar 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "fabht: droch-chomhartha expassign"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "Bhíothas ag súil le \":\" le haghaidh sloinn choinníollaigh."
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "Easpónant níos lú ná 0."
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "ag súil le aitheantóir tar éis réamhincriminte nó réamhdeicriminte"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "\")\" ar iarraidh"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "Earráid chomhréire: bhíothas ag súil le hoibreann."
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "earráid chomhréire: oibreoir neamhbhailí uimhríochta"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (comhartha earráide \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "Bonnuimhir uimhríochtúil neamhbhailí."
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "Tá an luach rómhór don bhonnuimhir."
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: earráid sloinn\n"
@@ -957,169 +972,169 @@ msgstr "%s: earráid sloinn\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: ní féidir na máthairchomhadlanna a rochtain."
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 "ní féidir an mód gan mhoill a athshocrú le haghaidh an tuairisceora chomhaid "
 "%d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "Ní féidir tuairisceoir comhaid nua a leithdháileadh le haghaidh ionchur bash "
 "ón tuairisceoir comhaid %d."
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 "save_bash_input: tá an maolán ann cheana le haghaidh an tuairisceoir comhaid "
 "nua %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp píopa"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "tá an aitheantas an phróisis ghabhlaithe %d sa jab %d atá ag rith"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "Tá an jab stoptha %d leis an ngrúpa próisis %ld á scrios."
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: próiseas %5ld (%s) sa phíblíne"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: próiseas %5ld (%s) marcáilte mar fós beo"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: níl an aitheantóir próisis sin ann."
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Comhartha %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Déanta"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stoptha"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoptha(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Ag Rith"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Déanta(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Scoir %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Stádas neamhaithnid"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(cuimhne dumpáilte)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (comhadlann oibre: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid macphróisis (%ld go %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: níl an próiseas %ld ina mhacphróiseas den bhlaosc seo."
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: níl taifead den phróiseas %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: tá an jab %d stoptha."
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: tá an jab críochnaithe."
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: tá an jab %d sa chúlra cheana."
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: líne %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (cuimhne dumpáilte)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(comhadlann oibre anois: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: theip ar getpgrp"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: araíonacht líne"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "ní féidir grúpa próisis teirminéil a shocrú (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "Níl rialú jabanna sa bhlaosc seo."
 
@@ -1189,7 +1204,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: an bhfuil %p sa tábla cheana mar ceann saor?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "Bonn neamhbhailí"
 
@@ -1212,22 +1227,22 @@ msgstr "%s: drochshonrú conaire líonra"
 msgid "network operations not supported"
 msgstr "Ní thacaítear le oibríochtaí líonra."
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: %s:%d: ní féidir %lu beart a leithdháileadh"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: %s:%d: ní féidir %lu beart a leithdháileadh"
@@ -1258,124 +1273,124 @@ msgstr "Earráid chomhréire: \";\" gan súil leis."
 msgid "syntax error: `((%s))'"
 msgstr "Earráid chomhréire: \"((%s))\""
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: drochchineál ordaithe %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 "cáipéis leabaithe ag líne %d teormharcáilte le deireadh comhaid (\"%s\" á "
 "lorg)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: ordú atreoraithe \"%d\" as raon."
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "Deireadh comhaid gan súil leis agus \"%c\" a mheaitseálann á lorg."
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "Deireadh comhaid gan súil leis agus \"]]\" á lorg."
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 "Earráid chomhréire i slonn coinníollach: comhartha \"%s\" gan suil leis."
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "Earráid chomhréire i slonn coinníollach."
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "Comhartha \"%s\" gan súil leis; ag súil le \")\"."
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "Ag súil le \")\""
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "Argóint \"%s\" gan súil lei go hoibreoir aonártha coinníollach."
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "Argóint gan súil lei go hoibreoir coinníollach aonártha ."
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 "Comhartha \"%s\" gan súil leis. Bhíothas ag súil le hoibreoir coinníollach "
 "dénártha."
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "Bhíothas ag súil le hoibreoir coinníollach dénártha."
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "Argóint \"%s\" gan súil lei go hoibreoir dénártha coinníollach."
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "Argóint gan súil lei go hoibreoir dénártha coinníollach."
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "Comhartha \"%c\" gan súil leis in ordú coinníollach."
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "Comhartha \"%s\" gan súil leis in ordú coinníollach."
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "Comhartha %d gan súil leis in ordú coinníollach."
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 "Earráid chomhréire in aice comhartha \"%s\" nach rabhthas ag súil leis."
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "Earráid chomhréire in aice \"%s\""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "Earráid chomhréire: deireadh comhaid gan súil leis."
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "Earráid chomhréire"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Úsáid \"%s\" le scoir den mblaosc.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "Deireadh comhaid gan súil leis agus \")\" á lorg le meaitseáil."
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "Iomlánú: níor aimsíodh an fheidhm \"%s\"."
@@ -1385,26 +1400,26 @@ msgstr "Iomlánú: níor aimsíodh an fheidhm \"%s\"."
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: tá COMPSPEC neamhnitheach"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: drochnascóir \"%d\""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": carachtar formáide neamhbhailí"
@@ -1442,33 +1457,33 @@ msgstr "%s: ní féidir liosta a shannadh go ball eagair."
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "Ní thacaítear le /dev/(tcp|udp)/óstríomhaire/port gan líonrú."
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "Earráid atreoraithe: ní féidir an tuairisceoir comhaid a dhúbailt."
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "Níorbh fhéidir /tmp a aimsiú. Cruthaigh é le do thoil!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "Caithfidh /tmp bheith ina ainm comhadlainne bailí."
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: rogha neamhbhailí"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Níl ainm orm!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, leagan %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1477,43 +1492,43 @@ msgstr ""
 "Úsáid:\t%s [rogha fada GNU] [rogha] ...\n"
 "\t%s [rogha fada GNU] [rogha] comhad_scripte ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Roghanna fada GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Roghanna blaoisce:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD nó -c ordú nó -O rogha_shopt\t\t(glaoch amháin)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s nó -o rogha\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Úsáid %s -c \"help set\" le haghaidh tuilleadh eolais faoi roghanna "
 "blaoisce.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Úsáid \"%s -c help\" le haghaidh tuilleadh eolais faoi orduithe ionsuite "
 "blaoisce.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Úsáid an t-ordú \"bashbug\" le tuarascáil a sheoladh faoi fhabht.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: oibríocht neamhbhailí"
@@ -1687,86 +1702,86 @@ msgstr "Comhartha neamhaithnid #"
 msgid "Unknown Signal #%d"
 msgstr "Comhartha neamhaithnid #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "Drochionadú: níl \"%s\" dúnta i %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: ní féidir liosta a shannadh go ball eagair."
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "Ní féidir píopa a dhéanamh le haghaidh ionadaíocht próisis."
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "Ní féidir macphróiseas a dhéanamh le haghaidh ionadaíocht próisis."
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "Ní féidir píopa ainmnithe %s a oscailt le haghaidh léamh."
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "Ní féidir píopa ainmnithe %s a oscailt le haghaidh scríofa."
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 "Ní féidir an píopa ainmnithe %s a dhúbailt mar thuairisceoir comhaid %d."
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "Ní féidir píopa a dhéanamh le haghaidh ionadú ordaithe."
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "Ní féidir macphróiseas a dhéanamh le haghaidh ionadú ordaithe."
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 "command_substitute: ní feidir an píopa a dhúbailt mar thuairisceoir comhaid "
 "1."
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: paraiméadar neamhnitheach nó gan socrú."
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: slonn fotheaghráin < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: drochionadú"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: ní féidir sannadh mar seo."
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "drochionadú: níl  \"`\" dúnta i %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "gan meaitseáil: %s"
@@ -1803,16 +1818,16 @@ msgstr "%s: ag súil le hoibreoir dénártha."
 msgid "missing `]'"
 msgstr "\"]\" ar iarraidh"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "Uimhir chomhartha neamhbhailí"
 
-#: trap.c:337
+#: trap.c:329
 #, 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:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1820,62 +1835,62 @@ msgstr ""
 "run_pending_traps: is SIG_DFL an láimhseálaí comharthaí; %d (%s) á "
 "athsheoladh chugam féin."
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: droch-chomhartha %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "Earráid agus sainmhíniú na feidhme \"%s\" á iompórtáil."
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "Tá an leibhéal blaoisce (%d) ró-ard; á athshocrú go 1."
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: níl comhthéacs feidhme sa scóip reatha."
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: níl comhthéacs feidhme sa scóip reatha"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: paraiméadar neamhnitheach nó gan socrú."
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "Carachtar neamhbhailí %d sa teaghrán easpórtála le haghaidh %s."
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "Níl \"=\" sa teaghrán easpórtála le haghaidh %s."
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: ní comhthéacs feidhme é ceann shell_variables"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: níl comhthéacs global_variables ann"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: ní scóip shealadach thimpeallachta é ceann shell_variables"
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: ní féidir oscailt: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: tuairisceoir comhaid neamhbhailí: %s"
@@ -1955,7 +1970,7 @@ msgstr "unalias [-a] ainm [ainm ...]"
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2164,7 +2179,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] ainm [ainm ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [teorainn]"
 
 #: builtins.c:172
@@ -2172,7 +2188,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mód]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [aitheantas]"
 
 #: builtins.c:179
@@ -2385,12 +2402,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2408,7 +2427,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Is é 0 an stádas scortha mura bhfuil N níos lú ná 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2427,7 +2446,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Is é 0 an stádas scortha mura bhfuil N níos lú ná 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2452,7 +2471,7 @@ msgstr ""
 "bhfuil\n"
 "    ORDÚ-IONSUITE-BLAOISCE ina ordú ionsuite blaoisce."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2482,7 +2501,7 @@ msgstr ""
 "blaoisce, nó\n"
 "    sa chás go bhfuil SLONN neamhbhailí."
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2505,13 +2524,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2519,7 +2543,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2547,7 +2571,7 @@ msgstr ""
 "    Aischuirtear luach de 0 mura thugtar rogha neamhbhailí nó mura féidir\n"
 "    an chomhadlann reatha a léamh."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2563,7 +2587,7 @@ msgstr ""
 "    Stadas Scortha:\n"
 "    Éiríonn leis i gcónaí."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2575,7 +2599,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Éiríonn leis i gcónaí."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2587,7 +2611,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Teipeann air i gcónaí."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2623,7 +2647,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear an stádas scortha ó ORDÚ, nó teip mura aimsítear ORDÚ."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2661,7 +2685,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2671,7 +2695,7 @@ msgstr ""
 "    \n"
 "    Imithe i léig. Feic \"help declare\"."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2701,11 +2725,14 @@ msgstr ""
 "earráid,\n"
 "    nó mura bhfuil an bhlaosc ag rith feidhme."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2717,6 +2744,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2760,7 +2788,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear rath ach i gcás earráide scríofa."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2782,7 +2810,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear rath ach i gcás earráide scríofa."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2809,7 +2837,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2829,7 +2857,7 @@ msgstr ""
 "    Aischuirtear stádas scortha an ordaithe, nó rath más ordú neamhnitheach "
 "é."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2870,7 +2898,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2893,7 +2921,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2905,7 +2933,7 @@ msgstr ""
 "    Scoireann den bhlaosc le stádas N. Má fhágtar N ar lár, is é stádas\n"
 "    an chéad ordaithe deireanaigh an stádas scortha."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2918,7 +2946,7 @@ msgstr ""
 "    Scoireann de bhlaosc logála isteach le stádas scortha N. Aischuirtear\n"
 "    earráid má ritear é i mblaosc nach blaosc logála isteach í."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2973,7 +3001,7 @@ msgstr ""
 "    Stádas Scortha:n\\     Aischuirtear rath nó stádas an ordaithe rite; "
 "neamh-nialas má tharlaíonn earráid."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2994,7 +3022,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Stádas an ordaithe curtha sa tulra, nó teip má tharlaíonn earráid."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3018,7 +3046,7 @@ msgstr ""
 "    Aischuirtear rath ach má tharlaíonn earráid nó mura bhfuil\n"
 "    rialú jabanna cumasaithe."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3042,7 +3070,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3083,7 +3111,7 @@ msgstr ""
 "    Aischuirtear rath ach sa chás nach n-aimsítear PATRÚN nó go dtugtar\n"
 "    rogha neamhbhailí."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3117,7 +3145,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3141,7 +3169,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3172,7 +3200,7 @@ msgstr ""
 "    Aischuirtear rath ach sa chás go dtugtar rogha neamhbhailí\n"
 "    nó SONRÚ_JAB neamhbhailí."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3194,7 +3222,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3239,7 +3267,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3276,18 +3304,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3309,7 +3340,7 @@ msgstr ""
 "    Aischuirtear N, nó teip sa chás nach bhfuil an bhlaosc ag rith feidhme "
 "nó scripte."
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3375,7 +3406,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3394,7 +3425,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3414,7 +3445,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3433,7 +3464,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3453,7 +3484,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3464,7 +3495,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3478,7 +3509,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3492,7 +3523,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3573,7 +3604,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3586,7 +3617,7 @@ msgstr ""
 "    caithfear \"]\" go díreach a bheith ann mar an argóint\n"
 "    dheireanach, le bheith comhoiriúnach leis an \"[\" ag an tús."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3606,7 +3637,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Éiríonn leis i gcónaí."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3650,7 +3681,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3680,7 +3711,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3709,6 +3740,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3724,7 +3758,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3742,24 +3776,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3773,7 +3807,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3786,7 +3820,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3817,7 +3851,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3837,7 +3871,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3853,7 +3887,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3864,7 +3898,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3885,7 +3919,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3896,7 +3930,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3907,7 +3941,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3920,7 +3954,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3944,7 +3978,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear rath mura bhfuil AINM inléite amháin."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3962,7 +3996,7 @@ msgstr ""
 "    Stádas Scortha:\n"
 "    Aischuirtear stádas an ordaithe dheireanaigh a ritheadh."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3976,7 +4010,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3987,7 +4021,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4015,7 +4049,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4069,7 +4103,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4100,7 +4134,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4127,7 +4161,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4156,7 +4190,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4177,7 +4211,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4195,8 +4229,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -4210,7 +4244,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4237,7 +4271,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -4260,7 +4294,7 @@ msgstr ""
 "    Aischuirtear rath mura thugtar rogha neamhbhailí agus mura tharlaíonn "
 "earráid."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4291,7 +4325,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4332,7 +4366,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
diff --git a/po/gl.gmo b/po/gl.gmo
new file mode 100644 (file)
index 0000000..43ab727
Binary files /dev/null and b/po/gl.gmo differ
index 46ade7c66da6473c6ebba86dd11b6d74a0341140..aafca126fa50015031cf3ddc2e0699a7d78fb0cc 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2012-02-23 14:38+0100\n"
 "Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -23,50 +23,52 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "subíndice de matriz incorrecto"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: non é posíbel converter a matriz de indizada a asociativa"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: índice de matriz asociativa non válido"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: non é posíbel asignar a un índice que non é numérico"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: se debe usar un subíndice ao asignar a unha matriz asociativa"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: non foi posíbel crear: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: non foi posíbel atopar a combinación de teclas para a orde"
+msgstr ""
+"bash_execute_unix_command: non foi posíbel atopar a combinación de teclas "
+"para a orde"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: o primeiro carácter que non é espazo en branco non é `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "no hai un `%c' que peche en %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: falta un `:' separador"
@@ -76,36 +78,36 @@ msgstr "%s: falta un `:' separador"
 msgid "`%s': invalid alias name"
 msgstr "`%s': nome de alias non válido"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "no se activó a edición de liña"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': nome de combinación de teclas non válido"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: non se pode leer: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: non se pode borrar a asignación"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': nome de función descoñecido"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s non está asignado a ningunha tecla.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s pódese invocar a través de "
@@ -128,11 +130,15 @@ msgstr ""
 "    \n"
 "    Sen EXPR, devovle "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME non está definido"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "demasiados argumentos"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD non está definido"
 
@@ -141,7 +147,7 @@ msgstr "OLDPWD non está definido"
 msgid "line %d: "
 msgstr "liña %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "aviso: "
@@ -151,11 +157,7 @@ msgstr "aviso: "
 msgid "%s: usage: "
 msgstr "%s: uso: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "demasiados argumentos"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: a opción require un argumento"
@@ -170,7 +172,7 @@ msgstr "%s: requírese un argumento numérico"
 msgid "%s: not found"
 msgstr "%s: non se atopou"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: opción non válida"
@@ -180,7 +182,7 @@ msgstr "%s: opción non válida"
 msgid "%s: invalid option name"
 msgstr "%s: nome de opción non válido"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': non é un identificador válido"
@@ -193,7 +195,7 @@ msgstr "número octal non válido"
 msgid "invalid hex number"
 msgstr "número hexadecimal non válido"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "número non válido"
 
@@ -207,7 +209,7 @@ msgstr "%s: especificación de sinal non válida"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': no é un pid ou unha especificación válida de traballo"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variábel de só lectura"
@@ -279,26 +281,26 @@ msgstr "%s: erro ao obtener o directorio actual: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: especificación de traballo ambigüa"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: nome de acción non válido"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: non hai completado de especificación"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "aviso: é posíbel que a opción -F non funcione como se espera"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "aviso: é posíbel que a opción -C non funcione como se espera"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "non se está executando a función de completado"
 
@@ -310,7 +312,7 @@ msgstr "só se pode usar dentro dunha función"
 msgid "cannot use `-f' to make functions"
 msgstr "non se pode use `-f' para facer funcións"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: función de só lectura"
@@ -320,7 +322,7 @@ msgstr "%s: función de só lectura"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: non é posíbel destruír variábeis de matriz desta forma"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: non é posíbel converter unha matriz asociativa a indizada"
@@ -349,8 +351,8 @@ msgstr "%s: non foi cargado dinamicamente"
 msgid "%s: cannot delete: %s"
 msgstr "%s: non foi posíbel eliminar: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: é un directorio"
@@ -365,8 +367,7 @@ msgstr "%s: non é un ficheiro regular"
 msgid "%s: file is too large"
 msgstr "%s: o ficheiro é demasiado grande"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: non é posíbel executar o ficheiro binario"
@@ -450,8 +451,11 @@ msgstr[1] "Orde do shell que coincide coas palabras `"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "non hai temas de axuda que coincidan con «%s». Probe «help help» ou «man -k %s» ou «info %s»"
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"non hai temas de axuda que coincidan con «%s». Probe «help help» ou «man -k "
+"%s» ou «info %s»"
 
 #: builtins/help.def:185
 #, c-format
@@ -473,7 +477,8 @@ msgstr ""
 "ver esta lista.\n"
 "Teclee `help nome' para saber máis sobre a función `nome'.\n"
 "Use `info bash' para saber máis sobre o shell en xeral.\n"
-"Use `man -k' o `info' para saber máis sobre as órdenes que non están nesta lista.\n"
+"Use `man -k' o `info' para saber máis sobre as órdenes que non están nesta "
+"lista.\n"
 "\n"
 "Un asterisco (*) xunto a un nome significa que a orde está desactivada.\n"
 "\n"
@@ -486,7 +491,7 @@ msgstr "non foi posíbel usar máis dun de -anrw"
 msgid "history position"
 msgstr "posición no historial"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: fallou a expansión do historial"
@@ -509,7 +514,7 @@ msgstr "%s: os argumentos deben ser procesos ou IDs de traballos"
 msgid "Unknown error"
 msgstr "Erro descoñecido"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "agardábase unha expresión"
 
@@ -518,12 +523,12 @@ msgstr "agardábase unha expresión"
 msgid "%s: not an indexed array"
 msgstr "%s: non é unha matriz indizada"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: especificación de descritor de ficheiro non válida"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descritor de ficheiro non válido: %s"
@@ -551,31 +556,31 @@ msgstr "nome de variábel de matriz baleiro"
 msgid "array variable support required"
 msgstr "requírese a compatibilidade de variábel de matriz"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': falta o carácter de formato"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': especificación de formato de tempo non válida"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': carácter de formato non válido"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "aviso: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "falta o díxito hexadecimal para \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "falta o díxito unicode para \\%c"
@@ -611,10 +616,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Mostra a lista de directorios actualmente gravados.  Os directorios\n"
@@ -720,17 +727,17 @@ msgstr ""
 "    \n"
 "    A orde interna `dirs' mostra a pila de directorios."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: especificación de tempo de expiración non válida"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "erro de lectura: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "só se pode usar «return» nunha función ou guión lido con «source»"
 
@@ -738,17 +745,17 @@ msgstr "só se pode usar «return» nunha función ou guión lido con «source»
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "non é posíbel borrar ao mesmo tempo unha función e unha variábel"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: non é posíbel borrar"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: non é posíbel borrar: %s é de só lectura"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: non é unha variábel de matriz"
@@ -762,11 +769,11 @@ msgstr "%s: non é unha función"
 msgid "shift count"
 msgstr "conta de shift"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "non é posíbel activar e desactivar opcións do shell simultaneamente"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nome de opción do shell non válido"
@@ -808,7 +815,7 @@ msgstr "%s é unha función\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s é unha orde interna do shell\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s é %s\n"
@@ -818,26 +825,26 @@ msgstr "%s é %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s está asociado (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: límite de argumento non válido"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': orde errónea"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: non é posíbel obter o límite: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "límite"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: non é posíbel modificar o límite: %s"
@@ -856,7 +863,7 @@ msgstr "`%c': operador de modo simbólico non válido"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': carácter de modo simbólico non válido"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " liña "
 
@@ -870,23 +877,23 @@ msgstr "última orde: %s\n"
 msgid "Aborting..."
 msgstr "Abortando…"
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "erro de orde descoñecido"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "tipo de orde erróneo"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "conector erróneo"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "salto erróneo"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variable sen asignar"
@@ -901,102 +908,118 @@ msgstr "\aexpirou mentres agardaba algunha entrada: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "non é posíbel redirixir a saída estándar desde /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': carácter de formato non válido"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "erro de canalización"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restrinxido: non se pode especificar `/' en nomes de ordes"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: non se atopou a orde"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: intérprete erróneo"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: non é posíbel executar o ficheiro binario"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s é unha orde interna do shell\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "no se pode duplicar o df %d ao df %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "excedeuse o nivel de recursión da expresión"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "desbordamento da base da pila de recursión"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "erro de sintaxe na expresión"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "tentouse asignar a algo que non é unha variábel"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "división entre 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "erro: elemento de asignación de expresión erróneo"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "agardábase `:' para a expresión condicional"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "expoñente menor que 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr "agardábase un identificador despois do pre-incremento ou pre-decremento"
+msgstr ""
+"agardábase un identificador despois do pre-incremento ou pre-decremento"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "falta un `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "erro de sintaxe: agardábase un operando"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "erro de sintaxe: operador aritmético non válido"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (o elemento de erro é \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "base aritmética non válida"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valor demasiado grande para a base"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: erro de expresión\n"
@@ -1005,163 +1028,166 @@ msgstr "%s: erro de expresión\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: non é posíbel acceder aos directorios pai"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "non é posíbel restabelecer o modo nodelay para o df %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "non é posíbel asignar un novo descritor de ficheiros para a entrada de bash desde o fd %d"
+msgstr ""
+"non é posíbel asignar un novo descritor de ficheiros para a entrada de bash "
+"desde o fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr "save_bash_input: o almacenamento intermedio xa existe para o novo fd %d"
+msgstr ""
+"save_bash_input: o almacenamento intermedio xa existe para o novo fd %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: tubería de pgrp"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "o pid `forked' %d aparece no traballo en execución %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "borrando o trabajo detido %d con grupo de proceso %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: o proceso %5ld (%s) en the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) márcase como vivo aínda"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: non existe tal pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Sinal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Feito"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Detido"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Detido(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "En execución"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Feito(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Saída %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Estado descoñecido"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(«core» xerado) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (dir agora: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid fillo (%ld a %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld non é un proceso fillo desta shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Non hai un rexistro do proceso %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: o traballo %d está detido"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: o traballo rematou"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: o trabajo %d xa está en segundo plano"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: actívase WNOHANG para evitar o bloque indefinido"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: liña %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " («core» generado)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(dir agora: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs_control: fallou getpgrp"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs_control: disciplina de liña"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "non é posíbel estabelecer o grupo de procesos de terminal (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "non hai control de trabalos nesta shell"
 
@@ -1209,7 +1235,8 @@ msgstr "realloc: chamouse cun argumento de bloque sen asignar"
 
 #: lib/malloc/malloc.c:1016
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr "realloc: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"
+msgstr ""
+"realloc: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"
 
 #: lib/malloc/malloc.c:1022
 msgid "realloc: start and end chunk sizes differ"
@@ -1230,7 +1257,7 @@ msgstr "register_alloc: %p xa está na táboa como asignado?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p xa está na táboa como libre?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "base non válida"
 
@@ -1253,22 +1280,23 @@ msgstr "%s: especificación de ruta de rede errónea"
 msgid "network operations not supported"
 msgstr "non hai compatibilidade para operacións de rede"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL non se pode cambiar a configuración rexional (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr "setlocale: LC_ALL: non se pode cambiar a configuración rexional (%s): %s"
+msgstr ""
+"setlocale: LC_ALL: non se pode cambiar a configuración rexional (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s): %s"
@@ -1299,118 +1327,120 @@ msgstr "error sintáctico: `;' non esperado"
 msgid "syntax error: `((%s))'"
 msgstr "erro de sintaxe: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipo de instrución %d erróneo"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "o documento-aquí na liña %d está delimitado por fin-de-fichero (agardábase `%s')"
+msgstr ""
+"o documento-aquí na liña %d está delimitado por fin-de-fichero (agardábase `"
+"%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: a instrucción de redirección `%d' está fóra de rango"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "EOF inesperado mentres se buscaba un `%c' coincidente"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "EOF inesperado mentres se buscaba `]]'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "error de sintaxe na expresión condicional: elemento inesperado `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "error sintáctico na expresión condicional"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "elemento inesperado `%s', agardábase `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "agardábase `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argumento inesperado `%s' para o operador unario condicional"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "argumento inesperado para o operador unario condicional"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "elemento inesperado `%s', agardábase un operador binario condicional"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "agardábase un operador binario condicional"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argumento inesperado `%s' para o operador binario condicional"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "argumento inesperado para o operador binario condicional"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "elemento inesperado `%c' na orde condicional"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "elemento inesperado `%s' na orde condicional"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "elemento inesperado %d na orde condicional"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "error de sintaxe perto do elemento inesperado `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "erro de sintaxe cerca de «%s»"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "error de sintaxe: non se agardaba o final do fichero"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "erro de sintaxe"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use «%s» para deixar o shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF non agardado mentres se buscaba un «)» coincidente"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: non se atopa a función `%s'"
@@ -1420,26 +1450,26 @@ msgstr "completion: non se atopa a función `%s'"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: COMPSPEC nulo"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector erróneo `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: descriptor de fichero non válido"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: punteiro a ficheiro NULL"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': carácter de formato non válido"
@@ -1477,33 +1507,33 @@ msgstr "%s: non é posíbel asignar o gd á variábel"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "non se admite /dev/(tcp|udp)/anfitrion/porto sen rede"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "erro de redirección: non é posíbel duplicar o fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "non é posíbel atopar /tmp, por favor creeo!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp debe ser un nome de directorio válido"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opción non válida"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Non teño nome!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versión %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1512,39 +1542,43 @@ msgstr ""
 "Uso:\t%s [opción GNU longa] [opción] ...\n"
 "\t%s [opción GNU longa] [opción] guión-do-shell\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Opcións GNU longas:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opcións do shell:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD o -c orde ou -O opcion_shopt\t\t(só invocación)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ou -o opción\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Escriba `%s -c \"help set\"' para máis información sobre as opcións do shell.\n"
+msgstr ""
+"Escriba `%s -c \"help set\"' para máis información sobre as opcións do "
+"shell.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Escriba `%s -c help' para máis información sobre as ordes internas do shell.\n"
+msgstr ""
+"Escriba `%s -c help' para máis información sobre as ordes internas do "
+"shell.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Use a orden `bashbug' para reportar erros.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operación non válida"
@@ -1718,81 +1752,85 @@ msgstr "Sinal descoñecido #"
 msgid "Unknown Signal #%d"
 msgstr "Sinal descoñecido #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "susbtitución errónea: non hai un `%s' que peche en %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: no é posíbel asignar unha lista a un membro da matriz"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "non é posíbel crear a tubería para a sustitución do proceso"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "non é posíbel crear un proceso fillo para a substitución do proceso"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "non é posíbel abrir a tubería chamada %s para lectura"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "non é posíbel abrir a tubería chamada %s para escritura"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "non é posíbel duplicar a tubería chamada %s como df %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "non é posíble crear a tubería para a substitución da orde"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "non é posíbel crear un proceso fillo para a substitución da orde"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: non é posíbel duplicar a tubería como fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parámetro nulo ou non estabelecido"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expresión de subcadea < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: substitución errónea"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: non é posíbel asignar de esta forma"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "versiones futuras do intérprete obligarán a evaluación como unha substitución aritmética"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"versiones futuras do intérprete obligarán a evaluación como unha "
+"substitución aritmética"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substitución errónea: non hai unha \"`\" que peche en %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "non hai concidencia: %s"
@@ -1829,76 +1867,81 @@ msgstr "%s: agardábase un operador binario"
 msgid "missing `]'"
 msgstr "falta un «]»"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "número de sinal non válido"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: o manexador de sinal é SIG_DFL, reenviando %d (%s) a sí mesmo"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: o manexador de sinal é SIG_DFL, reenviando %d (%s) a sí "
+"mesmo"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: sinal errónea %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "erro ao importar a definición da función para «%s»"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "o nivel de shell (%d) é demasiado alto, restabelécese a 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: non hai contexto de función no ámbito actual"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: non hai contexto de función no ámbito actual"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s ten exportstr nulo"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "carácter non válido %d en exportsrt para %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "non hai «=» en exportstr para %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: a cabezak de shell_variables non é un contexto de función"
+msgstr ""
+"pop_var_context: a cabezak de shell_variables non é un contexto de función"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: non é un contexto global_variables "
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope: a cabeza de shell_variables non é un ámbito de ambiente temporal"
+msgstr ""
+"pop_scope: a cabeza de shell_variables non é un ámbito de ambiente temporal"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: non é posíbel abrir como FICHEIRO"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"
@@ -1908,8 +1951,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licenza GPLv3+: GPL de GNU versión 3 ou posterior <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenza GPLv3+: GPL de GNU versión 3 ou posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1933,8 +1980,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licenza GPLv2+: GPL de GNU versión 2 ou posterior <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenza GPLv2+: GPL de GNU versión 2 ou posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1965,8 +2016,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nome [nome ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m comb_teclas] [-f ficheiro] [-q nome] [-u nome] [-r secteclas] [-x secteclas:orde-shell] [keyseq:función-readline ou función-readline]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m comb_teclas] [-f ficheiro] [-q nome] [-u nome] [-r "
+"secteclas] [-x secteclas:orde-shell] [keyseq:función-readline ou función-"
+"readline]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2073,8 +2130,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [patrón ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d desprazamento] [n] ou history -anrw [ficheiro] ou history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d desprazamento] [n] ou history -anrw [ficheiro] ou history -"
+"ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2085,16 +2146,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [id_traballo ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s id_sinal | -n num_sinal | -id_sinal] pid | id_traballo ... ou kill -l [id_sinal]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s id_sinal | -n num_sinal | -id_sinal] pid | id_traballo ... ou kill -"
+"l [id_sinal]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p prompt] [-t timeout] [-u fd] [nome ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p "
+"prompt] [-t timeout] [-u fd] [nome ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2153,7 +2222,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nome [nome ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"
 
 #: builtins.c:172
@@ -2161,7 +2231,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [modo]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2189,7 +2260,9 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ORDES ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
 msgstr "if ORDES; then ORDES; [ elif ORDES; then ORDES; ]...[ else ORDES; ] fi"
 
 #: builtins.c:194
@@ -2249,24 +2322,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formato [argumentos]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S sufixo] [nome ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-"
+"W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S "
+"sufixo] [nome ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S sufixo] [palabra]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o opción]  [-A acción] [-G patglob] [-W "
+"listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S "
+"sufixo] [palabra]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o opción] [-DE] [nome ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c quantum] [matriz]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c "
+"quantum] [matriz]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c quantum] [matriz]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c "
+"quantum] [matriz]"
 
 #: builtins.c:254
 msgid ""
@@ -2283,7 +2375,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Define ou mostra aliases.\n"
@@ -2319,6 +2412,7 @@ msgstr ""
 "    Devovle verdadero a menos que un NOME non sexa un alias existente."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2330,31 +2424,38 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 "Estabelece secuencias de teclas Readline e variábeis.\n"
 "\n"
-"    Asigna unha secuencia de teclas a unha función Readline ou a unha macro, ou\n"
+"    Asigna unha secuencia de teclas a unha función Readline ou a unha macro, "
+"ou\n"
 "    estabelece unha variábel Readline.  A sintaxe dos argumentos que\n"
 "    non son opcións é equivalente á que se encontra en ~/.inputrc,\n"
 "    pero débese pasar como un só argumento:\n"
@@ -2374,7 +2475,8 @@ msgstr ""
 "      -S                 Enlista as secuencias de teclas que invocan macros\n"
 "                         e os seus valores.\n"
 "      -s                 Enlista as secuencias de teclas que invocan macros\n"
-"                         e os seus valores nunha forma que se poden reusar como\n"
+"                         e os seus valores nunha forma que se poden reusar "
+"como\n"
 "                         entrada.\n"
 "      -V                 Enlista os nomes de variábeis e valores.\n"
 "      -v                 Enlista os nomes de variábeis e valores nunha\n"
@@ -2391,7 +2493,7 @@ msgstr ""
 "    bind devolve 0 a menos que se presente unha opción descoñecida ou se\n"
 "    se produza un erro."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2409,7 +2511,7 @@ msgstr ""
 "    Estado de saída:\n"
 "    O estado de saída é 0 a menos que N non sexa maior ou igual a 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2427,13 +2529,14 @@ msgstr ""
 "    Estado de Saída:\n"
 "    O estado de salida é 0 a menos que N non sexa maior ou igual a 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2450,7 +2553,7 @@ msgstr ""
 "    Devolve o estado de saída da ORDE-INTERNA-SHELL, ou falso se a\n"
 "    ORDE-INTERNA-SHELL non é unha orde interna de shell."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2475,40 +2578,53 @@ msgstr ""
 "    antes do actual; o marco inicial é o marco 0.\n"
 "    \n"
 "    Estado de Saída:\n"
-"    Devolve 0 a menos que o shell non estea executando unha función de shell\n"
+"    Devolve 0 a menos que o shell non estea executando unha función de "
+"shell\n"
 "    ou EXPR sexa non válida."
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2533,10 +2649,11 @@ msgstr ""
 "    Por defecto, `pwd' comportase como se se especificara `-L'.\n"
 "    \n"
 "    Estado de Saída:\n"
-"    Devolve 0 a menos que se dea unha opción non válida ou non se poida leer\n"
+"    Devolve 0 a menos que se dea unha opción non válida ou non se poida "
+"leer\n"
 "    o directorio actual."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2552,7 +2669,7 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Sempre con éxito."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2564,7 +2681,7 @@ msgstr ""
 "    Estado de salida:\n"
 "    Sempre con éxito."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2576,12 +2693,13 @@ msgstr ""
 "    Estado de saída:\n"
 "    Sempre falla."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2594,7 +2712,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2624,14 +2742,15 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2641,7 +2760,7 @@ msgstr ""
 "    \n"
 "    Obsoleto.  Consulte `help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2667,11 +2786,13 @@ msgstr ""
 "    Devolve con éxito a menos que se dea unha opción non válida, se produza\n"
 "    un erro, ou o shell non estea executando unha función."
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2683,6 +2804,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2698,7 +2820,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2711,7 +2833,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2738,11 +2860,12 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2756,7 +2879,7 @@ msgstr ""
 "    Estado de saída:\n"
 "    Devolve o estado de saida da orde ou éxito se a orde é nula."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2797,12 +2920,13 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2810,14 +2934,16 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2829,11 +2955,12 @@ msgstr ""
 "    Termina o shell cun estado de N.  Se se omite N, o estado de saída\n"
 "    é o mismo da última orde executada."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Termina un shell de entrada.\n"
@@ -2841,17 +2968,19 @@ msgstr ""
 "    Termina un shell de entrada cun estado de saída de N. Devolve un\n"
 "    erro se non se executa nunha shell de entrada."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -2865,10 +2994,11 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2886,26 +3016,30 @@ msgstr ""
 "    a noción do shell do traballo actual.\n"
 "    \n"
 "    Estado de Saída:\n"
-"    O estado da orde localizada en primeiro plano, ou falla se sucede un erro."
+"    O estado da orde localizada en primeiro plano, ou falla se sucede un "
+"erro."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -2923,7 +3057,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2941,10 +3075,11 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2971,13 +3106,14 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3001,7 +3137,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3018,7 +3154,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3040,14 +3176,15 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3084,18 +3221,21 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3107,26 +3247,32 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3138,7 +3284,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3181,7 +3327,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3203,7 +3350,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3222,7 +3369,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3232,7 +3379,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3241,12 +3389,13 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3259,7 +3408,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3279,7 +3428,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3290,7 +3439,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3304,7 +3453,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3320,7 +3469,8 @@ msgstr ""
 "Suspende a execución do shell.\n"
 "    \n"
 "    Suspende a execución deste shell até que recibe un sinal SIGCONT.\n"
-"    Os shells de entrada non se poden suspender, a menos que sexan forzados.\n"
+"    Os shells de entrada non se poden suspender, a menos que sexan "
+"forzados.\n"
 "    \n"
 "    Opcións:\n"
 "      -f\tforza a suspensión, aínda se o shell é un shell de entrada\n"
@@ -3329,7 +3479,7 @@ msgstr ""
 "    Devolve con éxito a menos que non estea activo o control de traballos o\n"
 "    se produza un erro."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3363,7 +3513,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3384,7 +3535,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3408,7 +3560,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3420,11 +3572,12 @@ msgstr ""
 "    Este é un sinónimo para a orde interna \"test\", pero o último\n"
 "    argumento debe ser un `]' literal, que coincida co `[' inicial."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3438,11 +3591,12 @@ msgstr ""
 "    Estado de saída:\n"
 "    Sempre con éxito."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -3451,29 +3605,37 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3499,14 +3661,16 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -3530,6 +3694,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3545,7 +3712,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3563,22 +3730,34 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
+"Agarda a terminación do traballo e devolve o estado de saída.\n"
+"    \n"
+"    Espera ao proceso especificado e reporta o seu estado de saída.  Se\n"
+"    non se fornece un PID, agarda a todos os procesos fillo activos,\n"
+"    e o código de devolución é cero.  PID debe ser un ID de proceso.\n"
+"    \n"
+"    Estado de Saída:\n"
+"    Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
+"    opción non válida."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3587,7 +3766,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Agarda a terminación do traballo e devolve o estado de saída.\n"
@@ -3600,7 +3780,7 @@ msgstr ""
 "    Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
 "    opción non válida."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3622,7 +3802,7 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devuelve o estado da última orden executada."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3652,7 +3832,7 @@ msgstr ""
 "    Estado de saída:\n"
 "    Devolve o estado da última orde executada."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3672,7 +3852,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3688,7 +3868,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3706,23 +3886,28 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devolve o estado da última orde executada."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3740,7 +3925,7 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devolve o estado da última orde executada."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3758,7 +3943,7 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devolve o estado da última orde executada."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3780,12 +3965,13 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devolve o estado de saída da ORDE."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -3793,7 +3979,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3811,7 +3997,7 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devolve o estado da última orde executada."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3825,7 +4011,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3843,13 +4029,16 @@ msgstr ""
 "    Estado de Saída:\n"
 "    Devolve 1 se a EXPRESIÓN avalía a 0; devovle 0 de outra maneira."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -3868,7 +4057,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3922,7 +4111,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3953,7 +4142,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3980,7 +4169,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3997,22 +4186,25 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4043,7 +4235,7 @@ msgstr ""
 "    Devolve con éxito se se activa NOME_OPCIÓN; falla se se fornece\n"
 "    unha opción non válida ou NOME_OPCIÓN está desactivado."
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4051,31 +4243,39 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -4095,12 +4295,13 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4116,13 +4317,16 @@ msgstr ""
 "    Devolve con éxito a menos que se forneza unha opción non válida o\n"
 "    se produza un erro."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -4144,22 +4348,28 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -4169,15 +4379,17 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index c3f005a7451aa83454e7a8f5acf7933afba59cd0..c1a37cce893e4510a765e66465cd9e0d7ede6ae4 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index c9e963710ebe18d27606c6bea63340ebce5a2140..ff0bc48a9f9124bae6d398bbf230dfaa0ca5d366 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,60 +7,61 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2010-08-06 17:44+0200\n"
 "Last-Translator: Mate Ory <orymate@ubuntu.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"Language: hu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "Hibás tömbindex"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: nem lehetséges az indexelt tömb asszociatívvá alakítása"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: érvénytelen asszociatívtömb-index"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: a nem-szám indexnek való értékadás nem lehetséges"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: asszociatív tömbhöz való értékadásnál meg kell adni az indexet"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nem hozható létre: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 "bash_execute_unix_command: nem található billentyűkiosztás a parancshoz"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: az első nem szóközkarakter nem „\"”"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "nincs záró „%c” a következőben: %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: hiányzó kettőspont-elválasztó"
@@ -70,36 +71,36 @@ msgstr "%s: hiányzó kettőspont-elválasztó"
 msgid "`%s': invalid alias name"
 msgstr "„%s”: érvénytelen alias-név"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "nincs engedélyezve a sorszerkesztés"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s”: érvénytelen billentyűkiosztás-név"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nem olvasható a következő: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "„%s”: nem lehetséges a kötés megszüntetése"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "„%s”: ismeretlen függvénynév"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s nincs kötve egy billentyűhöz sem.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s a következő módon hajtható végre: "
@@ -123,11 +124,15 @@ msgstr ""
 "    \n"
 "    EXPR nélkül a "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "Nincs beállítva HOME"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "túl sok argumentum"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "Nincs beállítva OLDPWD"
 
@@ -136,7 +141,7 @@ msgstr "Nincs beállítva OLDPWD"
 msgid "line %d: "
 msgstr "%d. sor: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "figyelmeztetés: "
@@ -146,11 +151,7 @@ msgstr "figyelmeztetés: "
 msgid "%s: usage: "
 msgstr "%s: használat: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "túl sok argumentum"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: a kapcsolónak kötelező argumentuma van"
@@ -165,7 +166,7 @@ msgstr "%s: a kötelező argumentum egy szám"
 msgid "%s: not found"
 msgstr "%s: nem található"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: érvénytelen kapcsoló"
@@ -175,7 +176,7 @@ msgstr "%s: érvénytelen kapcsoló"
 msgid "%s: invalid option name"
 msgstr "%s: érvénytelen kapcsolónév"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "„%s”: érvénytelen azonosító"
@@ -188,7 +189,7 @@ msgstr "érvénytelen oktális szám"
 msgid "invalid hex number"
 msgstr "érvénytelen hexadecimális szám"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "érvénytelen szám"
 
@@ -202,7 +203,7 @@ msgstr "%s: érvénytelen szignálmegadás"
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s”: nem pid vagy munkaazonosító"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: csak olvasható változó"
@@ -274,26 +275,26 @@ msgstr "%s: hiba a munkakönyvtár lekérdezésekor: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: kétértelmű munkamegadás"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: érvénytelen műveletnév"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: nincs kiegészítés meghatározva"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "figyelmeztetés: a -F kapcsoló nem a várt módon működhet"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "figyelmeztetés: a -C kapcsoló nem a várt módon működhet"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "jelenleg nincs kiegészítési függvény végrehajtás alatt"
 
@@ -305,7 +306,7 @@ msgstr "csak függvényben használható"
 msgid "cannot use `-f' to make functions"
 msgstr "nem használható a „-f” függvény létrehozására"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: csak olvasható függvény"
@@ -315,7 +316,7 @@ msgstr "%s: csak olvasható függvény"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: ilyen módon nem lehet tömböt megszüntetni"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: nem lehetséges az asszociatív tömb indexeltté alakítása"
@@ -344,8 +345,8 @@ msgstr "%s: nem dinamikusan van betöltve"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nem törölhető: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s egy könyvtár"
@@ -360,8 +361,7 @@ msgstr "%s: nem normál fájl"
 msgid "%s: file is too large"
 msgstr "%s: a fájl túl nagy"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: bináris nem hajtható végre"
@@ -484,7 +484,7 @@ msgstr "a következő kapcsolók kizárják egymást: -anrw"
 msgid "history position"
 msgstr "előzménypozíció"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: sikertelen előzményből való kiegészítés"
@@ -507,7 +507,7 @@ msgstr "%s: az argumentumok folyamat- vagy munkaazonosítók lehetnek"
 msgid "Unknown error"
 msgstr "Ismeretlen hiba"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "az értelmező kifejezést várt"
 
@@ -516,12 +516,12 @@ msgstr "az értelmező kifejezést várt"
 msgid "%s: not an indexed array"
 msgstr "%s: nem egy indexelt tömb"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: érvénytelen fájlleíró-megadás"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: érvénytelen fájlleíró: %s"
@@ -549,31 +549,31 @@ msgstr "üres tömbváltozó-név"
 msgid "array variable support required"
 msgstr "a tömbök használata nincs támogatva"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s”: hiányzó formátumkarakter"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: érvénytelen időkorlát-megadás"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c”: érvénytelen formátumkarakter"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "figyelmeztetés: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "hiányzó hexadecimális számjegy a következőhöz: \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "hiányzó hexadecimális számjegy a következőhöz: \\x"
@@ -715,17 +715,17 @@ msgstr ""
 "    \n"
 "    A „dirs” beépített parancs listázza a könyvtárvermet."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: érvénytelen időkorlát-megadás"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "olvasási hiba: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 "csak függvényből vagy source-olt parancsfájlból lehet „return”-nel "
@@ -735,17 +735,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "nem lehet egyszerre függvényt és változót megszüntetni"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: nem szüntethető meg"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: nem szüntethető meg: csak olvasható %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: nem egy tömbváltozó"
@@ -759,12 +759,12 @@ msgstr "%s: nem függvény"
 msgid "shift count"
 msgstr "shift-szám"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 "nem lehet egyszerre beállítani és törölni parancsértelmező-beállításokat"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: érvénytelen parancsértelmezőkapcsoló-név"
@@ -806,7 +806,7 @@ msgstr "%s egy függvény\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s egy beépített parancs\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s egy %s\n"
@@ -816,26 +816,26 @@ msgstr "%s egy %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s hashelve van (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: érvénytelen korlátérték"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "„%c”: érvénytelen parancs"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: nem kérdezhető le a korlát: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "korlát"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: nem módosítható a korlát: %s"
@@ -854,7 +854,7 @@ msgstr "„%c”: érvénytelen szimbolikus módoperátor"
 msgid "`%c': invalid symbolic mode character"
 msgstr "„%c”: érvénytelen szimbolikus módkarakter"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " sor: "
 
@@ -868,23 +868,23 @@ msgstr "utolsó parancs: %s\n"
 msgid "Aborting..."
 msgstr "Megszakítás..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "hiba: érvénytelen parancs"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "hibás parancstípus"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "hibás csatlakozó"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "hibás ugrás"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: kötetlen változó"
@@ -899,102 +899,117 @@ msgstr "\aidőtúllépés bemenetre várva: automatikus kijelentkezés\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "szabványos bemenet /dev/null-ra állítása sikertelen: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "IDŐFORMÁTUM: „%c”: érvénytelen formátumkarakter"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "hibás csővezeték"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: korlátozott: nem adható meg „/” a parancsok nevében"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: parancs nem található"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s egy %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: rossz parancsértelmező"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: bináris nem hajtható végre"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s egy beépített parancs\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nem lehet duplikálni a(z) %d. fájlleírót a(z) %d. helyre"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "a kifejezés rekurziókorlátot"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "alulcsordult a rekurziós verem"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "szintaktikai hiba a kifejezésben"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "nem változóhoz próbált értéket rendelni"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "0-val osztás"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: rossz expassign token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "„:” egy feltételkifejezés szükséges"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "0-nál kisebb kitevő"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "prefix növelés vagy csökkentés után azonosító kell következzen"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "hiányzó „)”"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "szintaktikai hiba: operandus kell következzen"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "szintaktikai hiba: érvénytelen aritmetikai operátor"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (hibás token: „%s”)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "érvénytelen számrendszer"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "túl nagy érték a számrendszerhez"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: hibás kifejezés\n"
@@ -1003,164 +1018,164 @@ msgstr "%s: hibás kifejezés\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: nem érhetőek el a szülőkönyvtárak"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "nem lehet újraindítani a nodelay módot a(z) %d. fájlleíróhoz"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "nem lehet új fájlleírót foglalni a bash bemenetéhez a(z) %d. fájlleíróból"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: már van puffer a(z) %d. fájlleíróhoz"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp csővezeték"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "a(z) %d számú forkolt pid a(z) %d számú munkában jelent meg"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "%d. számú megállított munka törlése a %ld számú folyamatcsoporttal"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: %5ld. folyamat (%s) a the_pipeline-ban"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: %5ld. folyamat (%s) még élőként van jelölve"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: nincs ilyen pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "%d. szignál"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Kész"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Megállítva"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Megállítva(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Fut"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Kész(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Kilépett(%d)"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Ismeretlen állapot"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core készült) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr " (mk: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "gyermek setpgid (innen: %ld ide: %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: %ld. számú folyamat nem gyermeke ennek a parancsértelmezőnek"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Nincs bejegyzés %ld. számú folyamatról"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: %d. számú munka le lett állítva"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: a munka be lett fejezve"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: %d. számú munka már a háttérben van"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: WNOHANG bekapcsolása a korlátlan blokk elkerülésére"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: %d. sor: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core készült)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(mk most: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp sikertelen"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nem állítható be a terminál folyamatcsoportja (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "nincsen munkakezelés ebben a parancsértelmezőben"
 
@@ -1229,7 +1244,7 @@ msgstr "register_alloc: %p már a táblában lefoglaltként?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p már a táblában szabadként?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "érvénytelen számrendszer"
 
@@ -1252,22 +1267,22 @@ msgstr "%s: hibás hálózatiútvonal-megadás"
 msgid "network operations not supported"
 msgstr "a hálózati műveletek nincsenek támogatva"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: nem lehet területi beállításokat váltani (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: nem lehet területi beállításokat váltani (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: nem lehet területi beállításokat váltani (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: nem lehet területi beállításokat váltani (%s): %s"
@@ -1298,118 +1313,118 @@ msgstr "szintaktikai hiba: váratlan „;”"
 msgid "syntax error: `((%s))'"
 msgstr "szintaktikai hiba: „((%s))”"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: hibás utasítástípus: %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "a(z) %d. sorban kezdett heredocot EOF zárja („%s” helyett)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: %d. átirányító utasítás kívül esik a tartományon"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "váratlan EOF „%c” helyett"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "váratlan EOF „]]” helyett"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "szintaktikai hiba a feltételben: váratlan token: „%s”"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "szintaktikai hiba a feltételben"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "váratlan token (%s) „)” helyett"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "„)” szükséges"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "váratlan argumentum (%s) feltételes egyoperandusú operátorhoz"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "váratlan argumentum feltételes egyoperandusú operátorhoz"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "váratlan token (%s), feltételes kétoperandusú operátor szükséges"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "feltételes kétoperandusú operátor szükséges"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "váratlan argumentum (%s) feltételes kétoperandusú operátorhoz"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "váratlan argumentum feltételes kétoperandusú operátorhoz"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "váratlan token (%c) feltételes parancsban"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "váratlan token (%s) feltételes parancsban"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "váratlan token (%d) feltételes parancsban"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "szintaktikai hiba „%s” váratlan token közelében"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "szintaktikai hiba „%s” közelében"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "szintaktikai hiba: váratlan fájlvége"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "szintaktikai hiba"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "„%s” használatával lehet elhagyni a parancsértelmezőt.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "váratlan EOF „)” helyett"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "kiegészítés: nem található „%s” függvény"
@@ -1419,26 +1434,26 @@ msgstr "kiegészítés: nem található „%s” függvény"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: hibás csatlakozó (%d)"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: érvénytelen fájlleíró"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: NULL fájlmutató"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c”: érvénytelen formátumkarakter"
@@ -1476,33 +1491,33 @@ msgstr "%s: nem lehet változóhoz fájlleírót rendelni"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port nincs támogatva hálózat nélkül"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "átirányítási hiba: nem lehet duplikálni a fájlleírót"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "nem található /tmp, hozza létre!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp érvényes könyvtárnév kell legyen"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: érvénytelen kapcsoló"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Nincs nevem!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, %s-(%s) verzió\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1511,41 +1526,41 @@ msgstr ""
 "Használat:     %s [GNU hosszú kapcsoló] [kapcsoló] ...\n"
 "       %s [GNU hosszú kapcsoló] [kapcsoló] parancsfájl ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU hosszú kapcsolók:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Parancsértelmező-kapcsolók:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD vagy -c parancs vagy -O shopt_option\t\t(csak hívás)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s vagy -o kapcsoló\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "A „%s -c \"help set\"” további információt ad a parancsértelmező-"
 "beállításokról.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "A „%s -c help” további információt ad a beépített parancsokról.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "A „bashbug” paranccsal jelenthet hibákat.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: érvénytelen művelet"
@@ -1719,72 +1734,72 @@ msgstr "Ismeretlen szignál #"
 msgid "Unknown Signal #%d"
 msgstr "%d. számú ismeretlen szignál"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "hibás helyettesítés: nincs záró „%s” a következőben: %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: lista nem adható tömbelemnek értékül"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "nem hozható létre a csővezeték a folyamatbehelyettesítéshez"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "nem hozható létre a gyermek a folyamatbehelyettesítéshez"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "nem nyitható meg olvasásra a(z) %s csővezeték"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "nem nyitható meg írásra a(z) %s csővezeték"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "nem duplikálható a(z) %s csővezeték %d. fájlleíróként"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "nem hozható létre csővezeték a parancsbehelyettesítéshez"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "nem hozható létre gyermek a parancsbehelyettesítéshez"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: nem duplikálható a csővezeték 1. fájlleíróként"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: a paraméter null vagy nincs beállítva"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: részkarakterlánc-kifejezés < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: rossz helyettesítés"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nem lehet így értéket adni"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
@@ -1792,12 +1807,12 @@ msgstr ""
 "a parancsértelmező későbbi verziói kötelezővé teszik majd az aritmetikai "
 "kiértékelést"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "hibás helyettesítés: nincs záró „`” a következőben: %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "nincs találat: %s"
@@ -1834,78 +1849,78 @@ msgstr "%s: kétoperandusú operátor szükséges"
 msgid "missing `]'"
 msgstr "hiányzó „]”"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "érvénytelen szignálszám"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: rossz érték a trap_list[%d]-ban: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 "run_pending_traps: szignálkezelő a SIG_DFL, %d (%s) újraküldése önmagunknak"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: rossz szignál: %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "hiba a függvénydefiníció betöltésekor: „%s”"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "a parancsértelmező szintje (%d) túl magas, visszaállítás 1-re"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: nincs függvénykörnyezet az aktuális látókörben"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: nincs függvénykörnyezet az aktuális látókörben"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s exportstr-je null"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "érvénytelen karakter (%d) %s exportstr-jében"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "nincs „=” %s exportstr-jében"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: shell_variables feje nem egy függvénykörnyezet"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: nincs global_variables környezet"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: shell_variables feje nem egy átmeneti környezeti látókör"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: nem nyitható meg FILE-ként"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: érvénytelen érték a trace fájlleíróhoz"
@@ -1981,8 +1996,9 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] név [név ...]"
 
 #: builtins.c:51
+#, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m kiosztás] [-f fájlnév] [-q név] [-u név] [-r billkomb] [-"
@@ -2191,7 +2207,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] név [név ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [korlát]"
 
 #: builtins.c:172
@@ -2199,7 +2216,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mód]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2380,6 +2398,7 @@ msgstr ""
 "    Sikeresen tér vissza, kivéve ha nincs megadott NÉV nevű alias."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2413,6 +2432,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2453,7 +2474,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    a bind 0-val tér vissza, ha nincs ismeretlen kapcsoló vagy hiba."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2471,7 +2492,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    A kilépési kód 0, ha N >= 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2490,7 +2511,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    A kilépési kód 0, ha N >= 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2513,7 +2534,7 @@ msgstr ""
 "    Továbbadja a SHELL-BUILTIN kilépési kódját vagy hamissal tér vissza,\n"
 "    ha nincs ilyen parancs."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2541,7 +2562,7 @@ msgstr ""
 "    0-val tér vissza, ha érvényes KIF és valóban függvényt hajt végre a pa-\n"
 "    rancsértelmező."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2565,13 +2586,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2603,7 +2629,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    0-val tér vissza, ha könyvtárat váltott; más értéket különben."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2632,7 +2658,7 @@ msgstr ""
 "    0-val tér vissza, kivéve ha érvénytelen kapcsolót kapott vagy nem le-\n"
 "    het olvasni a munkakönyvtárat."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2648,7 +2674,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Mindig sikeres."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2660,7 +2686,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Mindig sikeres."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2672,7 +2698,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Mindig sikertelen."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2708,7 +2734,7 @@ msgstr ""
 "    PARANCS kilépési kódjával tér vissza, vagy hibát jelez, ha nem talál-\n"
 "    ható PARANCS."
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2780,7 +2806,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap, vagy hiba\n"
 "    történt."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2790,7 +2816,7 @@ msgstr ""
 "    \n"
 "    Elavult. Lásd „help declare”."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2816,11 +2842,14 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap, hiba\n"
 "    történt, vagy nem függvényben lett hívva."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2832,6 +2861,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2874,7 +2904,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve írási hiba esetén."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2896,7 +2926,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve írási hiba esetén."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2949,7 +2979,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha NÉV nem egy beépített parancs, vagy hi-\n"
 "    ba történt."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2969,7 +2999,7 @@ msgstr ""
 "    A parancs kilépési kódjával tér vissza, vagy sikerrel, ha üres a pa-\n"
 "    rancs."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3043,7 +3073,7 @@ msgstr ""
 "    Sikerrel tér vissza, ha kapcsolót talált, sikertelenül, ha elfogytak a\n"
 "    kapcsolók vagy hiba történt."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3083,7 +3113,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve, ha PARANCS nem található vagy sikertelen\n"
 "    az átirányítás."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3095,7 +3125,7 @@ msgstr ""
 "    Kilép a parancsértelmezőből N kilépési kóddal. Ha N hiányzik, az utol-\n"
 "    só parancs kilépési kódjával lép ki."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3108,7 +3138,7 @@ msgstr ""
 "    Kilép a bejelentkező parancsértelmezőből N kilépési kóddal. Hibával\n"
 "    tér vissza, ha nem bejelentkező parancsértelmezőből hívják."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3162,7 +3192,7 @@ msgstr ""
 "    Sikert vagy a végrehajtott parancs kilépési kódját adja; nullától el-\n"
 "    térőt hiba esetén."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3183,7 +3213,7 @@ msgstr ""
 "    Az előtérbe hozott parancs állapota (annak kilépésekor), vagy nemnulla\n"
 "    hiba esetén."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3206,7 +3236,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha a munkakezelés le van tiltva, vagy hi-\n"
 "    ba történt."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3249,7 +3279,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve, ha NÉV nem található vagy érvénytelen kap-\n"
 "    csolót kap."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3287,7 +3317,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve ha nincs találat vagy hibás kapcsolót kap."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3350,7 +3380,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap, vagy hiba\n"
 "    történik."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3394,7 +3424,7 @@ msgstr ""
 "    Sikerrel tér vissza, ha nem kap érvénytelen kapcsolót és nem történik\n"
 "    hiba. -x használata esetén PARANCS kilépési kódjával tér vissza."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3426,7 +3456,7 @@ msgstr ""
 "    Sikerrel tér vissza, ha nem kap érvénytelen kapcsolót vagy MUNKASZÁM-\n"
 "    ot."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3467,7 +3497,7 @@ msgstr ""
 "    Sikerrel tér vissza, ha nem kap érvénytelen kapcsolót és nem történik\n"
 "    hiba."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3551,7 +3581,8 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Ha az utolsó argumentum 0, a let 1-gyel tér vissza, különben 0-val."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3588,14 +3619,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Beolvas egy sort a szabványos bemenetről és mezőkre osztja.\n"
@@ -3634,7 +3668,7 @@ msgstr ""
 "    A kilépési kód nulla, kivéve ha EOF-ot ér a beolvasás, időtúllépéskor\n"
 "    vagy érvénytelen fájlleíró megadásakor."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3655,7 +3689,7 @@ msgstr ""
 "    N-nel tér vissza, kivéve ha nem függvényből vagy parancsfájlból akar\n"
 "    visszatérni – ekkor sikertelenséget jelez."
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3722,7 +3756,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3818,7 +3852,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót kap."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3854,7 +3888,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha hibás kapcsolót kap, vagy egy NÉV csak\n"
 "    olvasható."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3888,7 +3922,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót vagy NEV-et kap."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3924,7 +3958,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve ha érvénytelen kapcsolót vagy NEV-et kap."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3942,7 +3976,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve ha N negatív vagy nagyobb mint $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3965,7 +3999,7 @@ msgstr ""
 "    Az utolsó FÁJLNÉV-beli parancs kilépési kódjával tér vissza; sikerte-\n"
 "    lenül, ha FÁJLNÉV nem olvasható."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3991,7 +4025,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha a munkakezelés nem támogatott vagy hiba\n"
 "    történt."
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -4144,7 +4178,7 @@ msgstr ""
 "    Sikerrel tér vissza, ha KIF igaz; sikertelenséggel, ha KIF hamis vagy\n"
 "    érvénytelen argumentumokat kap."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4157,7 +4191,7 @@ msgstr ""
 "    hogy az utolsó argumentuma „]” kell legyen – a nyitó „]”-lel összhang-\n"
 "    ban."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4175,7 +4209,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Mindig sikeres."
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -4248,7 +4282,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha SZIGNÁL érvénytelen vagy érvénytelen\n"
 "    kapcsolót kap."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4300,7 +4334,8 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel lép ki, ha minden NÉV megtalálható, sikertelenül, ha nem."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4329,6 +4364,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4383,7 +4421,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve érvénytelen kapcsoló és hiba esetében."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4418,21 +4456,22 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel lép ki, kivéve ha MÓD vagy egy kapcsoló érvénytelen."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Munka befejezésének megvárása és a kilépési kód visszaadása.\n"
 "    \n"
@@ -4445,7 +4484,7 @@ msgstr ""
 "    ID kilépési kódjával tér vissza; érvénytelen ID vagy kapcsoló esetén\n"
 "    sikertelenül."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4467,7 +4506,7 @@ msgstr ""
 "    ID kilépési kódjával tér vissza; érvénytelen ID vagy kapcsoló esetén\n"
 "    sikertelenül."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4489,7 +4528,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsó parancs kilépési kódját adja vissza."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4519,7 +4558,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsó parancs kilépési kódját adja."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4555,7 +4594,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsó parancs kilépési kódját adja vissza."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4585,7 +4624,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    A kilépési kód a CSŐVEZETÉK kilépési kódja lesz."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4604,7 +4643,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsó parancs kilépési kódját adja vissza."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4637,7 +4676,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utoljára végrehajtott parancs kilépési kódja."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4655,7 +4694,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsónak végrehajtott parancs kilépési kódja."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4673,7 +4712,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsónak végrehajtott parancs kilépési kódja."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4695,7 +4734,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    A PARANCS kilépési kódjával tér vissza."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4718,7 +4757,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve ha NÉV csak olvasható."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4736,7 +4775,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Az utolsó parancs kilépési kódját adja vissza."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4758,7 +4797,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    A visszaállított parancs kilépési kódjával lép ki."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4776,7 +4815,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    1-gyel tér vissza, ha KIFEJEZÉS értéke 0, különben 0-val."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4825,7 +4864,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    0 vagy 1 a KIFEJEZÉS-től függően."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4926,7 +4965,7 @@ msgstr ""
 "    HISTIGNORE Kettőspontokkal elválasztott mintalista, amely mintákra\n"
 "               illeszkedő parancsok nem kerülnek az előzmények közé\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4983,7 +5022,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve érvénytelen argumentum vagy könyvtárváltás\n"
 "    során történő hiba esetén."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5031,7 +5070,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve érvénytelen argumentum vagy könyvtárváltás\n"
 "    során történő hiba esetén."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5080,7 +5119,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve érvénytelen argumentum vagy hiba esetén."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5117,7 +5156,7 @@ msgstr ""
 "    Sikerrel tér vissza, ha OPTNÉV engedélyezve van; sikertelenül, ha hi-\n"
 "    bás kapcsolókat kap vagy OPTNÉV tiltva van."
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5136,8 +5175,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5173,7 +5212,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve ha hibás kapcsolókat kap, vagy az írás/ér-\n"
 "    tékadás hibával járt."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5221,7 +5260,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel tér vissza, kivéve érvénytelen kapcsoló és hiba esetén."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5242,7 +5281,7 @@ msgstr ""
 "    Kilépési kód:\n"
 "    Sikerrel lép ki, kivéve érvénytelen kapcsoló vagy hiba esetén."
 
-#: builtins.c:1956
+#: builtins.c:1969
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
@@ -5300,7 +5339,7 @@ msgstr ""
 "    Sikerrel lép ki, kivéve ha érvénytelen kapcsolókat kap, vagy NÉV nincs\n"
 "    még megadva."
 
-#: builtins.c:1986
+#: builtins.c:1999
 #, fuzzy
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
@@ -5370,7 +5409,7 @@ msgstr ""
 "    Sikerrel tér vissza, kivéve érvénytelen kapcsoló vagy csak olvasható,\n"
 "    vagy nem indexelt TÖMB megadása esetén."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index d8d80c8848e3aeccc91a639def427fd439fa818e..a4a2242c47665f4472b4f8b156f790c7aacb85f3 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index aaa0e5fa85613547ad79f9735bf572d7adada742..469ddc1c91167e2bfe5960493f895b603d339825 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -7,59 +7,60 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2010-01-16 12:45+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "array subscript buruk"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: tidak dapat mengubah index ke array yang berassosiasi"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: kunci array assosiasi tidak valid"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: tidak dapat mengassign ke index tidak-numeric"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: harus menggunakan subscript ketika memberikan assosiasi array"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: tidak dapat membuat: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: tidak dapat menemukan keymap untuk perintah"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: bukan karakter whitespace (spasi) pertama ditemukan `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "tidak menutup '%c' dalam %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: hilang pemisah colon"
@@ -69,36 +70,36 @@ msgstr "%s: hilang pemisah colon"
 msgid "`%s': invalid alias name"
 msgstr "`%s': nama alias tidak valid"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "pengubahan baris tidak aktif"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "'%s': nama keymap tidak valid"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: tidak dapat membaca: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "'%s': tidak dapat melepaskan"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "'%s': nama fungsi tidak dikenal"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s tidak terikat ke kunci apapun.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s dapat dipanggil melalui "
@@ -121,11 +122,15 @@ msgstr ""
 "    \n"
 "    Tanpa EXPR, kembali "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME tidak diset"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "terlalu banyak argumen"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD tidak diset"
 
@@ -134,7 +139,7 @@ msgstr "OLDPWD tidak diset"
 msgid "line %d: "
 msgstr "baris %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "peringatan: "
@@ -144,11 +149,7 @@ msgstr "peringatan: "
 msgid "%s: usage: "
 msgstr "%s: penggunaan: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "terlalu banyak argumen"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: pilihan membutuhkan sebuah argumen"
@@ -163,7 +164,7 @@ msgstr "%s: argumen numeric dibutuhkan"
 msgid "%s: not found"
 msgstr "%s: tidak ditemukan"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: pilihan tidak valid"
@@ -173,7 +174,7 @@ msgstr "%s: pilihan tidak valid"
 msgid "%s: invalid option name"
 msgstr "%s: nama pilihan tidak valid"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': bukan sebuah identifier yang valid"
@@ -186,7 +187,7 @@ msgstr "nomor oktal tidak valid"
 msgid "invalid hex number"
 msgstr "nomor hexa tidak valid"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "nomor tidak valid"
 
@@ -200,7 +201,7 @@ msgstr "%s: spesifikasi sinyal tidak valid"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': bukan sebuah pid atau spesifikasi pekerjaan yang valid"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variabel baca-saja"
@@ -272,28 +273,28 @@ msgstr "%s: error mengambil direktori saat ini: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: spesifikasi pekerjaan ambigu"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: nama aksi tidak valid"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: tidak ada spesifikasi completion"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 "peringatan: pilihan -F mungkin tidak bekerja seperti yang anda harapkan"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 "peringatan: pilihan -C mungkin tidak bekerja seperti yang anda harapkan"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "saat ini sedang tidak menjalankan fungsi completion"
 
@@ -305,7 +306,7 @@ msgstr "hanya dapat digunakan dalam sebuah fungsi"
 msgid "cannot use `-f' to make functions"
 msgstr "tidak dapat menggunakan `-f' untuk membuat fungsi"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: fungsi baca-saja"
@@ -315,7 +316,7 @@ msgstr "%s: fungsi baca-saja"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: tidak dapat menghapus variabel array secara ini"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: tidak dapat mengubah assosiasi ke array index"
@@ -344,8 +345,8 @@ msgstr "%s: bukan dinamically loaded"
 msgid "%s: cannot delete: %s"
 msgstr "%s: tidak dapat menghapus: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: bukan sebuah direktori"
@@ -360,8 +361,7 @@ msgstr "%s: bukan sebuah file umum"
 msgid "%s: file is too large"
 msgstr "%s: file terlalu besar"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: tidak dapat menjalankan berkas binary"
@@ -487,7 +487,7 @@ msgstr "tidak dapat menggunakan lebih dari satu pilihan dari -anrw"
 msgid "history position"
 msgstr "posisi sejarah"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: expansi sejarah gagal"
@@ -510,7 +510,7 @@ msgstr "%s: argumen harus diproses atau ID pekerjaan"
 msgid "Unknown error"
 msgstr "Kesalahan tidak diketahui"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "diduga sebuah ekspresi"
 
@@ -519,12 +519,12 @@ msgstr "diduga sebuah ekspresi"
 msgid "%s: not an indexed array"
 msgstr "%s: bukan sebuah indeks array"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: spesifikasi file deskripsi tidak valid"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: file deskriptor %s tidak valid"
@@ -552,31 +552,31 @@ msgstr "nama variabel array kosong"
 msgid "array variable support required"
 msgstr "bantuan array variabel dibutuhkan"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': hilang karakter format"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: spesifikasi timeout tidak valid"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': karakter format tidak valid"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "peringatan: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "hilang digit hexa untuk \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "hilang digit hexa untuk \\x"
@@ -725,17 +725,17 @@ msgstr ""
 "    \n"
 "    Builtin `dirs' menampilkan direktori stack."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: spesifikasi timeout tidak valid"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "error baca: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "hanya dapat `return' dari sebuah fungsi atau script yang disource"
 
@@ -743,17 +743,17 @@ msgstr "hanya dapat `return' dari sebuah fungsi atau script yang disource"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "tidak dapat secara simultan unset sebuah fungsi dan sebuah variable"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: tidak dapat unset"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: tidak dapat unset: baca-saja %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: bukan sebuah variabel array"
@@ -767,11 +767,11 @@ msgstr "%s: bukan sebuah fungsi"
 msgid "shift count"
 msgstr "shift terhitung"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "tidak dapat menset dan menunset pilihan shell secara bersamaan"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nama pilihan shell tidak valid"
@@ -813,7 +813,7 @@ msgstr "%s adalah sebuah fungsi\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s adalah sebuah shell builtin\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s adalah %s\n"
@@ -823,26 +823,26 @@ msgstr "%s adalah %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s memiliki hash (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: argumen limit tidak valid"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': perintah buruk"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: tidak dapat get limit: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "batas"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: tidak dapat memodifikasi batas: %s"
@@ -861,7 +861,7 @@ msgstr "`%c': operator mode symbolic tidak valid"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': mode karakter symbolic tidak valid"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " baris "
 
@@ -875,23 +875,23 @@ msgstr "perintah terakhir: %s\n"
 msgid "Aborting..."
 msgstr "membatalkan..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "perintah error tidak diketahui"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "tipe perintah buruk"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "konektor buruk"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "lompat buruk"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variabel tidak terikat"
@@ -906,103 +906,118 @@ msgstr "kehabisan waktu menunggu masukan: otomatis-keluar\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "tidak dapat menyalurkan masukan standar dari /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': karakter format tidak valid"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "pipe error"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 "%s: dibatasi: tidak dapat menspesifikasikan '/' dalam nama nama perintah"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: perintah tidak ditemukan"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s adalah %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: interpreter buruk"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: tidak dapat menjalankan berkas binary"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s adalah sebuah shell builtin\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "tidak dapat menduplikasikan fd %d ke fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "expresi level rekursi terlewati"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "rekursi stack underflow"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntax error dalam expresi"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "mencoba menempatkan ke bukan sebuah variabel"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "dibagi oleh 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: tanda expassign buruk"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "`:' diharapkan untuk sebuah pernyataan kondisional"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "eksponen kurang dari 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "idenfier diharapkan setelah pre-increment atau pre-decrement"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "hilang `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntax error: operand diharapkan"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntax error: operator arithmetic tidak valid"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (error token adalah \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "basis arithmetic tidak valid"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "nilai terlalu besar untuk basis"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: expresi error\n"
@@ -1011,165 +1026,165 @@ msgstr "%s: expresi error\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: tidak dapat mengakses direktori orang tua"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "tidak dapat mereset mode nodelay untuk fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
-"tidak dapat mengalokasikan berkas deskripsi bari untuk masukan bash dari fd %"
-"d"
+"tidak dapat mengalokasikan berkas deskripsi bari untuk masukan bash dari fd "
+"%d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "simpan bash_input: buffer telah ada untuk fd %d baru"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "forked pid %d terlihat dalam pekerjaan yang sedang berjalan %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "menghapus pekerjaan yang terhenti %d dengan proses grup %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) dalam the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) ditandai dengan tetap hidup"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: tidak ada pid seperti itu"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "sinyal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Selesai"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Terhenti"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Terhenti(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Berjalan"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Selesai(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Keluar %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Status tidak diketahui"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core didump) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "anak setpgid (%ld ke %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld bukan sebuah anak dari shell ini"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Tidak ada catatan untuk proses %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: pekerjaan %d terhenti"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: pekerjaan telah selesai"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: pekerjaan %d sudah berjalan di belakang (background)"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: mengaktifkan WNOHANG untuk menghindari blok tak terhingga"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: baris %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core didump)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd sekarang: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp gagal"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: baris disiplin"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "tidak dapat menset terminal proses grup (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "tidak ada pengontrol pekerjaan dalam shell ini"
 
@@ -1239,7 +1254,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p sudah berada dalam tabel sebagai bebas?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "basis tidak valid"
 
@@ -1262,22 +1277,22 @@ msgstr "%s: spesifikasi jalur network buruk"
 msgid "network operations not supported"
 msgstr "operasi jaringan tidak dilayani"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: tidak dapat mengubah lokal (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: tidak dapat mengubah local (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: tidak dapat mengubah lokal (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: tidak dapat mengubah lokal (%s): %s"
@@ -1308,119 +1323,119 @@ msgstr "syntax error: `;' tidak terduga"
 msgid "syntax error: `((%s))'"
 msgstr "syntax error: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipe instruksi buruk %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 "dokumen-disini di baris %d dibatasi oleh akhir-dari-berkas (diinginkan `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: instruksi redireksi `%d' diluar dari jangkauan"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "EOF tidak terduga ketika mencari untuk pencocokan `%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "EOF tidak terduga ketika mencari untuk `]]'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntax error dalam ekspresi kondisional: tanda `%s' tidak terduga"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "syntax error dalam ekspresi kondisional"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "tanda `%s' tidak terduga, diduga `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "diduga `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argumen tidak terduga `%s' ke operator kondisional unary"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "argumen tidak terduga untuk operasi unary kondisional"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "tanda `%s' tidak terduga, operator binary kondisional diduga"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "operator binary kondisional diduga"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argumen `%s' tidak terduga ke operator binary kondisional"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "argumen tidak terduga ke operasi binary kondisional"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "tanda `%c' tidak terduga dalam perintah kondisional"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "tanda `%s' tidak terduga dalam perintah kondisional"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "tanda %d tidak terduga dalam perintah kondisional"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntax error didekat tanda `%s' yang tidak terduga"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntax error didekat `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "syntax error: tidak terduga diakhir dari berkas"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "syntax error"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Gunakan \"%s\" untuk meninggalkan shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF tidak terduga ketika mencari untuk pencocokan ')'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: fungsi `%s' tidak ditemukan"
@@ -1430,26 +1445,26 @@ msgstr "completion: fungsi `%s' tidak ditemukan"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: konektor buruk `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: berkas pendeskripsi tidak valid"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: berkas penunjuk KOSONG"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: '%c': format karakter tidak valid"
@@ -1487,33 +1502,33 @@ msgstr "%s: tidak dapat meng-'assign' fd ke variabel"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port tidak dilayani tanpa jaringan"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "redirection error: tidak dapat menduplikasi fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "tidak dapat menemukan /tmp, tolong buat!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp harus berupa sebuah nama direktori yang valid"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: pilihan tidak valid"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Aku tidak memiliki nama!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versi %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1522,43 +1537,43 @@ msgstr ""
 "Penggunaan:\t%s [GNU pilihan panjang] [pilihan] ...\n"
 "\t%s [GNU pilihan panjang] [pilihan] berkas-script ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU pilihan panjang:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Pilihan shell:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD atau -c perintah atau -O shopt_option\t\t(hanya pemanggilan)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s atau pilihan -o\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Ketik `%s -c \"help set\"' untuk informasi lebih lanjut mengenai pilihan "
 "shell.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Ketik `%s -c help' untuk informasi lebih lanjut mengenai perintah builting "
 "shell.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Gunakan perintah 'bashbug' untuk melaporkan bugs.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operasi tidak valid"
@@ -1732,72 +1747,72 @@ msgstr "Sinyal tidak diketahui #"
 msgid "Unknown Signal #%d"
 msgstr "Sinyal tidak diketahui #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "substitusi buruk: tidak ada penutupan `%s' dalam %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: tidak dapat meng-assign daftar kedalam anggoya array"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "tidak dapat membuat pipe untuk proses substitusi"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "tidak dapat membuat anak untuk proses substitusi"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "tidak dapat membuka named pipe %s untuk membaca"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "tidak dapat membukan named pipe %s untuk menulis"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "tidak dapat menduplikasi nama pipe %s sebagai fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "tidak dapat membuat pipe untuk perintah substitusi"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "tidak dapat membuat anak untuk perintah substitusi"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: tidak dapat menduplikasikan pipe sebagi fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameter kosong atau tidak diset"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: substring expresi < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: substitusi buruk"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: tidak dapat meng-assign dengan cara ini"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
@@ -1805,12 +1820,12 @@ msgstr ""
 "versi selanjutnya dari shell akan memaksa evaluasi dari sebuah penggantian "
 "aritmetika"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substitusi buruk: tidak ada penutupan \"\" dalam %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "tidak cocok: %s"
@@ -1847,82 +1862,82 @@ msgstr "%s: operator binary diduga"
 msgid "missing `]'"
 msgstr "hilang `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "nomor sinyal tidak valid"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: nilai buruk dalam trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
-"run_pending_traps: sinyal handler adalah SIG_DFL, mengirimkan kembali %d (%"
-"s) kediri sendiri"
+"run_pending_traps: sinyal handler adalah SIG_DFL, mengirimkan kembali %d "
+"(%s) kediri sendiri"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: sinyal buruk %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "error mengimpor definisi fungsi untuk `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "level shell (%d) terlalu tinggi, mereset ke 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: tidak ada context fungsi di scope ini"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: tidak ada context fungsi dalam scope ini"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s memiliki exportstr kosong"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "karakter %d tidak valid dalam exporstr untuk %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "bukan `=' dalam exportstr untuk %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 "pop_var_context: kepala dari shell_variables bukan sebuah fungsi cbntext"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: bukan global_variable context"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 "pop_scope: kepala dari shell_variables bukan sebuah scope lingkungan "
 "sementara"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: tidak dapat membuka sebagai BERKAS"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: nilai dari berkas pendeskripsi penelusur tidak valid"
@@ -2000,8 +2015,9 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] name [nama ...]"
 
 #: builtins.c:51
+#, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m keymap] [-f nama berkas] [-q nama] [-u nama] [-r keyseq] "
@@ -2210,7 +2226,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nama [name ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [batas]"
 
 #: builtins.c:172
@@ -2218,7 +2235,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mode]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2403,6 +2421,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah NAMA bukan alias yang sudah ada."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2436,6 +2455,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2483,7 +2504,7 @@ msgstr ""
 "      bind memberikan kembalian 0 kecuali sebuah pilihan tidak dikenal "
 "diberikan atau sebuah error terjadi."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2502,7 +2523,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2521,7 +2542,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2548,7 +2569,7 @@ msgstr ""
 "BUILTIN adalah\n"
 "    bukan sebuah shell builtin.."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2577,7 +2598,7 @@ msgstr ""
 "shell atau EXPR\n"
 "    tidak valid."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2601,13 +2622,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2642,7 +2668,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan 0 jika direktori berubah; bukan nol jika tidak."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2672,7 +2698,7 @@ msgstr ""
 "direktori sekarang\n"
 "    tidak bisa dibaca."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2688,7 +2714,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu sukses."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2700,7 +2726,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu sukses."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2712,7 +2738,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu gagal."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2750,7 +2776,7 @@ msgstr ""
 "    Mengembalikan status keluar dari PERINTAH, atau gagal jika PERINTAH "
 "tidak ditemukan."
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2822,7 +2848,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2832,7 +2858,7 @@ msgstr ""
 "    \n"
 "    Kadaluarsa. Lihat `help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2860,11 +2886,14 @@ msgstr ""
 "sebuah error terjadi.\n"
 "    atau shell tidak menjalankan sebuah fungsi."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2876,6 +2905,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2918,7 +2948,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali sebuah penulisan error terjadi."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2940,7 +2970,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali sebuah penulisan error terjadi."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2996,7 +3026,7 @@ msgstr ""
 "   Mengembalikan sukses kecuali NAMA bukan sebuah shell builtin atau sebuah "
 "error terjadi."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -3017,7 +3047,7 @@ msgstr ""
 "    Mengembalikan status keluar dari perintah atau sukses jika perintah "
 "adalah kosong."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3103,7 +3133,7 @@ msgstr ""
 "dari pilihan\n"
 "    ditemui atau sebuah error terjadi."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3146,7 +3176,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali PERINTAH tidak ditemukan atau sebuah "
 "redireksi error terjadi."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3159,7 +3189,7 @@ msgstr ""
 "keluaran\n"
 "    adalah status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3173,7 +3203,7 @@ msgstr ""
 "error jika tidak dijalankan\n"
 "    dalam sebuah login shell."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3232,7 +3262,7 @@ msgstr ""
 "    Mengembalikan sukses atau status dari perintah yang dijalankan; tidak-"
 "nol jika sebuah error terjadi."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3253,7 +3283,7 @@ msgstr ""
 "    Status dari perintah yang ditempatkan di foreground, atau gagal jika "
 "sebuah error terjadi."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3277,7 +3307,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau "
 "sebuah error terjadi."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3323,7 +3353,7 @@ msgstr ""
 "   Mengembalikan sukses kecuali NAMA tidak ditemukan atau sebuah pilihan "
 "tidak valid telah diberikan."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3364,7 +3394,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali POLA tidak ditemukan atau pilihan tidak "
 "valid diberikan."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3439,7 +3469,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3487,7 +3517,7 @@ msgstr ""
 "sebuah error terjadi.\n"
 "    Jika -x digunakan, mengembalikan status keluar dari PERINTAH."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3519,7 +3549,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali ada sebuah pilihan tidak valid atau JOBSPEC "
 "diberikan."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3562,7 +3592,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3651,7 +3681,8 @@ msgstr ""
 "    Jika ARG terakhir dievaluasi ke 0, membiarkan kembali ke 1; 0 "
 "dikembalikan Jika tidak."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3688,14 +3719,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Membaca sebuah baris dari standar masukan dan membaginya dalam bagian "
@@ -3749,7 +3783,7 @@ msgstr ""
 "    atau sebuah berkas deskripsi disupply sebagai sebuah argumen ke pilihan -"
 "u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3771,7 +3805,7 @@ msgstr ""
 "    Mengembalikan N, atau gagal jika shell tidak menjalan sebuah fungsi atau "
 "script."
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3838,7 +3872,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3947,7 +3981,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3984,7 +4018,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah NAMA adalah baca-saja."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -4019,7 +4053,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "NAMA tidak valid."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4058,7 +4092,7 @@ msgstr ""
 "    Mengembalikan sukses kecual sebuah pilihan tidak valid diberikan atau "
 "NAMA tidak valid."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4076,7 +4110,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali N adalah negatif atau lebih besar dari $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4102,7 +4136,7 @@ msgstr ""
 "BERKAS; gagal jika\n"
 "    NAMA BERKAS tidak dapat dibaca."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4128,7 +4162,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau "
 "sebuah error terjadi."
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -4293,7 +4327,7 @@ msgstr ""
 "EXPR mengevaluasi ke\n"
 "       salah atau sebuah argumen tidak valid diberikan."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4305,7 +4339,7 @@ msgstr ""
 "    Ini sinonim untuk \"test\" builtin, tetapi argumen terakhir\n"
 "    harus berupa sebuah literal `]', untuk mencocokan dengan pembukaan `['."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4325,7 +4359,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Selalu sukses."
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -4407,7 +4441,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah SIGSPEC adalah tidak valid atau "
 "sebuah pilihan tidak valid diberikan."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4469,7 +4503,8 @@ msgstr ""
 "    Mengembalikan sukses jika seluruh dari NAMA ditemukan; gagal jika ada "
 "yang tidak ditemukan."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4498,6 +4533,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4557,7 +4595,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4595,21 +4633,22 @@ msgstr ""
 "    Mengembalikan sukses kecuali MODE tidak valid atau sebuah pilihan tidak "
 "valid diberikan."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Tunggu untuk penyelesaian pekerjaan dan kembalikan status keluar.\n"
 "    \n"
@@ -4627,7 +4666,7 @@ msgstr ""
 "pilihan tidak\n"
 "    valid diberikan."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4652,7 +4691,7 @@ msgstr ""
 "pilihan tidak valid\n"
 "    diberikan."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4676,7 +4715,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4706,7 +4745,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4743,7 +4782,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4771,7 +4810,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Status kembali adalah status kembali dari PIPELINE."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4789,7 +4828,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan setatus dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4827,7 +4866,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4845,7 +4884,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4862,7 +4901,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dijalankan."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4885,7 +4924,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status keluar dari PERINTAH."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4910,7 +4949,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan sukses kecuali NAMA adalah baca-saja."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4929,7 +4968,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari perintah terakhir yang dieksekusi."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4956,7 +4995,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan status dari pekerjaan yang dilanjutkan."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4974,7 +5013,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    Mengembalikan 1 jika EXPRESI dievaluasi ke 0; mengembalikan 0 jika tidak."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -5031,7 +5070,7 @@ msgstr ""
 "    Status Keluar:\n"
 "    0 atau 1 tergantun dari nilai dari EKSPRESI."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5145,7 +5184,7 @@ msgstr ""
 "digunakan untuk menentukan dimana\n"
 "    \t\tperintah seharusnya disimpan dalam daftar sejarah.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5205,7 +5244,7 @@ msgstr ""
 "atau pemindahan\n"
 "    direktori gagal."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5249,8 +5288,8 @@ msgstr ""
 "    \tmenghapus direktori terakhir, `popd +1' sebelum terakhir.\n"
 "    \n"
 "      -N\tmenghapus masukan ke N dihitung dari kanan dari daftar\n"
-"    \tyang ditampilkan oleh `dirs', dimulai dari nol. Sebagai contoh: `popd -"
-"0'\n"
+"    \tyang ditampilkan oleh `dirs', dimulai dari nol. Sebagai contoh: `popd "
+"-0'\n"
 "    \tmenghapus direktori terakhir, `popd -1' sebelum terakhir.\n"
 "    \n"
 "    Builtin `dirs' menampilkan direktori stack.\n"
@@ -5260,7 +5299,7 @@ msgstr ""
 "atau pemindahan\n"
 "    direktori gagal."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5316,7 +5355,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali ada sebuah pilihan tidak valid diberikan "
 "atau sebuah error terjadi."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5355,7 +5394,7 @@ msgstr ""
 "tidak valid diberikan\n"
 "    atau OPTNAME dinonaktifkan."
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5374,8 +5413,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5414,7 +5453,7 @@ msgstr ""
 "sebuah penulisan atau penempatan\n"
 "    error terjadi."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5467,7 +5506,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5490,7 +5529,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "sebuah error terjadi."
 
-#: builtins.c:1956
+#: builtins.c:1969
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
@@ -5553,7 +5592,7 @@ msgstr ""
 "NAMA tidak memiliki\n"
 "    spesifikasi penyelesaian yang terdefinisi."
 
-#: builtins.c:1986
+#: builtins.c:1999
 #, fuzzy
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
@@ -5630,7 +5669,7 @@ msgstr ""
 "    Mengembalikan sukses kecuali sebuah pilihan tidak valid diberikan atau "
 "ARRAY adalah baca-saja."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
diff --git a/po/it.gmo b/po/it.gmo
new file mode 100644 (file)
index 0000000..e1ee649
Binary files /dev/null and b/po/it.gmo differ
index 7e5bea454389cb7cbfade79c30959ba0efaf5cb8..03d01f7941dfab1c8b2729429c7e8fc66dc16f3e 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-10-17 09:14+0200\n"
 "Last-Translator: Sergio Zanchetta <primes2h@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -17,50 +17,52 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural= (n != 1)\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "indice dell'array errato"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: impossibile convertire un array indicizzato in uno associativo"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: chiave dell'array associativo non valida"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: impossibile assegnare a un indice non numerico"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr "%s: %s: deve essere usato un indice nell'assegnazione di un array associativo"
+msgstr ""
+"%s: %s: deve essere usato un indice nell'assegnazione di un array associativo"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: impossibile creare: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: impossibile trovare una mappatura per il comando"
+msgstr ""
+"bash_execute_unix_command: impossibile trovare una mappatura per il comando"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: il primo carattere non spazio non è \"\"\""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "carattere di chiusura \"%c\" non presente in %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: separatore di tipo due punti mancante"
@@ -70,36 +72,36 @@ msgstr "%s: separatore di tipo due punti mancante"
 msgid "`%s': invalid alias name"
 msgstr "\"%s\": nome alias non valido"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "modifica delle righe non abilitata"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "\"%s\": nome della mappatura non valido"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: impossibile leggere: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "\"%s\": impossibile eliminare l'associazione"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "\"%s\" nome della funzione sconosciuto"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s non è associato ad alcun tasto.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s può essere invocato tramite "
@@ -122,11 +124,15 @@ msgstr ""
 "    \n"
 "    Senza ESPR, restituisce "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME non impostata"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "troppi argomenti"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD non impostata"
 
@@ -135,7 +141,7 @@ msgstr "OLDPWD non impostata"
 msgid "line %d: "
 msgstr "riga %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "attenzione: "
@@ -145,11 +151,7 @@ msgstr "attenzione: "
 msgid "%s: usage: "
 msgstr "%s: uso: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "troppi argomenti"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: l'opzione richiede un argomento"
@@ -164,7 +166,7 @@ msgstr "%s: è necessario un argomento numerico"
 msgid "%s: not found"
 msgstr "%s: non trovata"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: opzione non valida"
@@ -174,7 +176,7 @@ msgstr "%s: opzione non valida"
 msgid "%s: invalid option name"
 msgstr "%s: nome dell'opzione non valido"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "\"%s\": non è un identificatore valido"
@@ -187,7 +189,7 @@ msgstr "numero ottale non valido"
 msgid "invalid hex number"
 msgstr "numero esadecimale non valido"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "numero non valido"
 
@@ -201,7 +203,7 @@ msgstr "%s: specifica di segnale non valida"
 msgid "`%s': not a pid or valid job spec"
 msgstr "\"%s\": non è un pid o un numero di job valido"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variabile in sola lettura"
@@ -273,26 +275,26 @@ msgstr "%s: errore nel recupero della directory corrente: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: specifica di job ambigua"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: nome azione non valido"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: nessun completamento specificato"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "attenzione: l'opzione -F potrebbe non funzionare come previsto"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "attenzione: l'opzione -C potrebbe non funzionare come previsto"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "funzione di completamento attualmente non in esecuzione"
 
@@ -304,7 +306,7 @@ msgstr "può essere usato solo in una funzione"
 msgid "cannot use `-f' to make functions"
 msgstr "impossibile usare \"-f\" per creare funzioni"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funzione in sola lettura"
@@ -314,7 +316,7 @@ msgstr "%s: funzione in sola lettura"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: impossibile eliminare variabili array in questo modo"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: impossibile convertire un array associativo in uno indicizzato"
@@ -343,8 +345,8 @@ msgstr "%s: non caricato dinamicamente"
 msgid "%s: cannot delete: %s"
 msgstr "%s: impossibile eliminare: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: è una directory"
@@ -359,8 +361,7 @@ msgstr "%s: non è un file regolare"
 msgid "%s: file is too large"
 msgstr "%s: file troppo grande"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: impossibile eseguire il file binario"
@@ -444,8 +445,11 @@ msgstr[1] "Comandi di shell corrispondenti alle parole chiave \""
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "nessun argomento della guida corrisponde a \"%s\". Provare \"help help\" o \"man -k %s\" o \"info %s\"."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"nessun argomento della guida corrisponde a \"%s\". Provare \"help help\" o "
+"\"man -k %s\" o \"info %s\"."
 
 #: builtins/help.def:185
 #, c-format
@@ -463,10 +467,12 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Questi comandi della shell sono definiti internamente. Digitare \"help\" per consultare questa lista.\n"
+"Questi comandi della shell sono definiti internamente. Digitare \"help\" per "
+"consultare questa lista.\n"
 "Digitare \"help nome\" per saperne di più sulla funzione \"nome\".\n"
 "Usare \"info bash\" per saperne di più sulla shell in generale.\n"
-"Usare \"man -k\" o \"info\" per saperne di più su comandi non presenti nella lista.\n"
+"Usare \"man -k\" o \"info\" per saperne di più su comandi non presenti nella "
+"lista.\n"
 "\n"
 "Un asterisco (*) vicino a un nome significa che il comando è disabilitato.\n"
 "\n"
@@ -479,7 +485,7 @@ msgstr "impossibile usare più di uno tra -anrw"
 msgid "history position"
 msgstr "posizione nella cronologia"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: espansione della cronologia non riuscita"
@@ -502,7 +508,7 @@ msgstr "%s: gli argomenti devono essere ID di processo o di job"
 msgid "Unknown error"
 msgstr "Errore sconosciuto"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "attesa espressione"
 
@@ -511,12 +517,12 @@ msgstr "attesa espressione"
 msgid "%s: not an indexed array"
 msgstr "%s: non è un array indicizzato"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: specifica di descrittore di file non valida"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: descrittore di file non valido: %s"
@@ -544,31 +550,31 @@ msgstr "nome della variabile array vuoto"
 msgid "array variable support required"
 msgstr "necessario il supporto alla variabile array"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "\"%s\": manca il carattere di formato"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "\"%c\": specifica di formato dell'orario non valida"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "\"%c\": carattere di formato non valido"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "attenzione: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "cifra esadecimale mancante in \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "cifra unicode mancante in \\%c"
@@ -604,10 +610,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Visualizza l'elenco delle directory attualmente in memoria. Le directory\n"
@@ -623,7 +631,8 @@ msgstr ""
 "    \tposizione nello stack stesso come prefisso\n"
 "    \n"
 "    Argomenti:\n"
-"      +N\tVisualizza l'N-sima voce contando a partire da sinistra dell'elenco\n"
+"      +N\tVisualizza l'N-sima voce contando a partire da sinistra "
+"dell'elenco\n"
 "    \tmostrato da dirs quando invocato senza opzioni, iniziando da zero.\n"
 "    \n"
 "      -N\tVisualizza l'N-sima voce contando a partire da destra dell'elenco\n"
@@ -713,35 +722,36 @@ msgstr ""
 "    \n"
 "    Il comando interno \"dirs\" visualizza lo stack delle directory."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: specifica di timeout non valida"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "errore in lettura: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "è possibile eseguire \"return\" solo da una funzione o da uno script chiamato"
+msgstr ""
+"è possibile eseguire \"return\" solo da una funzione o da uno script chiamato"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "impossibile azzerare contemporaneamente una funzione e una variabile"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: impossibile azzerare"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: impossibile azzerare: %s in sola lettura"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: non è una variabile array"
@@ -755,11 +765,11 @@ msgstr "%s: non è una funzione"
 msgid "shift count"
 msgstr "numero di scorrimenti"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "impossibile impostare e azzerare opzioni di shell contemporaneamente"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nome dell'opzione di shell non valido"
@@ -801,7 +811,7 @@ msgstr "%s è una funzione\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s è un comando interno di shell\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s è %s\n"
@@ -811,26 +821,26 @@ msgstr "%s è %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "hash effettuato su %s (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: argomento di limite non valido"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "\"%c\": comando errato"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: impossibile recuperare il limite: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limite"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: impossibile modificare il limite: %s"
@@ -849,7 +859,7 @@ msgstr "\"%c\": operatore di modo simbolico non valido"
 msgid "`%c': invalid symbolic mode character"
 msgstr "\"%c\": carattere di modo simbolico non valido"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " riga "
 
@@ -863,23 +873,23 @@ msgstr "ultimo comando: %s\n"
 msgid "Aborting..."
 msgstr "Interruzione..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "errore di comando sconosciuto"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "tipo di comando errato"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "connettore errato"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "salto errato"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variabile non assegnata"
@@ -894,102 +904,117 @@ msgstr "\atempo di attesa scaduto per l'input: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "impossibile redirigere lo standard input da /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: \"%c\": carattere di formato non valido"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "errore della pipe"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: limitato: impossibile specificare \"/\" nei nomi dei comandi"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comando non trovato"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: interprete errato"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: impossibile eseguire il file binario"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s è un comando interno di shell\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "impossibile duplicare fd %d su fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "superato il livello di ricorsione dell'espressione"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "underflow dello stack di ricorsione"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "errore di sintassi nell'espressione"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "tentata un'assegnazione a una non variabile"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "divisione per 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: token di expassign errato"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "atteso \":\" per l'espressione condizionale"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "esponente minore di 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "atteso identificatore dopo un pre-incremento o un pre-decremento"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "\")\" mancante"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "errore di sintassi: atteso un operando"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "errore di sintassi: operatore aritmetico non valido"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (il token dell'errore è \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "base aritmetica non valida"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valore troppo grande per la base"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: errore di espressione\n"
@@ -998,163 +1023,165 @@ msgstr "%s: errore di espressione\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: impossibile accedere alle directory padre"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "impossibile reimpostare il modo nodelay per fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "impossibile allocare un nuovo descrittore di file per l'input della bash da fd %d"
+msgstr ""
+"impossibile allocare un nuovo descrittore di file per l'input della bash da "
+"fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffer già esistente per il nuovo fd %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pipe pgrp"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "il pid %d del fork appare nel job in esecuzione %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "eliminazione del job %d interrotto con il gruppo di processi %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: processo %5ld (%s) in the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) segnato come ancora in vita"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: pid inesistente"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Segnale %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Completato"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Fermato"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Fermato(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "In esecuzione"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Eseguito(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Uscita %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Stato sconosciuto"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dump creato) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (dir: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid del figlio (%ld a %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: il pid %ld non è un figlio di questa shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: nessun record del processo %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: il job %d è fermo"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: il job è terminato"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: il job %d è già in background"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: attivato WNOHANG per evitare blocchi indefiniti"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: riga %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dump creato)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(dir ora: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp non riuscita"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: disciplina di linea"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "impossibile impostare il gruppo di processi del terminale (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "nessun controllo dei job in questa shell"
 
@@ -1211,7 +1238,8 @@ msgstr "realloc: dimensioni diverse dei blocchi di inizio e di fine"
 #: lib/malloc/table.c:177
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr "register_alloc: forse la tavola di allocazione è piena con FIND_ALLOC\n"
+msgstr ""
+"register_alloc: forse la tavola di allocazione è piena con FIND_ALLOC\n"
 
 #: lib/malloc/table.c:184
 #, c-format
@@ -1223,7 +1251,7 @@ msgstr "register_alloc: forse %p è già come allocato nella tabella\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_alloc: forse %p è già come libero nella tabella\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "base non valida"
 
@@ -1246,22 +1274,22 @@ msgstr "%s: specifica del percorso di rete errata"
 msgid "network operations not supported"
 msgstr "operazione di rete non supportata"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: impossibile cambiare la localizzazione (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: impossibile cambiare la localizzazione (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: impossibile cambiare la localizzazione (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: impossibile cambiare la localizzazione (%s): %s"
@@ -1292,118 +1320,121 @@ msgstr "errore di sintassi: \";\" non atteso"
 msgid "syntax error: `((%s))'"
 msgstr "errore di sintassi: \"((%s))\""
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tipo di istruzione errata %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "here-document alla riga %d è delimitato da un EOF (era richiesto \"%s\")"
+msgstr ""
+"here-document alla riga %d è delimitato da un EOF (era richiesto \"%s\")"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr "make_redirection: istruzione di reindirizzamento \"%d\" fuori dell'intervallo"
+msgstr ""
+"make_redirection: istruzione di reindirizzamento \"%d\" fuori dell'intervallo"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "EOF non atteso durante la ricerca di \"%c\""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "EOF non atteso durante la ricerca di \"]]\""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "errore di sintassi nell'espressione condizionale: token non atteso \"%s\""
+msgstr ""
+"errore di sintassi nell'espressione condizionale: token non atteso \"%s\""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "errore di sintassi nell'espressione condizionale"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "token non atteso \"%s\", era atteso \")\""
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "atteso \")\""
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "argomento non atteso \"%s\" per l'operatore unario condizionale"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "argomento non atteso per l'operatore unario condizionale"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "token non atteso \"%s\", era atteso un operatore binario condizionale"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "atteso operatore binario condizionale"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "argomento non atteso \"%s\" per l'operatore binario condizionale"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "argomento non atteso per l'operatore binario condizionale"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "token non atteso \"%c\" nel comando condizionale"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "token non atteso \"%s\" nel comando condizionale"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "token non atteso %d nel comando condizionale"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "errore di sintassi vicino al token non atteso \"%s\""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "errore di sintassi vicino a \"%s\""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "errore di sintassi: EOF non atteso"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "errore di sintassi"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Usare \"%s\" per uscire dalla shell.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF non atteso durante la ricerca di \")\""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: funzione \"%s\" non trovata"
@@ -1413,26 +1444,26 @@ msgstr "completion: funzione \"%s\" non trovata"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: COMPSPEC NULL"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: connettore errato \"%d\""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: descrittore di file non valido"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: puntatore a file NULL"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != numfile xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": carattere di formato non valido"
@@ -1470,33 +1501,33 @@ msgstr "%s: impossibile assegnare fd a una variabile"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port non supportata senza rete"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "errore di reindirizzamento: impossibile duplicare fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "impossibile trovare /tmp, è necessario crearla"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp deve essere un nome di directory valido"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opzione non valida"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Manca il nome"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versione %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1505,39 +1536,43 @@ msgstr ""
 "Uso:\t%s [opzione lunga GNU] [opzione] ...\n"
 "\t%s [opzione lunga GNU] [opzione] file-script ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Opzioni lunghe GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opzioni di shell:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD o -c comando o -O opzione_shopt\t\t(solo invocazione)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\topzione -%s oppure -o\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Digitare «%s -c \"help set\"» per ulteriori informazioni sulle opzioni di shell.\n"
+msgstr ""
+"Digitare «%s -c \"help set\"» per ulteriori informazioni sulle opzioni di "
+"shell.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Digitare \"%s -c help\" per ulteriori informazioni sui comandi interni di shell.\n"
+msgstr ""
+"Digitare \"%s -c help\" per ulteriori informazioni sui comandi interni di "
+"shell.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Usare il comando \"bashbug\" per segnalare i bug.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: operazione non valida"
@@ -1711,81 +1746,85 @@ msgstr "Numero di segnale sconosciuto"
 msgid "Unknown Signal #%d"
 msgstr "Segnale sconosciuto n° %d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "sostituzione errata: nessuna chiusura di \"%s\" in %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: impossibile assegnare una lista a un membro di un array"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "impossibile creare una pipe per la sostituzione del processo"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "impossibile creare un figlio per la sostituzione del processo"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "impossibile aprire la pipe con nome %s in lettura"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "impossibile aprire la pipe con nome %s in scrittura"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "impossibile duplicare una pipe con nome %s come fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "impossibile creare una pipe per la sostituzione del comando"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "impossibile creare un figlio per la sostituzione del comando"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: impossibile duplicare la pipe come fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametro nullo o non impostato"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expressione di sottostringa < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: sostituzione errata"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: impossibile assegnare in questo modo"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "le versioni future della shell forzeranno la valutazione come fosse una sostituzione aritmetica"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"le versioni future della shell forzeranno la valutazione come fosse una "
+"sostituzione aritmetica"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sostituzione errata: manca «\"» di chiusura in %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "nessuna corrispondenza: %s"
@@ -1822,76 +1861,83 @@ msgstr "%s: atteso operatore binario"
 msgid "missing `]'"
 msgstr "\"]\" mancante"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "numero di segnale non valido"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: valore errato in trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: il gestore dei segnali è SIG_DFL, viene inviato nuovamente %d (%s)"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: il gestore dei segnali è SIG_DFL, viene inviato "
+"nuovamente %d (%s)"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: segnale errato %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "errore nell'importazione della definizione di funzione per \"%s\""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "livello di shell (%d) troppo alto, reimpostato a 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: nessun contesto di funzione nell'ambito corrente"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: nessun contesto di funzione nell'ambito corrente"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s ha exportstr null"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "carattere non valido %d in exportstr per %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "nessun \"=\" in exportstr per %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: la prima parte di shell_variables non è un contesto di funzione"
+msgstr ""
+"pop_var_context: la prima parte di shell_variables non è un contesto di "
+"funzione"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: nessun contesto global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope: la prima parte di shell_variables non è un ambito temporaneo d'ambiente"
+msgstr ""
+"pop_scope: la prima parte di shell_variables non è un ambito temporaneo "
+"d'ambiente"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: impossibile aprire come FILE"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: valore non valido per il descrittore del file di traccia"
@@ -1901,8 +1947,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright © 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1926,8 +1976,12 @@ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licenza GPLv2+: GNU GPL versione 2 o successive <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licenza GPLv2+: GNU GPL versione 2 o successive <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1958,8 +2012,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nome [nome ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m mappatura] [-f nomefile] [-q nome] [-u nome] [-r seqtasti] [-x seqtasti:comando-shell] [seqtasti:funzione-readline o comando-readline]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m mappatura] [-f nomefile] [-q nome] [-u nome] [-r "
+"seqtasti] [-x seqtasti:comando-shell] [seqtasti:funzione-readline o comando-"
+"readline]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2066,8 +2126,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [modello ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d posiz] [n] oppure history -anrw [nomefile] oppure history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d posiz] [n] oppure history -anrw [nomefile] oppure history -"
+"ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2078,16 +2142,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [specjob ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s specsegn | -n numsegn | -specsegn] pid | specjob ... oppure kill -l [specsegn]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s specsegn | -n numsegn | -specsegn] pid | specjob ... oppure kill -l "
+"[specsegn]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a array] [-d delim] [-i testo] [-n ncaratt] [-N ncaratt] [-p stringa] [-t secondi] [-u fd] [nome ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a array] [-d delim] [-i testo] [-n ncaratt] [-N ncaratt] [-p "
+"stringa] [-t secondi] [-u fd] [nome ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2146,7 +2218,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nome [nome ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [limite]"
 
 #: builtins.c:172
@@ -2154,7 +2227,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [modo]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2182,8 +2256,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case PAROLA in [MODELLO [| MODELLO]...) COMANDI ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if COMANDI; then COMANDI; [ elif COMANDI; then COMANDI; ]... [ else COMANDI; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if COMANDI; then COMANDI; [ elif COMANDI; then COMANDI; ]... [ else "
+"COMANDI; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2242,24 +2320,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formato [argomenti]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opzione] [-A azione] [-G modglob] [-W elencoparole]  [-F funzione] [-C comando] [-X modfiltro] [-P prefisso] [-S suffisso] [nome ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opzione] [-A azione] [-G modglob] [-"
+"W elencoparole]  [-F funzione] [-C comando] [-X modfiltro] [-P prefisso] [-S "
+"suffisso] [nome ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o opzione]  [-A azione] [-G modglob] [-W elencoparole]  [-F funzione] [-C comando] [-X modfiltro] [-P prefisso] [-S suffisso] [parola]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o opzione]  [-A azione] [-G modglob] [-W "
+"elencoparole]  [-F funzione] [-C comando] [-X modfiltro] [-P prefisso] [-S "
+"suffisso] [parola]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o opzione] [-DE] [nome ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C callback] [-c quantità] [array]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C callback] [-c "
+"quantità] [array]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C callback] [-c quantità] [array]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C callback] [-"
+"c quantità] [array]"
 
 #: builtins.c:254
 msgid ""
@@ -2276,7 +2373,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definisce o visualizza alias.\n"
@@ -2284,15 +2382,18 @@ msgstr ""
 "    Senza argomenti, \"alias\" stampa l'elenco degli alias nella forma\n"
 "    riusabile \"alias NOME=VALORE\" sullo standard output.\n"
 "    \n"
-"    Altrimenti, un alias è definito per ogni NOME a cui è fornito un VALORE.\n"
-"    Uno spazio finale in VALORE determina un controllo della parola successiva\n"
+"    Altrimenti, un alias è definito per ogni NOME a cui è fornito un "
+"VALORE.\n"
+"    Uno spazio finale in VALORE determina un controllo della parola "
+"successiva\n"
 "    che andrà a sostituire l'alias quando viene espanso.\n"
 "    \n"
 "    Opzioni:\n"
 "      -p\tStampa tutti gli alias definiti in un formato riusabile\n"
 "    \n"
 "    Stato di uscita:\n"
-"    alias restituisce vero a meno che non venga fornito un NOME per il quale\n"
+"    alias restituisce vero a meno che non venga fornito un NOME per il "
+"quale\n"
 "    non sia stato definito alcun alias."
 
 #: builtins.c:276
@@ -2312,6 +2413,7 @@ msgstr ""
 "    Restituisce successo a meno che NOME non sia un alias esistente."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2323,61 +2425,80 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 "Imposta le associazioni di tasti e le variabili di Readline.\n"
 "    \n"
-"    Associa una sequenza di tasti a una funzione o a una macro Readline, oppure imposta una\n"
-"    variabile di Readline.  La sintassi di argomento senza opzione è equivalente a quella\n"
+"    Associa una sequenza di tasti a una funzione o a una macro Readline, "
+"oppure imposta una\n"
+"    variabile di Readline.  La sintassi di argomento senza opzione è "
+"equivalente a quella\n"
 "    trovata in ~/.inputrc, ma deve essere passata come singolo argomento:\n"
 "    es., bind '\"\\C-x\\C-r\": ri-leggi-file-init'.\n"
 "    \n"
 "    Opzioni:\n"
-"      -m  mappatura      Usa MAPPATURA come la mappatura per la durata di questo\n"
-"                         comando.  Nomi accettabili per la mappatura sono emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"      -m  mappatura      Usa MAPPATURA come la mappatura per la durata di "
+"questo\n"
+"                         comando.  Nomi accettabili per la mappatura sono "
+"emacs,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command e vi-insert.\n"
 "      -l                 Elenca i nomi delle funzioni.\n"
 "      -P                 Elenca i nomi delle funzioni e le associazioni.\n"
-"      -p                 Elenca le funzioni e le associazioni in una forma che\n"
+"      -p                 Elenca le funzioni e le associazioni in una forma "
+"che\n"
 "                         possa essere riusata come input.\n"
-"      -S                 Elenca le sequenze di tasti che invocano le macro e i loro valori.\n"
-"      -s                 Elenca le sequenze di tasti che invocano le macro e i loro valori\n"
+"      -S                 Elenca le sequenze di tasti che invocano le macro e "
+"i loro valori.\n"
+"      -s                 Elenca le sequenze di tasti che invocano le macro e "
+"i loro valori\n"
 "                         in una forma che possa essere riusata come input.\n"
 "      -V                 Elenca i nomi e i valori delle variabili.\n"
-"      -v                 Elenca i nomi e i valori delle variabili in una forma che possa\n"
+"      -v                 Elenca i nomi e i valori delle variabili in una "
+"forma che possa\n"
 "                         essere riusata come input.\n"
-"      -q  nome-funzione  Identifica il tasto che invoca la funzione nominata.\n"
-"      -u  nome-funzione  Rimuove l'associazione tra la funzione nominata e tutti i tasti associati.\n"
+"      -q  nome-funzione  Identifica il tasto che invoca la funzione "
+"nominata.\n"
+"      -u  nome-funzione  Rimuove l'associazione tra la funzione nominata e "
+"tutti i tasti associati.\n"
 "      -r  seqtasti       Rimuove l'associazione per la SEQTASTI.\n"
 "      -f  nomefile       Legge le associazioni di tasti da NOMEFILE.\n"
-"      -x  seqtasti:comando-shell\tEsegue il COMANDO-SHELL quando viene inserita\n"
+"      -x  seqtasti:comando-shell\tEsegue il COMANDO-SHELL quando viene "
+"inserita\n"
 "    \t\t\t\t\tla SEQTASTI.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    bind restituisce 0 a meno che non sia fornita una opzione non riconosciuta o si riscontri un errore."
+"    bind restituisce 0 a meno che non sia fornita una opzione non "
+"riconosciuta o si riscontri un errore."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2389,13 +2510,14 @@ msgid ""
 msgstr ""
 "Esce da cicli for, while o until.\n"
 "    \n"
-"    Esce da un ciclo FOR, WHILE o UNTIL. Se è specificato N, interrompe N cicli\n"
+"    Esce da un ciclo FOR, WHILE o UNTIL. Se è specificato N, interrompe N "
+"cicli\n"
 "    racchiusi.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Lo stato di uscita è 0 a meno che N non sia maggiore o uguale a 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2413,13 +2535,14 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Lo stato di uscita è 0 a meno che N non sia maggiore o uguale a 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2427,15 +2550,19 @@ msgid ""
 msgstr ""
 "Esegue comandi interni di shell.\n"
 "    \n"
-"    Esegue il COMINTERNO-SHELL con ARGOMENTI senza portare a termine una ricerca\n"
-"    comandi. Ciò è utile quando si desidera reimplementare un comando interno come una\n"
-"    funzione di shell, ma è necessario eseguire il comando all'interno della funzione.\n"
+"    Esegue il COMINTERNO-SHELL con ARGOMENTI senza portare a termine una "
+"ricerca\n"
+"    comandi. Ciò è utile quando si desidera reimplementare un comando "
+"interno come una\n"
+"    funzione di shell, ma è necessario eseguire il comando all'interno della "
+"funzione.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce lo stato di uscita del COMINTERNO-SHELL, o falso se il COMINTERNO-SHELL\n"
+"    Restituisce lo stato di uscita del COMINTERNO-SHELL, o falso se il "
+"COMINTERNO-SHELL\n"
 "    non è un comando interno di shell."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2453,73 +2580,99 @@ msgstr ""
 "Restituisce il contesto della chiamata alla subroutine corrente.\n"
 "    \n"
 "    Senza ESPR, restituisce \"$riga $nomefile\".  Con ESPR, restituisce\n"
-"    \"$riga $subroutine $nomefile\"; questa informazione aggiuntiva può essere usata\n"
+"    \"$riga $subroutine $nomefile\"; questa informazione aggiuntiva può "
+"essere usata\n"
 "    per fornire uno stack trace.\n"
 "    \n"
-"    Il valore dell'ESPR indica di quanti frame di chiamata tornare indietro rispetto\n"
+"    Il valore dell'ESPR indica di quanti frame di chiamata tornare indietro "
+"rispetto\n"
 "    a quello attuale; in cima c'è il frame 0.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce 0 a meno che non sia in esecuzione una funzione di shell o che l'ESPR\n"
+"    Restituisce 0 a meno che non sia in esecuzione una funzione di shell o "
+"che l'ESPR\n"
 "    non sia valida."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Cambia la directory di lavoro della shell.\n"
 "    \n"
-"    Cambia la directory corrente a DIR. La DIR predefinita è il valore della variabile\n"
+"    Cambia la directory corrente a DIR. La DIR predefinita è il valore della "
+"variabile\n"
 "    HOME della shell.\n"
 "    \n"
-"    La variabile CDPATH definisce il percorso di ricerca per la directory che contiene\n"
-"    DIR. I nomi di directory alternative in CDPATH sono separati da un due punti (:).\n"
-"    Una nome nullo di directory corrisponde alla directory corrente.  Se DIR inizia\n"
+"    La variabile CDPATH definisce il percorso di ricerca per la directory "
+"che contiene\n"
+"    DIR. I nomi di directory alternative in CDPATH sono separati da un due "
+"punti (:).\n"
+"    Una nome nullo di directory corrisponde alla directory corrente.  Se DIR "
+"inizia\n"
 "    con uno slash (/), CDPATH non viene usato.\n"
 "    \n"
-"    Se la directory non viene trovata e l'opzione di shell \"cdable_vars\" è impostata,\n"
-"    si assume che la parola sia un nome di variabile. Se questa variabile ha un valore,\n"
+"    Se la directory non viene trovata e l'opzione di shell \"cdable_vars\" è "
+"impostata,\n"
+"    si assume che la parola sia un nome di variabile. Se questa variabile ha "
+"un valore,\n"
 "    viene usato per DIR.\n"
 "    \n"
 "    Opzioni:\n"
 "        -L\tForza a seguire i collegamenti simbolici\n"
-"        -P\tUsa la struttura fisica della directory senza seguire i collegamenti\n"
+"        -P\tUsa la struttura fisica della directory senza seguire i "
+"collegamenti\n"
 "    \tsimbolici\n"
-"        -e\tSe viene fornita l'opzione -P e non può essere determinata con successo\n"
+"        -e\tSe viene fornita l'opzione -P e non può essere determinata con "
+"successo\n"
 "    \tla directory di lavoro corrente, esce con uno stato diverso da zero\n"
 "    \n"
-"    Il valore predefinito è seguire i collegamenti simbolici, come se fosse specificato \"-L\".\n"
+"    Il valore predefinito è seguire i collegamenti simbolici, come se fosse "
+"specificato \"-L\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce 0 se viene cambiata la directory o se $PWD è impostata con successo quando\n"
+"    Restituisce 0 se viene cambiata la directory o se $PWD è impostata con "
+"successo quando\n"
 "    viene usato -P; altrimenti un valore diverso da zero."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2541,13 +2694,15 @@ msgstr ""
 "    \tdi lavoro corrente\n"
 "      -P\tStampa la directory fisica senza alcun collegamento simbolico\n"
 "    \n"
-"    In maniera predefinita \"pwd\" si comporta come se fosse specificato \"-L\".\n"
+"    In maniera predefinita \"pwd\" si comporta come se fosse specificato \"-L"
+"\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce 0 a meno che non venga fornita una opzione non valida o che la\n"
+"    Restituisce 0 a meno che non venga fornita una opzione non valida o che "
+"la\n"
 "    directory corrente non possa essere letta."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2563,7 +2718,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    ha sempre successo."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2575,7 +2730,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    ha sempre successo."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2587,12 +2742,13 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Sempre un insuccesso."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2606,20 +2762,25 @@ msgid ""
 msgstr ""
 "Esegue un comando semplice o visualizza informazioni sui comandi.\n"
 "    \n"
-"    Esegue il COMANDO con gli ARGOMENTI ignorando la ricerca delle funzioni di shell o\n"
-"    visualizza informazioni sui COMANDI specificati.  Può essere usato per invocare comandi\n"
+"    Esegue il COMANDO con gli ARGOMENTI ignorando la ricerca delle funzioni "
+"di shell o\n"
+"    visualizza informazioni sui COMANDI specificati.  Può essere usato per "
+"invocare comandi\n"
 "    sul disco quando esiste una funzione con lo stesso nome.\n"
 "    \n"
 "    Opzioni:\n"
-"      -p\tUsa un valore predefinito per il PERCORSO che garantisce che vengano trovate tutte\n"
+"      -p\tUsa un valore predefinito per il PERCORSO che garantisce che "
+"vengano trovate tutte\n"
 "    \tle utilità standard\n"
-"      -v\tStampa una descrizione del COMANDO simile al comando interno \"type\"\n"
+"      -v\tStampa una descrizione del COMANDO simile al comando interno \"type"
+"\"\n"
 "      -V\tStampa una descrizione più prolissa di ciascun COMANDO\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce lo stato di uscita del COMANDO o insuccesso se il COMANDO non viene trovato."
+"    Restituisce lo stato di uscita del COMANDO o insuccesso se il COMANDO "
+"non viene trovato."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2649,7 +2810,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2657,14 +2819,18 @@ msgid ""
 msgstr ""
 "Imposta i valori e gli attributi delle variabili.\n"
 "    \n"
-"    Dichiara le variabili e fornisce loro attributi.  Se non vengono forniti NOMI,\n"
+"    Dichiara le variabili e fornisce loro attributi.  Se non vengono forniti "
+"NOMI,\n"
 "    visualizza gli attributi e i valori di tutte le variabili.\n"
 "    \n"
 "    Opzioni:\n"
-"      -f\tLimita l'azione o la visualizzazione ai nomi e alle definizioni di funzione\n"
-"      -F\tLimita la visualizzazione ai soli nomi di funzione (più numero di riga e\n"
+"      -f\tLimita l'azione o la visualizzazione ai nomi e alle definizioni di "
+"funzione\n"
+"      -F\tLimita la visualizzazione ai soli nomi di funzione (più numero di "
+"riga e\n"
 "    \tfile sorgente durante il debug)\n"
-"      -g\tCrea variabili globali quando usato in una funzione di shell; altrimenti\n"
+"      -g\tCrea variabili globali quando usato in una funzione di shell; "
+"altrimenti\n"
 "    \tè ignorato\n"
 "      -p\tVisualizza gli attributi e i valori di ciascun NOME\n"
 "    \n"
@@ -2680,16 +2846,19 @@ msgstr ""
 "    \n"
 "    Usando \"+\" al posto di \"-\" disattiva l'attributo fornito.\n"
 "    \n"
-"    Le variabili con attributo intero vengono valutate aritmeticamente (vedere\n"
+"    Le variabili con attributo intero vengono valutate aritmeticamente "
+"(vedere\n"
 "    il comando \"let\") quando alla variabile è assegnato un valore.\n"
 "    \n"
-"    Quando viene usato in una funzione, \"declare\" rende locali i NOMI, come con\n"
+"    Quando viene usato in una funzione, \"declare\" rende locali i NOMI, "
+"come con\n"
 "    il comando \"local\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o si riscontri un errore."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2699,7 +2868,7 @@ msgstr ""
 "    \n"
 "    Obsoleto. Vedere \"help declare\"."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2715,21 +2884,28 @@ msgid ""
 msgstr ""
 "Definisce variabili locali.\n"
 "    \n"
-"    Crea una variabile locale chiamata NOME fornendogli un VALORE. L'OPZIONE può\n"
+"    Crea una variabile locale chiamata NOME fornendogli un VALORE. L'OPZIONE "
+"può\n"
 "    essere una qualsiasi opzione accettata da \"declare\".\n"
 "    \n"
-"    Le variabili locali possono essere usate solo all'interno di una funzione; sono\n"
-"    visibili solo alla funzione nella quale sono definite e ai relativi figli.\n"
+"    Le variabili locali possono essere usate solo all'interno di una "
+"funzione; sono\n"
+"    visibili solo alla funzione nella quale sono definite e ai relativi "
+"figli.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita un'opzione non valida, non si\n"
+"    Restituisce successo a meno che non venga fornita un'opzione non valida, "
+"non si\n"
 "    riscontri un errore o la shell non stia eseguendo una funzione."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2741,6 +2917,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2761,8 +2938,10 @@ msgstr ""
 "    \n"
 "    Opzioni:\n"
 "      -n\tNon accoda un carattere di ritorno a capo\n"
-"      -e\tAbilita l'interpretazione dei seguenti caratteri backslash di escape\n"
-"      -E\tDisabilita esplicitamente l'interpretazione dei caratteri backslash di escape\n"
+"      -e\tAbilita l'interpretazione dei seguenti caratteri backslash di "
+"escape\n"
+"      -E\tDisabilita esplicitamente l'interpretazione dei caratteri "
+"backslash di escape\n"
 "    \n"
 "    \"echo\" interpreta i seguenti caratteri backslash di escape:\n"
 "      \\a\tavviso (campanello)\n"
@@ -2775,15 +2954,18 @@ msgstr ""
 "      \\t\ttabulazione orizzontale\n"
 "      \\v\ttabulazione verticale\n"
 "      \\\\\tbackslash\n"
-"      \\0nnn\til carattere il cui codice ASCII è NNN (ottale).  NNN può avere\n"
+"      \\0nnn\til carattere il cui codice ASCII è NNN (ottale).  NNN può "
+"avere\n"
 "    \tda 0 a 3 cifre ottali\n"
-"      \\xHH\til carattere otto bit il cui valore è HH (esadecimale).  HH può\n"
+"      \\xHH\til carattere otto bit il cui valore è HH (esadecimale).  HH "
+"può\n"
 "    \tavere una o due cifre esadecimali\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga riscontrato un errore di scrittura."
+"    Restituisce successo a meno che non venga riscontrato un errore di "
+"scrittura."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2803,9 +2985,10 @@ msgstr ""
 "      -n\tNon accoda un ritorno a capo\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga riscontrato un errore di scrittura."
+"    Restituisce successo a meno che non venga riscontrato un errore di "
+"scrittura."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2833,13 +3016,17 @@ msgid ""
 msgstr ""
 "Abilita o disabilita comandi interni di shell.\n"
 "    \n"
-"    Abilita o disabilita comandi interni di shell. La disabilitazione permette di\n"
-"    eseguire un comando su disco che abbia lo stesso nome del comando interno\n"
+"    Abilita o disabilita comandi interni di shell. La disabilitazione "
+"permette di\n"
+"    eseguire un comando su disco che abbia lo stesso nome del comando "
+"interno\n"
 "    di shell senza dover usare un nome di percorso completo.\n"
 "    \n"
 "    Opzioni:\n"
-"      -a\tStampa un elenco di comandi interni mostrando se sono abilitati o meno\n"
-"      -n\tDisabilita ogni NOME o visualizza un elenco di comandi interni disabilitati\n"
+"      -a\tStampa un elenco di comandi interni mostrando se sono abilitati o "
+"meno\n"
+"      -n\tDisabilita ogni NOME o visualizza un elenco di comandi interni "
+"disabilitati\n"
 "      -p\tStampa l'elenco dei comandi interni in un formato riusabile\n"
 "      -s\tStampa solo i nomi dei comandi interni \"speciali\" Posix\n"
 "    \n"
@@ -2849,17 +3036,20 @@ msgstr ""
 "    \n"
 "    Senza opzioni viene abilitato ogni NOME.\n"
 "    \n"
-"    Per usare il comando \"test\" trovato in $PATH invece di quello interno della\n"
+"    Per usare il comando \"test\" trovato in $PATH invece di quello interno "
+"della\n"
 "    shell, digitare \"enable -n test\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che NOME non sia un comando interno di shell o si riscontri un errore."
+"    Restituisce successo a meno che NOME non sia un comando interno di shell "
+"o si riscontri un errore."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2871,9 +3061,10 @@ msgstr ""
 "    come input per la shell ed esegue i comandi risultanti.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce lo stato di uscita del comando o successo se il comando è nullo."
+"    Restituisce lo stato di uscita del comando o successo se il comando è "
+"nullo."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2918,45 +3109,59 @@ msgstr ""
 "    Getopts è usato dalle procedure di shell per analizzare i parametri\n"
 "    posizionali come opzioni.\n"
 "    \n"
-"    STRINGAOPZ contiene le lettere di opzione da riconoscere; se una lettera\n"
-"    è seguita da un due punti, ci si aspetta che l'opzione abbia un argomento,\n"
+"    STRINGAOPZ contiene le lettere di opzione da riconoscere; se una "
+"lettera\n"
+"    è seguita da un due punti, ci si aspetta che l'opzione abbia un "
+"argomento,\n"
 "    che dovrebbe essere separato da uno spazio.\n"
 "    \n"
 "    Ogni volta che viene evocato getopts posiziona l'opzione successiva\n"
 "    nella variabile di shell $nome inizializzando il nome, se non esiste,\n"
 "    e l'indice dell'argomento successivo da elaborare nella variabile di\n"
 "    shell OPTIND.  OPTIND è inizializzata a 1 ogni volta che viene invocata\n"
-"    la shell o uno script di shell.  Quando una opzione richiede un argomento,\n"
+"    la shell o uno script di shell.  Quando una opzione richiede un "
+"argomento,\n"
 "    getopts posiziona tale argomento nella variabile di shell OPTARG.\n"
 "    \n"
-"    getopts riporta gli errori in uno o due modi.  Se il primo carattere della\n"
+"    getopts riporta gli errori in uno o due modi.  Se il primo carattere "
+"della\n"
 "    STRINGAOPZ è un due punti, riporta gli errori in silenzio.  In questa\n"
-"    modalità non vengono stampati messaggi di errore.  Se viene riscontrata una\n"
-"    opzione non valida, getopts posiziona il carattere di opzione trovato in\n"
+"    modalità non vengono stampati messaggi di errore.  Se viene riscontrata "
+"una\n"
+"    opzione non valida, getopts posiziona il carattere di opzione trovato "
+"in\n"
 "    ARGOPZ.  Se un argomento richiesto non viene trovato, getopts posiziona\n"
-"    un \":\" nel NOME e imposta ARGOPZ al carattere di opzione trovato.  Se getopts\n"
-"    non è in modalità silenziosa e viene riscontrata una opzione non valida, getopts\n"
-"    posiziona \"?\" nel NOME e azzera ARGOPZ.  Se un argomento richiesto non viene\n"
-"    trovato, viene posizionato un \"?\" nel NOME, ARGOPZ viene azzerato e viene stampato\n"
+"    un \":\" nel NOME e imposta ARGOPZ al carattere di opzione trovato.  Se "
+"getopts\n"
+"    non è in modalità silenziosa e viene riscontrata una opzione non valida, "
+"getopts\n"
+"    posiziona \"?\" nel NOME e azzera ARGOPZ.  Se un argomento richiesto non "
+"viene\n"
+"    trovato, viene posizionato un \"?\" nel NOME, ARGOPZ viene azzerato e "
+"viene stampato\n"
 "    un messaggio diagnostico.\n"
 "    \n"
-"    Se il valore della variabile di shell ERROPZ è pari a 0, getopts disabilita\n"
-"    la stampa dei messaggi di errore anche se il primo carattere della STRINGAOPZ\n"
+"    Se il valore della variabile di shell ERROPZ è pari a 0, getopts "
+"disabilita\n"
+"    la stampa dei messaggi di errore anche se il primo carattere della "
+"STRINGAOPZ\n"
 "    non è un due punti.  Il valore predefinito di ERROPZ è pari a 1.\n"
 "    \n"
 "    Getopts normalmente analizza i parametri posizionali ($0 - $9), ma se\n"
 "    vengono forniti più argomenti, vengono analizzati questi ultimi.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo se viene trovata una opzione, insuccesso se viene raggiunta\n"
+"    Restituisce successo se viene trovata una opzione, insuccesso se viene "
+"raggiunta\n"
 "    la fine delle opzioni o viene riscontrato un errore."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2964,16 +3169,20 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Sostituisce la shell con il comando fornito.\n"
 "    \n"
-"    Esegue il COMANDO, sostituendo questa shell con il programma specificato.\n"
-"    Gli ARGOMENTI diventano gli argomenti per il COMANDO. Se il COMANDO non è specificato,\n"
+"    Esegue il COMANDO, sostituendo questa shell con il programma "
+"specificato.\n"
+"    Gli ARGOMENTI diventano gli argomenti per il COMANDO. Se il COMANDO non "
+"è specificato,\n"
 "    ogni redirezione avrà effetto nella shell corrente.\n"
 "    \n"
 "    Opzioni:\n"
@@ -2981,13 +3190,15 @@ msgstr ""
 "      -c\t\tEsegue il COMANDO con un ambiente vuoto\n"
 "      -l\t\tPosiziona un trattino nell'argomento zero per il COMANDO\n"
 "    \n"
-"    Se il comando non può essere eseguito una shell non interattiva esce, a meno che\n"
+"    Se il comando non può essere eseguito una shell non interattiva esce, a "
+"meno che\n"
 "    non venga impostata l'opzione di shell \"execfail\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia trovato il COMANDO o si riscontri un errore di ridirezione."
+"    Restituisce successo a meno che non sia trovato il COMANDO o si "
+"riscontri un errore di ridirezione."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2999,29 +3210,33 @@ msgstr ""
 "    Esce dalla shell con uno stato N. Se N è omesso lo stato di uscita\n"
 "    è quello dell'ultimo comando eseguito."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Esce da una shell di login.\n"
 "    \n"
-"    Esce da una shell di login con stato di uscita N. Restituisce un errore se non eseguito\n"
+"    Esce da una shell di login con stato di uscita N. Restituisce un errore "
+"se non eseguito\n"
 "    in una shell di login."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3035,17 +3250,22 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Visualizza o esegue comandi dall'elenco della cronologia.\n"
 "    \n"
-"    fc è usato per elencare, modificare e rieseguire comandi dall'elenco della cronologia.\n"
-"    PRIMO e ULTIMO possono essere numeri che specificano l'intervallo oppure PRIMO può\n"
-"    essere una stringa, nel qual caso significa il comando più recente che inizia con\n"
+"    fc è usato per elencare, modificare e rieseguire comandi dall'elenco "
+"della cronologia.\n"
+"    PRIMO e ULTIMO possono essere numeri che specificano l'intervallo oppure "
+"PRIMO può\n"
+"    essere una stringa, nel qual caso significa il comando più recente che "
+"inizia con\n"
 "    quella stringa.\n"
 "    \n"
 "    Opzioni:\n"
-"      -e EDITOR\tSeleziona l'editor da usare.  Il predefinito è FCEDIT, quindi EDITOR,\n"
+"      -e EDITOR\tSeleziona l'editor da usare.  Il predefinito è FCEDIT, "
+"quindi EDITOR,\n"
 "    \t\tinfine vi\n"
 "      -l \tElenca le righe invece di modificarle\n"
 "      -n\tOmette i numeri di riga nell'elencare i comandi\n"
@@ -3054,14 +3274,17 @@ msgstr ""
 "    Con il formato \"fc -s [pat=rep ...] [comando]\", il COMANDO è\n"
 "    rieseguito dopo aver effettuato la sostituzione VECCHIO=NUOVO.\n"
 "    \n"
-"    Un alias utile da usare insieme è r=\"fc -s\", in modo che digitando \"r cc\"\n"
-"    viene eseguito l'ultimo comando che inizia con \"cc\" e digitando \"r\" riesegue\n"
+"    Un alias utile da usare insieme è r=\"fc -s\", in modo che digitando \"r "
+"cc\"\n"
+"    viene eseguito l'ultimo comando che inizia con \"cc\" e digitando \"r\" "
+"riesegue\n"
 "    l'ultimo comando.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo o lo stato del comando eseguito, non zero se si riscontra un errore."
+"    Restituisce successo o lo stato del comando eseguito, non zero se si "
+"riscontra un errore."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3079,14 +3302,17 @@ msgstr ""
 "    job corrente della shell.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Stato del comando messo in primo piano, o insuccesso se si riscontra un errore."
+"    Stato del comando messo in primo piano, o insuccesso se si riscontra un "
+"errore."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3094,19 +3320,23 @@ msgid ""
 msgstr ""
 "Sposta i job sullo sfondo.\n"
 "    \n"
-"    Mette il  jobs identificato da ogni SPEC_JOB sullo sfondo, come se fossero\n"
-"    stati avviati con \"&\". Se SPEC_JOB non è presente, viene usata la nozione\n"
+"    Mette il  jobs identificato da ogni SPEC_JOB sullo sfondo, come se "
+"fossero\n"
+"    stati avviati con \"&\". Se SPEC_JOB non è presente, viene usata la "
+"nozione\n"
 "    di job corrente della shell.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che il controllo dei job non sia abilitato o si riscontri un errore."
+"    Restituisce successo a meno che il controllo dei job non sia abilitato o "
+"si riscontri un errore."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3125,13 +3355,16 @@ msgid ""
 msgstr ""
 "Ricorda o visualizza le posizioni dei programmi.\n"
 "    \n"
-"    Determina e ricorda il nome completo di percorso per ogni comando NOME. Se non\n"
-"    viene fornito alcun argomento, sono visualizzate le informazioni sui comandi memorizzati.\n"
+"    Determina e ricorda il nome completo di percorso per ogni comando NOME. "
+"Se non\n"
+"    viene fornito alcun argomento, sono visualizzate le informazioni sui "
+"comandi memorizzati.\n"
 "    \n"
 "    Opzioni:\n"
 "      -d\t\tDimentica la posizione memorizzata di ogni NOME\n"
 "      -l\t\tVisualizza in un formato che può essere riusato come input\n"
-"      -p nomepercorso\tUsa NOMEPERCORSO come il nome completo di percorso per NOME\n"
+"      -p nomepercorso\tUsa NOMEPERCORSO come il nome completo di percorso "
+"per NOME\n"
 "      -r\t\tDimentica tutte le posizioni memorizzate\n"
 "      -t\t\tStampa la posizione memorizzata di ogni NOME, facendo\n"
 "    \t\tprecedere ciascuna posizione con il NOME corrispondente se vengono\n"
@@ -3141,9 +3374,10 @@ msgstr ""
 "    \t\tdei comandi memorizzati.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia trovato NOME o sia fornita una opzione non valida."
+"    Restituisce successo a meno che non sia trovato NOME o sia fornita una "
+"opzione non valida."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3161,27 +3395,32 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Visualizza informazioni sui comandi interni.\n"
 "    \n"
-"    Visualizza un breve sommario dei comandi interni. Se viene specificato il\n"
-"    MODELLO fornisce un aiuto dettagliato su tutti i comandi corrispondenti al\n"
+"    Visualizza un breve sommario dei comandi interni. Se viene specificato "
+"il\n"
+"    MODELLO fornisce un aiuto dettagliato su tutti i comandi corrispondenti "
+"al\n"
 "    MODELLO, altrimenti viene stampato l'elenco degli argomenti di aiuto.\n"
 "    \n"
 "    Opzioni:\n"
 "      -d\tVisualizza una breve descrizione per ciascun argomento\n"
 "      -m\tVisualizza l'uso in formato pseudo manpage\n"
-"      -s\tVisualizza solo una breve sintassi sull'uso per ciascun argomento che\n"
+"      -s\tVisualizza solo una breve sintassi sull'uso per ciascun argomento "
+"che\n"
 "    \tcorrisponde al MODELLO\n"
 "    \n"
 "    Argomenti:\n"
 "      MODELLO\tModello che specifica un argomento di aiuto\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga trovato il MODELLO o sia fornita una opzione non valida."
+"    Restituisce successo a meno che non venga trovato il MODELLO o sia "
+"fornita una opzione non valida."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3208,42 +3447,54 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 "Visualizza o manipola l'elenco della cronologia.\n"
 "    \n"
-"    Visualizza l'elenco della cronologia con i numeri di riga, aggiungendo a ciascuna voce\n"
-"    modificata il prefisso \"*\".  Un argomento pari a N elenca solo le ultime N voci.\n"
+"    Visualizza l'elenco della cronologia con i numeri di riga, aggiungendo a "
+"ciascuna voce\n"
+"    modificata il prefisso \"*\".  Un argomento pari a N elenca solo le "
+"ultime N voci.\n"
 "    \n"
 "    Opzioni:\n"
 "      -c\tPulisce la cronologia eliminando tutte le voci\n"
 "      -d posiz\tElimina la voce della cronologia alla posizione POSIZ.\n"
 "    \n"
-"      -a\tAccoda righe al file della cronologia relative alla sessione attuale\n"
+"      -a\tAccoda righe al file della cronologia relative alla sessione "
+"attuale\n"
 "      -n\tLegge tutte le righe non ancora lette dal file della cronologia\n"
-"      -r\tLegge il file della cronologia e ne accoda il contenuto all'elenco della\n"
+"      -r\tLegge il file della cronologia e ne accoda il contenuto all'elenco "
+"della\n"
 "    \t\tcronologia\n"
 "      -w\tScrive la cronologia corrente nel file della cronologia\n"
 "    \t\te ne accoda le voci all'elenco della cronologia\n"
 "    \n"
-"      -p\tEffettua l'espansione della cronologia su ciascun ARG e visualizza il\n"
+"      -p\tEffettua l'espansione della cronologia su ciascun ARG e visualizza "
+"il\n"
 "    \t\trisultato senza memorizzarlo nell'elenco della cronologia\n"
 "      -s\tAccoda gli ARG all'elenco della cronologia come una voce singola\n"
 "    \n"
-"    Se viene fornito il NOMEFILE, viene usato come file della cronologia.  Altrimenti,\n"
-"    se presente, viene usato il valore di $HISTFILE, in alternativa ~/.bash_history.\n"
+"    Se viene fornito il NOMEFILE, viene usato come file della cronologia.  "
+"Altrimenti,\n"
+"    se presente, viene usato il valore di $HISTFILE, in alternativa ~/."
+"bash_history.\n"
 "    \n"
-"    Se la variabile $HISTTIMEFORMAT è impostata e non è nulla, il suo valore viene usato\n"
-"    come una stringa di formato per strftime(3) per stampare l'orario associato a ciascuna\n"
-"    voce di cronologia visualizzata.  Altrimenti non viene stampato alcun orario.\n"
+"    Se la variabile $HISTTIMEFORMAT è impostata e non è nulla, il suo valore "
+"viene usato\n"
+"    come una stringa di formato per strftime(3) per stampare l'orario "
+"associato a ciascuna\n"
+"    voce di cronologia visualizzata.  Altrimenti non viene stampato alcun "
+"orario.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o si riscontri un errore."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3279,15 +3530,18 @@ msgstr ""
 "      -r\tLimita l'output ai job in esecuzione\n"
 "      -s\tLimita l'output ai processi fermati\n"
 "    \n"
-"    Se viene fornito -x, il COMANDO è eseguito dopo che tutte le specifiche dei job che\n"
-"    appaiono in ARGOMENTI sono state rimpiazzate con l'ID del processo leader nel gruppo di\n"
+"    Se viene fornito -x, il COMANDO è eseguito dopo che tutte le specifiche "
+"dei job che\n"
+"    appaiono in ARGOMENTI sono state rimpiazzate con l'ID del processo "
+"leader nel gruppo di\n"
 "    quel job.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o si riscontri un errore.\n"
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore.\n"
 "    Se viene usato -x, restituisce lo stato di uscita del COMANDO."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3305,19 +3559,22 @@ msgid ""
 msgstr ""
 "Rimuove job dalla shell corrente.\n"
 "    \n"
-"    Rimuove ciascun argomento SPECJOB dalla tabella dei job attivi.  Senza alcun\n"
+"    Rimuove ciascun argomento SPECJOB dalla tabella dei job attivi.  Senza "
+"alcun\n"
 "    SPECJOB, la shell usa la sua nozione del job corrente.\n"
 "    \n"
 "    Opzioni:\n"
 "      -a\tRimuove tutti i job se non viene fornito uno SPECJOB\n"
-"      -h\tMarca ciascun SPECJOB in modo che non venga inviato un SIGHUP al job se la\n"
+"      -h\tMarca ciascun SPECJOB in modo che non venga inviato un SIGHUP al "
+"job se la\n"
 "    \tshell lo riceve\n"
 "      -r\tRimuove solo i job in esecuzione\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita una opzione non valida o uno SPECJOB."
+"    Restituisce successo a meno che non venga fornita una opzione non valida "
+"o uno SPECJOB."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3340,8 +3597,10 @@ msgid ""
 msgstr ""
 "Invia un segnale a un job.\n"
 "    \n"
-"    Invia il segnale chiamato dallo SPECSEGN o dal NUMSEGN ai processi identificati\n"
-"    dal PID o dallo SPECJOB.  Se non è presente né lo SPECSEGN né il NUMSEGN, viene\n"
+"    Invia il segnale chiamato dallo SPECSEGN o dal NUMSEGN ai processi "
+"identificati\n"
+"    dal PID o dallo SPECJOB.  Se non è presente né lo SPECSEGN né il "
+"NUMSEGN, viene\n"
 "    allora considerato SIGTERM.\n"
 "    \n"
 "    Opzioni:\n"
@@ -3350,21 +3609,25 @@ msgstr ""
 "      -l\tElenca i nomi dei segnali; Se ci sono argomenti dopo \"-l\"\n"
 "    \tvengono valutati come numeri di segnale di cui elencare i nomi\n"
 "    \n"
-"    Kill è un comando interno di shell per due ragioni: permette di usare gli ID\n"
-"    dei job invece degli ID dei processi e permette di uccidere quei processi che\n"
+"    Kill è un comando interno di shell per due ragioni: permette di usare "
+"gli ID\n"
+"    dei job invece degli ID dei processi e permette di uccidere quei "
+"processi che\n"
 "    abbiano raggiunto un numero limite prefissato di processi creabili.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o si riscontri un errore."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3402,10 +3665,14 @@ msgid ""
 msgstr ""
 "Valuta espressioni aritmetiche.\n"
 "    \n"
-"    Valuta ciascun ARG come una espressione aritmetica.  La valutazione è effettuata con\n"
-"    interi a larghezza fissa senza alcun controllo per overflow, sebbene la divisione\n"
-"    per 0 sia bloccata e contrassegnata come un errore.  Il seguente elenco di operatori\n"
-"    è raggruppato per livelli di operatore di uguale precedenza.  I livelli sono elencati\n"
+"    Valuta ciascun ARG come una espressione aritmetica.  La valutazione è "
+"effettuata con\n"
+"    interi a larghezza fissa senza alcun controllo per overflow, sebbene la "
+"divisione\n"
+"    per 0 sia bloccata e contrassegnata come un errore.  Il seguente elenco "
+"di operatori\n"
+"    è raggruppato per livelli di operatore di uguale precedenza.  I livelli "
+"sono elencati\n"
 "    in ordine di precedenza decrescente.\n"
 "    \n"
 "    \tid++, id--\tIncremento e decremento successivo di variabile\n"
@@ -3429,30 +3696,40 @@ msgstr ""
 "    \t+=, -=, <<=, >>=,\n"
 "    \t&=, ^=, |=\tAssegnazione\n"
 "    \n"
-"    Le variabili di shell sono ammesse come operandi.  Il nome della variabile è\n"
-"    sostituito dal suo valore (forzato a un intero a larghezza fissa) all'interno\n"
-"    di una espressione.  Non è necessario che la variabile abbia il proprio attributo\n"
+"    Le variabili di shell sono ammesse come operandi.  Il nome della "
+"variabile è\n"
+"    sostituito dal suo valore (forzato a un intero a larghezza fissa) "
+"all'interno\n"
+"    di una espressione.  Non è necessario che la variabile abbia il proprio "
+"attributo\n"
 "    intero abilitato per essere usata in una espressione.\n"
 "    \n"
-"    Gli operatori sono valutati in ordine di precedenza.  Le sottoespressioni tra\n"
-"    parentesi sono valutate per prime e possono avere la precedenza sulle regole\n"
+"    Gli operatori sono valutati in ordine di precedenza.  Le "
+"sottoespressioni tra\n"
+"    parentesi sono valutate per prime e possono avere la precedenza sulle "
+"regole\n"
 "    sopradescritte.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Se l'ultimo ARG viene valutato pari a 0 restituisce 1, altrimenti restituisce 0."
+"    Se l'ultimo ARG viene valutato pari a 0 restituisce 1, altrimenti "
+"restituisce 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3464,64 +3741,84 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Legge una riga dallo standard input e la divide in campi.\n"
 "    \n"
-"    Legge una singola riga dallo standard input o, se viene fornita l'opzione -u,\n"
+"    Legge una singola riga dallo standard input o, se viene fornita "
+"l'opzione -u,\n"
 "    dal descrittore di file FD.  La riga è divisa in campi corrispondenti a\n"
-"    parole dove la prima parola è assegnata al primo NOME, la seconda parola\n"
+"    parole dove la prima parola è assegnata al primo NOME, la seconda "
+"parola\n"
 "    al secondo NOME e così via, con ciascuna parola rimanente assegnata al\n"
-"    corrispondente ultimo NOME.  Sono riconosciuti come delimitatori di parola\n"
+"    corrispondente ultimo NOME.  Sono riconosciuti come delimitatori di "
+"parola\n"
 "    solo quelli presenti in $IFS.\n"
 "    \n"
-"    Se non viene fornito alcun NOME, la riga letta è memorizzata nella variabile REPLY.\n"
+"    Se non viene fornito alcun NOME, la riga letta è memorizzata nella "
+"variabile REPLY.\n"
 "    \n"
 "    Opzioni:\n"
-"      -a array\tAssegna le parole lette agli indici sequenziali della variabile\n"
+"      -a array\tAssegna le parole lette agli indici sequenziali della "
+"variabile\n"
 "    \t\tdi ARRAY, iniziando da zero\n"
-"      -d delim\tContinua fino alla lettura del primo carattere di DELIM, invece\n"
+"      -d delim\tContinua fino alla lettura del primo carattere di DELIM, "
+"invece\n"
 "    \t\tdi un ritorno a capo \n"
 "      -e\t\tUsa Readline per ottenere la riga in una shell interattiva\n"
 "      -i testo\tUsa TESTO come testo iniziale per Readline\n"
-"      -n ncarat\tRitorna dopo la lettura di NCARAT caratteri invece di attendere\n"
+"      -n ncarat\tRitorna dopo la lettura di NCARAT caratteri invece di "
+"attendere\n"
 "    \t\tun a capo, ma rispetta un delimitatore se vengono letti meno di\n"
 "    \t\tNCARAT caratteri prima del delimitatore stesso\n"
-"      -N ncarat\tRitorna solo dopo la lettura di NCARAT caratteri esatti, a meno che non si\n"
-"    \t\triscontri un EOF o un time out di lettura, ignorando qualsiasi delimitatore\n"
+"      -N ncarat\tRitorna solo dopo la lettura di NCARAT caratteri esatti, a "
+"meno che non si\n"
+"    \t\triscontri un EOF o un time out di lettura, ignorando qualsiasi "
+"delimitatore\n"
 "      -p stringa\tVisualizza la stringa PROMPT senza un a capo finale prima\n"
 "    \t\tdel tentativo di lettura\n"
 "      -r\t\tNon ammette backslash per fare l'escape dei caratteri\n"
 "      -s\t\tNon fa l'echo dell'input proveniente da un terminale\n"
-"      -t secondi\tVa in timeout e restituisce insuccesso se non viene letta una\n"
+"      -t secondi\tVa in timeout e restituisce insuccesso se non viene letta "
+"una\n"
 "    \t\triga di input completa entro i SECONDI forniti.  Il valore della\n"
 "    \t\tvariabile TMOUT è il timeout predefinito.  SECONDI può essere\n"
-"    \t\tuna frazione.  Se SECONDI è pari a 0, la lettura restituisce successo\n"
-"    \t\tsolo se l'input è disponibile sul descrittore di file specificato.  Lo\n"
+"    \t\tuna frazione.  Se SECONDI è pari a 0, la lettura restituisce "
+"successo\n"
+"    \t\tsolo se l'input è disponibile sul descrittore di file specificato.  "
+"Lo\n"
 "    \t\tstato di uscita è maggiore di 128 se viene superato il timeout\n"
-"      -u fd\t\tLegge dal descrittore di file FD invece che dallo standard input\n"
+"      -u fd\t\tLegge dal descrittore di file FD invece che dallo standard "
+"input\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Il codice restituito è zero a meno che non sia riscontrato un EOF, un timeout in lettura\n"
+"    Il codice restituito è zero a meno che non sia riscontrato un EOF, un "
+"timeout in lettura\n"
 "    o venga fornito un descrittore di file non valido come argomento per -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3534,14 +3831,17 @@ msgid ""
 msgstr ""
 "Ritorna da una funzione di shell.\n"
 "    \n"
-"    Causa l'uscita da una funzione o da uno script sorgente con il valore di\n"
+"    Causa l'uscita da una funzione o da uno script sorgente con il valore "
+"di\n"
 "    ritorno specificato da N.  Se N è omesso, lo stato di ritorno è quello\n"
 "    dell'ultimo comando eseguito all'interno della funzione o dello script.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce N, oppure insuccesso se la shell non sta eseguendo una funzione o uno script."
+"    Restituisce N, oppure insuccesso se la shell non sta eseguendo una "
+"funzione o uno script."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3584,7 +3884,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3606,7 +3907,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3624,26 +3925,33 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
-"Imposta o azzera i valori delle opzioni di shell e dei parametri posizionali.\n"
+"Imposta o azzera i valori delle opzioni di shell e dei parametri "
+"posizionali.\n"
 "    \n"
-"    Cambia il valore degli attributi di shell e dei parametri posizionali, o\n"
+"    Cambia il valore degli attributi di shell e dei parametri posizionali, "
+"o\n"
 "    visualizza i nomi e i valori delle variabili di shell.\n"
 "    \n"
 "    Opzioni:\n"
-"      -a  Marca le variabili che sono modificate o create per l'esportazione.\n"
+"      -a  Marca le variabili che sono modificate o create per "
+"l'esportazione.\n"
 "      -b  Notifica immediatamente della terminazione di un job.\n"
-"      -e  Esce immediatamente se un comando esce con uno stao diverso da zero.\n"
+"      -e  Esce immediatamente se un comando esce con uno stao diverso da "
+"zero.\n"
 "      -f  Disabilita la generazione dei nomi file (globbing).\n"
 "      -h  Ricorda la posizione dei comandi quando vengono cercati.\n"
-"      -k  Tutte le assegnazioni degli argomenti sono posizionate nell'ambiente per un\n"
-"          comando, non solo quelle che precedono il nome del comando stesso.\n"
+"      -k  Tutte le assegnazioni degli argomenti sono posizionate "
+"nell'ambiente per un\n"
+"          comando, non solo quelle che precedono il nome del comando "
+"stesso.\n"
 "      -m  Abilita il controllo dei job.\n"
 "      -n  Legge i comandi senza eseguirli.\n"
 "      -o nome-opzione\n"
 "          Imposta la variabile corrispondente al nome dell'opzione:\n"
 "              allexport    Uguale a -a\n"
 "              braceexpand  Uguale a -B\n"
-"              emacs        Usa una interfaccia di modifica righe di stile emacs\n"
+"              emacs        Usa una interfaccia di modifica righe di stile "
+"emacs\n"
 "              errexit      Uguale a -e\n"
 "              errtrace     Uguale a -E\n"
 "              functrace    Uguale a -T\n"
@@ -3652,7 +3960,8 @@ msgstr ""
 "              history      Abilita la cronologia comandi\n"
 "              ignoreeof    Non esce dalla shell dopo aver raggiunto EOF\n"
 "              interactive-comments\n"
-"                           Permette ai commenti di comparire nei comandi interattivi\n"
+"                           Permette ai commenti di comparire nei comandi "
+"interattivi\n"
 "              keyword      Uguale a -k\n"
 "              monitor      Uguale a -m\n"
 "              noclobber    Uguale a -C\n"
@@ -3664,30 +3973,40 @@ msgstr ""
 "              onecmd       Uguale a -t\n"
 "              physical     Uguale a -P\n"
 "              pipefail     Il valore restituito da una pipeline è lo stato\n"
-"                           dell'ultimo comando che esce con uno stato diverso da zero,\n"
-"                           oppure zero se nessun comando esce con uno stato diverso da zero\n"
-"              posix        Modifica il comportamento di bash dove l'operazione\n"
-"                           predefinita è diversa dallo standard Posix per rispettare\n"
+"                           dell'ultimo comando che esce con uno stato "
+"diverso da zero,\n"
+"                           oppure zero se nessun comando esce con uno stato "
+"diverso da zero\n"
+"              posix        Modifica il comportamento di bash dove "
+"l'operazione\n"
+"                           predefinita è diversa dallo standard Posix per "
+"rispettare\n"
 "                           lo standard stesso\n"
 "              privileged   Uguale a -p\n"
 "              verbose      Uguale a -v\n"
 "              vi           Usa un'editor di riga stile vi\n"
 "              xtrace       Uguale a -x\n"
-"      -p  Abilitato ogni qualvolta gli id utente reali non corrispondono a quelli effettivi.\n"
-"          Disabilita l'analisi del file $ENV e l'importazione delle funzioni di\n"
+"      -p  Abilitato ogni qualvolta gli id utente reali non corrispondono a "
+"quelli effettivi.\n"
+"          Disabilita l'analisi del file $ENV e l'importazione delle funzioni "
+"di\n"
 "          shell.  Disabilitare questa opzione comporta l'impostazione degli\n"
 "          uid e gid effettivi a uid e gid reali.\n"
 "      -t  Esce dopo la lettura e l'esecuzione di un comando.\n"
-"      -u  Tratta le variabili non impostate come un errore durante la sostituzione.\n"
+"      -u  Tratta le variabili non impostate come un errore durante la "
+"sostituzione.\n"
 "      -v  Stampa le righe di input della shell mentre vengono lette.\n"
 "      -x  Stampa i comandi e i loro argomenti mentre vengono eseguiti.\n"
 "      -B  La shell effettua l'espansione delle parentesi graffe\n"
-"      -C  Se impostata, non permette la sovrascrittura dei file regolari esistenti\n"
+"      -C  Se impostata, non permette la sovrascrittura dei file regolari "
+"esistenti\n"
 "          da parte della redirezione dell'output.\n"
 "      -E  Se impostata, la trap ERR è ereditata dalle funzioni di shell.\n"
-"      -H  Abilita la sostituzione per la cronologia stile !.  Questo flag è abilitato\n"
+"      -H  Abilita la sostituzione per la cronologia stile !.  Questo flag è "
+"abilitato\n"
 "          in modo predefinito quando la shell è interattiva.\n"
-"      -P  Se impostata, non segue i link simbolici quando vengono eseguiti dei comandi\n"
+"      -P  Se impostata, non segue i link simbolici quando vengono eseguiti "
+"dei comandi\n"
 "          come cd, il quale cambia la directory corrente.\n"
 "      -T  Se impostata, la trap DEBUG è ereditata dalle funzioni di shell.\n"
 "      --  Assegna tutti gli argomenti rimasti ai parametri posizionali.\n"
@@ -3697,7 +4016,8 @@ msgstr ""
 "          Le opzioni -x e -v sono disabilitate.\n"
 "    \n"
 "    Usando + al posto di - questi flag vengono disabilitati.  I\n"
-"    flag possono anche essere usati subito dopo l'invocazione della shell.  Il set corrente\n"
+"    flag possono anche essere usati subito dopo l'invocazione della shell.  "
+"Il set corrente\n"
 "    dei flag può essere trovato in $-.  I restanti n ARG sono parametri\n"
 "    posizionali e vengono assegnati, in ordine, a $1, $2, .. $n.  Se non\n"
 "    vengono forniti ARG, vengono stampate tutte le variabili di shell.\n"
@@ -3705,7 +4025,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Restituisce successo a meno che non venga fornita una opzione non valida."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3715,7 +4035,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3731,20 +4052,24 @@ msgstr ""
 "      -f\tConsidera ciascun NOME come una funzione di shell\n"
 "      -v\tConsidera ciascun NOME come una variabile di shell\n"
 "    \n"
-"    Senza opzioni, unset prova prima ad azzerare una variabile e, in caso di insuccesso,\n"
+"    Senza opzioni, unset prova prima ad azzerare una variabile e, in caso di "
+"insuccesso,\n"
 "    prova ad azzerare una funzione.\n"
 "    \n"
-"    Alcune variabili non possono essere azzerate; vedere anche \"readonly\".\n"
+"    Alcune variabili non possono essere azzerate; vedere anche \"readonly"
+"\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o NOME sia in sola lettura."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"NOME sia in sola lettura."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3758,8 +4083,10 @@ msgid ""
 msgstr ""
 "Imposta l'attributo di esportazione per le variabili di shell.\n"
 "    \n"
-"    Marca ciascun NOME per l'esportazione automatica all'ambiente dei comandi\n"
-"    eseguiti successivi.  Se è fornito un VALORE, lo assegna prima dell'esportazione.\n"
+"    Marca ciascun NOME per l'esportazione automatica all'ambiente dei "
+"comandi\n"
+"    eseguiti successivi.  Se è fornito un VALORE, lo assegna prima "
+"dell'esportazione.\n"
 "    \n"
 "    Opzioni:\n"
 "      -f\tRimanda alle funzioni di shell\n"
@@ -3769,9 +4096,10 @@ msgstr ""
 "    L'argomento \"--\" disabilita l'elaborazione di ulteriori opzioni.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o il NOME non sia valido."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"il NOME non sia valido."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3800,14 +4128,16 @@ msgstr ""
 "      -a\tRimanda alle variabili degli array indicizzati\n"
 "      -A\tRimanda alle variabili degli array associativi\n"
 "      -f\tRimanda alle funzioni di shell\n"
-"      -p\tVisualizza un elenco di tutte le variabili e le funzioni in sola lettura\n"
+"      -p\tVisualizza un elenco di tutte le variabili e le funzioni in sola "
+"lettura\n"
 "    \n"
 "    Un argomento pari a \"--\" disabilita ulteriori analisi delle opzioni.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita una opzione non valida o NOME non sia valido."
+"    Restituisce successo a meno che non venga fornita una opzione non valida "
+"o NOME non sia valido."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3825,7 +4155,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Restituisce successo a meno che N non sia negativo o maggiore di $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3846,10 +4176,11 @@ msgstr ""
 "    quando viene eseguito NOMEFILE.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce lo stato dell'ultimo comando eseguito in NOMEFILE; insuccesso se\n"
+"    Restituisce lo stato dell'ultimo comando eseguito in NOMEFILE; "
+"insuccesso se\n"
 "    il NOMEFILE non può essere letto."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3864,16 +4195,18 @@ msgid ""
 msgstr ""
 "Sospende l'esecuzione della shell.\n"
 "    \n"
-"    Sospende l'esecuzione di questa shell fino a che non riceve un segnale SIGCONT.\n"
+"    Sospende l'esecuzione di questa shell fino a che non riceve un segnale "
+"SIGCONT.\n"
 "    A meno di forzature, le shell di login non possono essere sospese.\n"
 "    \n"
 "    Opzioni:\n"
 "      -f\tForza la sospensione, anche se in presenza di una shell di login\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia abilitato il controllo job o si riscontri un errore."
+"    Restituisce successo a meno che non sia abilitato il controllo job o si "
+"riscontri un errore."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3907,7 +4240,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3928,7 +4262,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3977,15 +4312,20 @@ msgstr ""
 "      -r FILE        Vero se il file è leggibile dall' utente corrente.\n"
 "      -s FILE        Vero se il file esiste e non è vuoto.\n"
 "      -S FILE        Vero se il file è un socket.\n"
-"      -t FD          Vero se il descrittore di file è aperto su un terminale.\n"
+"      -t FD          Vero se il descrittore di file è aperto su un "
+"terminale.\n"
 "      -u FILE        Vero se il file è un set-user-id.\n"
 "      -w FILE        Vero se il file è scrivibile dall'utente corrente.\n"
 "      -x FILE        Vero se il file è eseguibile dall'utente corrente.\n"
-"      -O FILE        Vero se l'utente corrente è il reale proprietario del file.\n"
-"      -G FILE        Vero se il gruppo dell'utente corrente è il reale proprietario del file.\n"
-"      -N FILE        Vero se il file è stato modificato dall'ultima volta che è stato letto.\n"
-"    \n"
-"      FILE1 -nt FILE2  Vero se il file1 è più recente del file2 (in accordo con la\n"
+"      -O FILE        Vero se l'utente corrente è il reale proprietario del "
+"file.\n"
+"      -G FILE        Vero se il gruppo dell'utente corrente è il reale "
+"proprietario del file.\n"
+"      -N FILE        Vero se il file è stato modificato dall'ultima volta "
+"che è stato letto.\n"
+"    \n"
+"      FILE1 -nt FILE2  Vero se il file1 è più recente del file2 (in accordo "
+"con la\n"
 "                       data di modifica).\n"
 "    \n"
 "      FILE1 -ot FILE2  Vero se il file1 è più vecchio del file2.\n"
@@ -4004,30 +4344,36 @@ msgstr ""
 "      STRINGA1 != STRINGA2\n"
 "                     Vero se le stringhe non sono uguali.\n"
 "      STRINGA1 < STRINGA2\n"
-"                     Vero se la STRINGA1 viene ordinata lessicograficamente prima della STRINGA2.\n"
+"                     Vero se la STRINGA1 viene ordinata lessicograficamente "
+"prima della STRINGA2.\n"
 "      STRINGA1 > STRINGA2\n"
-"                     Vero se la STRINGA1 viene ordinata lessicograficamente dopo la STRINGA2.\n"
+"                     Vero se la STRINGA1 viene ordinata lessicograficamente "
+"dopo la STRINGA2.\n"
 "    \n"
 "    Altri operatori:\n"
 "    \n"
 "      -o OPZIONE     Vero se l'OPZIONE di shell è abilitata.\n"
 "      -v VAR\t Vero se la variabile di shell VAR è impostata.\n"
 "      ! ESPR         Vero se l'ESPR è falsa.\n"
-"      ESPR1 -a ESPR2 Vero se entrambe le espressioni espr1 E espr2 sono vere.\n"
+"      ESPR1 -a ESPR2 Vero se entrambe le espressioni espr1 E espr2 sono "
+"vere.\n"
 "      ESPR1 -o ESPR2 Vero se sono vere le espressioni espr1 O espr2.\n"
 "    \n"
 "      arg1 OP arg2   Test aritmetici.  OP è uno tra -eq, -ne,\n"
 "                     -lt, -le, -gt oppure -ge.\n"
 "    \n"
-"    Gli operatori aritmetici binari restituiscono vero se ARG1 è uguale, non uguale,\n"
-"    più piccolo di, più piccolo o uguale, più grande di o più grande o uguale\n"
+"    Gli operatori aritmetici binari restituiscono vero se ARG1 è uguale, non "
+"uguale,\n"
+"    più piccolo di, più piccolo o uguale, più grande di o più grande o "
+"uguale\n"
 "    ad ARG2.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo se l'ESPR viene valutata vera; insuccesso se l'ESPR viene valutata\n"
+"    Restituisce successo se l'ESPR viene valutata vera; insuccesso se l'ESPR "
+"viene valutata\n"
 "    falsa o viene fornito un argomento non valido."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4036,14 +4382,16 @@ msgid ""
 msgstr ""
 "Valuta l'espressione condizionale.\n"
 "    \n"
-"    Questo è un sinonimo del comando interno \"test\", ma l'ultimo argomento deve\n"
+"    Questo è un sinonimo del comando interno \"test\", ma l'ultimo argomento "
+"deve\n"
 "    essere un \"]\" letterale per corrispondere al \"[\" di apertura."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4051,17 +4399,19 @@ msgid ""
 msgstr ""
 "Visualizza le durate dei processi.\n"
 "    \n"
-"    Stampa i tempi utente e di sistema accumulati per la shell e per tutti i\n"
+"    Stampa i tempi utente e di sistema accumulati per la shell e per tutti "
+"i\n"
 "    relativi processi figli.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Sempre successo."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4070,26 +4420,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Esegue il trap dei segnali e di altri eventi.\n"
 "    \n"
@@ -4097,33 +4455,44 @@ msgstr ""
 "    o altre condizioni.\n"
 "    \n"
 "    ARG è un comando da leggere ed eseguire quando la shell riceve il o i\n"
-"    segnali SPEC_SEGNALE.  Se ARG o \"-\" non sono presenti (e viene fornito\n"
+"    segnali SPEC_SEGNALE.  Se ARG o \"-\" non sono presenti (e viene "
+"fornito\n"
 "    un singolo SPEC_SEGNALE), ciascun segnale specificato è riportato\n"
 "    al suo valore originario.  Se ARG è pari a null, ogni SPEC_SEGNALE è\n"
 "    ignorato dalla shell e dai comandi che invoca.\n"
 "    \n"
-"    Se uno SPEC_SEGNALE è EXIT (0) ARG viene eseguito all'uscita dalla shell.  Se\n"
-"    lo SPEC_SEGNALE è DEBUG, ARG viene eseguito prima di ogni comando semplice.  Se\n"
-"    uno SPEC_SEGNALE è RETURN, ARG viene eseguito al termine di ogni esecuzione\n"
-"    di una funzione di shell o di uno script avviato dai comandi interni . o source.\n"
-"    Un SPEC_SEGNALE di ERR significa eseguire ARG ogni volta che un errore di comando\n"
+"    Se uno SPEC_SEGNALE è EXIT (0) ARG viene eseguito all'uscita dalla "
+"shell.  Se\n"
+"    lo SPEC_SEGNALE è DEBUG, ARG viene eseguito prima di ogni comando "
+"semplice.  Se\n"
+"    uno SPEC_SEGNALE è RETURN, ARG viene eseguito al termine di ogni "
+"esecuzione\n"
+"    di una funzione di shell o di uno script avviato dai comandi interni . o "
+"source.\n"
+"    Un SPEC_SEGNALE di ERR significa eseguire ARG ogni volta che un errore "
+"di comando\n"
 "    causi l'uscita della shell quando è abilitata l'opzione -e.\n"
 "    \n"
-"    Se non vengono forniti argomenti, trap stampa l'elenco di comandi associati\n"
+"    Se non vengono forniti argomenti, trap stampa l'elenco di comandi "
+"associati\n"
 "    a ciascun segnale.\n"
 "    \n"
 "    Ozioni:\n"
-"      -l\tStampa un elenco di nomi di segnale e i loro corrispondenti numeri\n"
+"      -l\tStampa un elenco di nomi di segnale e i loro corrispondenti "
+"numeri\n"
 "      -p\tVisualizza i comandi trap associati a ciascun SPEC_SEGNALE\n"
 "    \n"
-"    Ciascun SPEC_SEGNALE è un nome di segnale in <signal.h> oppure un numero di segnale.\n"
-"    I nomi di segnale sono case insensitive e il prefisso SIG è opzionale.  Per\n"
+"    Ciascun SPEC_SEGNALE è un nome di segnale in <signal.h> oppure un numero "
+"di segnale.\n"
+"    I nomi di segnale sono case insensitive e il prefisso SIG è opzionale.  "
+"Per\n"
 "    inviare un segnale alla shell usare \"kill -signal $$\".\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che SPEC_SEGNALE non sia valido o si fornisca una opzione non valida."
+"    Restituisce successo a meno che SPEC_SEGNALE non sia valido o si "
+"fornisca una opzione non valida."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4149,7 +4518,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Visualizza informazioni sul tipo di comando.\n"
 "    \n"
@@ -4157,31 +4527,40 @@ msgstr ""
 "    un nome di comando.\n"
 "    \n"
 "    Opzioni:\n"
-"      -a\tVisualizza tutte le posizioni contenenti un eseguibile chiamato NOME,\n"
+"      -a\tVisualizza tutte le posizioni contenenti un eseguibile chiamato "
+"NOME,\n"
 "    \tincludendo alias, comandi interni e funzioni se e solo se\n"
 "    \tnon viene usata anche l'opzione \"-p\"\n"
 "      -f\tNon esegue la ricerca delle funzioni di shell\n"
-"      -P\tForza una ricerca del PERCORSO per ciascun NOME anche se è un alias,\n"
-"    \tun comando interno o una funzione, e restituisce il nome del file su disco\n"
+"      -P\tForza una ricerca del PERCORSO per ciascun NOME anche se è un "
+"alias,\n"
+"    \tun comando interno o una funzione, e restituisce il nome del file su "
+"disco\n"
 "    \tche sarebbe eseguito\n"
 "      -p\tRestituisce o il nome del file su disco che sarebbe eseguito,\n"
 "    \toppure niente se \"type -t NOME\" non restituisce \"file\".\n"
-"      -t\tVisualizza una singola parola che è una tra \"alias\", \"keyword\",\n"
-"    \t\"function\", \"builtin\", \"file\" or \"\", se il NOME è rispettivamente un alias,\n"
-"    \tuna parola riservata di shell, una funzione di shell, un comando interno di shell,\n"
+"      -t\tVisualizza una singola parola che è una tra \"alias\", \"keyword"
+"\",\n"
+"    \t\"function\", \"builtin\", \"file\" or \"\", se il NOME è "
+"rispettivamente un alias,\n"
+"    \tuna parola riservata di shell, una funzione di shell, un comando "
+"interno di shell,\n"
 "    \tun file su disco o non trovato\n"
 "    \n"
 "    Argomenti:\n"
 "      NOME\tIl nome del comando da interpretare.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo se tutti i NOMI vengono trovati; insuccesso in caso contrario."
+"    Restituisce successo se tutti i NOMI vengono trovati; insuccesso in caso "
+"contrario."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4205,6 +4584,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4221,7 +4603,8 @@ msgid ""
 msgstr ""
 "Modifica i limiti delle risorse di shell.\n"
 "    \n"
-"    Fornisce il controllo sulle risorse disponibili per la shell e per i processi\n"
+"    Fornisce il controllo sulle risorse disponibili per la shell e per i "
+"processi\n"
 "    che crea, sui sistemi che permettono tale controllo.\n"
 "    \n"
 "    Opzioni:\n"
@@ -4232,7 +4615,8 @@ msgstr ""
 "      -c\tLa dimensione massima dei file di core creati\n"
 "      -d\tLa dimensione massima di un segmento di dati di processo\n"
 "      -e\tLa priorità massima di scheduling (\"nice\")\n"
-"      -f\tLa dimensione massima dei file scritti dalla shell e dai suoi figli\n"
+"      -f\tLa dimensione massima dei file scritti dalla shell e dai suoi "
+"figli\n"
 "      -i\tIl numero massimo di segnali pendenti\n"
 "      -l\tLa dimensione massima di memoria che un processo può impegnare\n"
 "      -m\tIl numero massimo di set residenti\n"
@@ -4246,20 +4630,25 @@ msgstr ""
 "      -v\tLa dimensione della memoria virtuale\n"
 "      -x\tIl numero massimo di lock dei file\n"
 "    \n"
-"    Se viene fornito un LIMITE, sarà il nuovo valore della risorsa specificata;\n"
-"    I valori LIMITE speciali \"soft\", \"hard\" e \"unlimited\" corrispondono\n"
+"    Se viene fornito un LIMITE, sarà il nuovo valore della risorsa "
+"specificata;\n"
+"    I valori LIMITE speciali \"soft\", \"hard\" e \"unlimited\" "
+"corrispondono\n"
 "    rispettivamente agli attuali limiti leggero, pesante e senza limite.\n"
-"    Altrimenti viene stampato il valore attuale della risorsa specificata.  Se\n"
+"    Altrimenti viene stampato il valore attuale della risorsa specificata.  "
+"Se\n"
 "    non viene fornita alcuna opzione, viene assunta -f.\n"
 "    \n"
-"    I valori sono ad incrementi di 1024-byte, ad eccezione di -t che è in secondi,\n"
+"    I valori sono ad incrementi di 1024-byte, ad eccezione di -t che è in "
+"secondi,\n"
 "    -p che è ad incrementi di 512 byte e -u che è un numero di processi non\n"
 "    scalato.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita una opzione non valida o venga riscontrato un errore."
+"    Restituisce successo a meno che non venga fornita una opzione non valida "
+"o venga riscontrato un errore."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4278,46 +4667,58 @@ msgid ""
 msgstr ""
 "Visualizza o imposta la maschera del modo file.\n"
 "    \n"
-"    Imposta la maschera di creazione file dell'utente su MODO.  Se MODO viene omesso, stampa\n"
+"    Imposta la maschera di creazione file dell'utente su MODO.  Se MODO "
+"viene omesso, stampa\n"
 "    il valore corrente della maschera.\n"
 "    \n"
 "    Se MODO inizia con una cifra, è interpretato con un numero ottale;\n"
-"    altrimenti come una stringa di modo simbolico come quella accettata da chmod(1).\n"
+"    altrimenti come una stringa di modo simbolico come quella accettata da "
+"chmod(1).\n"
 "    \n"
 "    Opzioni:\n"
-"      -p\tSe MODO viene omesso, mostra in una forma che possa essere riusata come input\n"
-"      -S\tRende simbolico l'output; altrimenti viene mostrato un numero ottale\n"
+"      -p\tSe MODO viene omesso, mostra in una forma che possa essere riusata "
+"come input\n"
+"      -S\tRende simbolico l'output; altrimenti viene mostrato un numero "
+"ottale\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che MODO non sia valido o venga fornita una opzione non valida."
+"    Restituisce successo a meno che MODO non sia valido o venga fornita una "
+"opzione non valida."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Attende il completamento del job restituendo lo stato di uscita.\n"
 "    \n"
-"    Attende il processo identificato dall'ID, che può essere un ID di processo o\n"
+"    Attende il processo identificato dall'ID, che può essere un ID di "
+"processo o\n"
 "    una specifica di job, riportando il suo stato di termine.  Se non è\n"
-"    fornito un ID, attende tutti i processi figlio correntemente attivi, restituendo\n"
-"    zero come stato.  Se l'ID è una specifica di job, attende tutti i processi\n"
+"    fornito un ID, attende tutti i processi figlio correntemente attivi, "
+"restituendo\n"
+"    zero come stato.  Se l'ID è una specifica di job, attende tutti i "
+"processi\n"
 "    presenti nella pipeline del job.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce lo stato dell'ID; insuccesso se l'ID non è valido o viene fornita una\n"
+"    Restituisce lo stato dell'ID; insuccesso se l'ID non è valido o viene "
+"fornita una\n"
 "    opzione non valida."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4326,20 +4727,24 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Attende il completamento del processo e restituisce lo stato di uscita.\n"
 "    \n"
-"    Attende per il processo specificato e riporta il suo stato di terminazione.  Se non\n"
-"    viene fornito il PID, l'attesa comprende tutti i processi figlio correntemente attivi\n"
+"    Attende per il processo specificato e riporta il suo stato di "
+"terminazione.  Se non\n"
+"    viene fornito il PID, l'attesa comprende tutti i processi figlio "
+"correntemente attivi\n"
 "    e il codice restituito è zero.  Il PID deve essere un ID di processo.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce lo stato dell'ID; insuccesso se l'ID non è valido o viene fornita una opzione non\n"
+"    Restituisce lo stato dell'ID; insuccesso se l'ID non è valido o viene "
+"fornita una opzione non\n"
 "    valida."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4353,15 +4758,18 @@ msgid ""
 msgstr ""
 "Esegue comandi per ciascun membro di un elenco.\n"
 "    \n"
-"    Il ciclo \"for\" esegue una sequenza di comandi per ciascun membro di un\n"
-"    elenco di voci.  Se \"in PAROLE ...;\" non è presente, allora viene assunto\n"
-"    \"in \"$@\"\".  Per ciascun elemento in PAROLE, NOME è impostato a quell'elemento e\n"
+"    Il ciclo \"for\" esegue una sequenza di comandi per ciascun membro di "
+"un\n"
+"    elenco di voci.  Se \"in PAROLE ...;\" non è presente, allora viene "
+"assunto\n"
+"    \"in \"$@\"\".  Per ciascun elemento in PAROLE, NOME è impostato a "
+"quell'elemento e\n"
 "    i COMANDI vengono eseguiti.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4385,13 +4793,14 @@ msgstr ""
 "    \t\tCOMANDI\n"
 "    \t\t(( ESPR3 ))\n"
 "    \tdone\n"
-"    ESPR1, ESPR2 e ESPR3 sono espressioni aritmetiche.  Se viene omessa qualche\n"
+"    ESPR1, ESPR2 e ESPR3 sono espressioni aritmetiche.  Se viene omessa "
+"qualche\n"
 "    espressione, si comporta come se valesse 1.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4418,16 +4827,18 @@ msgstr ""
 "    assunto `in \"$@\".  Viene poi visualizzato il prompt PS3 e viene letta\n"
 "    una riga dallo standard input.  Se la riga è composta dal numero che\n"
 "    corrisponde a una delle parole visualizzate, NOME è impostato a quella\n"
-"    parola.  Se la riga è vuota, Le PAROLE e il prompt vengono rivisualizzati.\n"
+"    parola.  Se la riga è vuota, Le PAROLE e il prompt vengono "
+"rivisualizzati.\n"
 "    Se viene letto EOF, il comando termina.  Se vengono letti altri valori\n"
-"    NOME viene impostato a null.  La riga letta viene salvata nella variabile\n"
+"    NOME viene impostato a null.  La riga letta viene salvata nella "
+"variabile\n"
 "    REPLY.  I COMANDI vengono eseguiti dopo ogni selezione finché non viene\n"
 "    eseguito un comando di interruzione.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato di uscita dell'ultimo comando eseguito."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4444,7 +4855,8 @@ msgid ""
 msgstr ""
 "Riporta il tempo speso nell'esecuzione della pipeline.\n"
 "    \n"
-"    Esegue la PIPELINE e stampa, quando termina, un sommario del tempo reale, tempo utente della CPU\n"
+"    Esegue la PIPELINE e stampa, quando termina, un sommario del tempo "
+"reale, tempo utente della CPU\n"
 "    e tempo di sistema della CPU dedicato all'esecuzione della PIPELINE.\n"
 "    \n"
 "    Opzioni:\n"
@@ -4455,7 +4867,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Viene restituito lo stato della PIPELINE."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4467,22 +4879,28 @@ msgid ""
 msgstr ""
 "Esegue comandi basati sulla corrispondenza di modello.\n"
 "    \n"
-"    Esegue in modo selettivo COMANDI basati sulla PAROLA corrispondente al MODELLO.  Il\n"
+"    Esegue in modo selettivo COMANDI basati sulla PAROLA corrispondente al "
+"MODELLO.  Il\n"
 "    carattere \"|\" è usato per separare modelli multipli.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4490,18 +4908,24 @@ msgid ""
 msgstr ""
 "Esegue comandi basati su condizioni.\n"
 "    \n"
-"    Viene eseguito l'elenco degli \"if COMANDI\".  Se lo stato di uscita è zero\n"
-"    viene eseguito l'elenco \"then COMANDI\", altrimenti viene eseguito l'elenco\n"
-"    degli \"elif COMANDI\" e, se il loro stato è zero, viene eseguito l'elenco dei\n"
-"    \"then COMANDI\" corrispondente e viene completato l'\"if COMANDO\".  Altrimenti,\n"
-"    viene eseguito l'elenco \"else COMANDI\", se presente.  Lo stato di uscita\n"
-"    dell'intero costrutto corrisponde a quello dell'ultimo comando eseguito, o\n"
+"    Viene eseguito l'elenco degli \"if COMANDI\".  Se lo stato di uscita è "
+"zero\n"
+"    viene eseguito l'elenco \"then COMANDI\", altrimenti viene eseguito "
+"l'elenco\n"
+"    degli \"elif COMANDI\" e, se il loro stato è zero, viene eseguito "
+"l'elenco dei\n"
+"    \"then COMANDI\" corrispondente e viene completato l'\"if COMANDO\".  "
+"Altrimenti,\n"
+"    viene eseguito l'elenco \"else COMANDI\", se presente.  Lo stato di "
+"uscita\n"
+"    dell'intero costrutto corrisponde a quello dell'ultimo comando eseguito, "
+"o\n"
 "    zero se nessuna condizione provata è vera.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4519,7 +4943,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4537,7 +4961,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4551,20 +4975,24 @@ msgid ""
 msgstr ""
 "Crea un coprocesso chiamato NOME.\n"
 "    \n"
-"    Esegue il COMANDO in modo asincrono, con lo standard output e lo standard\n"
-"    input del comando connessi attraverso una pipe ai descrittori di file assegnati\n"
-"    agli indici 0 e 1 di una variabile di array NOME nella shell in esecuzione.\n"
+"    Esegue il COMANDO in modo asincrono, con lo standard output e lo "
+"standard\n"
+"    input del comando connessi attraverso una pipe ai descrittori di file "
+"assegnati\n"
+"    agli indici 0 e 1 di una variabile di array NOME nella shell in "
+"esecuzione.\n"
 "    Il NOME predefinito è \"COPROC\".\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato di uscita del COMANDO."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4573,15 +5001,18 @@ msgid ""
 msgstr ""
 "Definisce una funzione di shell.\n"
 "    \n"
-"    Crea una funzione di shell chiamata NOME.  Quando invocato come un semplice comando,\n"
-"    NOME esegue i COMANDI nel contesto delle chiamate di shell.  Quando viene invocato NOME,\n"
-"    gli argomenti sono passati alla funzione come $1...$n e il nome della funzione si trova\n"
+"    Crea una funzione di shell chiamata NOME.  Quando invocato come un "
+"semplice comando,\n"
+"    NOME esegue i COMANDI nel contesto delle chiamate di shell.  Quando "
+"viene invocato NOME,\n"
+"    gli argomenti sono passati alla funzione come $1...$n e il nome della "
+"funzione si trova\n"
 "    in $FUNCNAME.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce successo a meno che il NOME non sia in sola lettura."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4593,13 +5024,14 @@ msgid ""
 msgstr ""
 "Raggruppa i comandi come un'unità.\n"
 "    \n"
-"    Esegue un set di comandi in un gruppo.  Questo è un modo per reindirizzare un\n"
+"    Esegue un set di comandi in un gruppo.  Questo è un modo per "
+"reindirizzare un\n"
 "    intero set di comandi.\n"
 "    \n"
 "    Stato di uscita:\n"
 "    Restituisce lo stato dell'ultimo comando eseguito."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4623,7 +5055,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Restituisce lo stato del job ripristinato."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4641,13 +5073,16 @@ msgstr ""
 "    Stato di uscita:\n"
 "    Restituisce 1 se ESPRESSIONE è valutata 0, altrimenti restituisce 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4667,18 +5102,26 @@ msgid ""
 msgstr ""
 "Esegue comandi condizionali.\n"
 "    \n"
-"    Resituisce uno stato di 0 o 1 a seconda della valutazione dell'espressione\n"
-"    condizionale ESPRESSIONE.  Le espressioni sono composte dalle stesse basilari usate\n"
-"    dal comando interno \"test\", e possono essere combinate usando i seguenti operatori:\n"
+"    Resituisce uno stato di 0 o 1 a seconda della valutazione "
+"dell'espressione\n"
+"    condizionale ESPRESSIONE.  Le espressioni sono composte dalle stesse "
+"basilari usate\n"
+"    dal comando interno \"test\", e possono essere combinate usando i "
+"seguenti operatori:\n"
 "    \n"
 "      ( ESPRESSIONE )\tRestituisce il valore dell'ESPRESSIONE\n"
-"      ! ESPRESSIONE\t\tVero se l'ESPRESSIONE è falsa; falso in caso contrario\n"
-"      ESPR1 && ESPR2\tVero se sia ESPR1 che ESPR2 sono vere; falso in caso contrario\n"
-"      ESPR1 || ESPR2\tVero se una tra ESPR1 ed ESPR2 è vera; falso in caso contrario\n"
-"    \n"
-"    Quando vengono usati gli operatori \"==\" e \"!=\", la stringa a destra dell'operatore\n"
+"      ! ESPRESSIONE\t\tVero se l'ESPRESSIONE è falsa; falso in caso "
+"contrario\n"
+"      ESPR1 && ESPR2\tVero se sia ESPR1 che ESPR2 sono vere; falso in caso "
+"contrario\n"
+"      ESPR1 || ESPR2\tVero se una tra ESPR1 ed ESPR2 è vera; falso in caso "
+"contrario\n"
+"    \n"
+"    Quando vengono usati gli operatori \"==\" e \"!=\", la stringa a destra "
+"dell'operatore\n"
 "    è usata come un modello e ne viene effettuata la corrispondenza.\n"
-"    Quando viene usato l'operatore \"=~\", la stringa a destra dell'operatore è valutata\n"
+"    Quando viene usato l'operatore \"=~\", la stringa a destra "
+"dell'operatore è valutata\n"
 "    corrispondente a un'espressione regolare.\n"
 "    \n"
 "    Gli operatori && e || non valutano ESPR2 se ESPR1 è sufficiente a\n"
@@ -4687,7 +5130,7 @@ msgstr ""
 "    Stato di uscita:\n"
 "    0 o 1 a seconda del valore dell'ESPRESSIONE."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4745,53 +5188,77 @@ msgstr ""
 "    BASH_VERSION\tInformazioni sulla versione di Bash.\n"
 "    CDPATH\tUn elenco di directory da cercare separate da un due punti\n"
 "    \tfornite come argomenti per \"cd\".\n"
-"    GLOBIGNORE\tUn elenco di modelli separato da un due punti che descrivono i nomi\n"
+"    GLOBIGNORE\tUn elenco di modelli separato da un due punti che descrivono "
+"i nomi\n"
 "    \t\tdi file che devono essere ignorati dall'espansione di percorso.\n"
-"    HISTFILE\tIl nome del file in cui è memorizzata la cronologia dei comandi.\n"
+"    HISTFILE\tIl nome del file in cui è memorizzata la cronologia dei "
+"comandi.\n"
 "    HISTFILESIZE\tIl numero massimo di righe che può contenere questo file.\n"
 "    HISTSIZE\tIl numero massimo di righe di cronologia a cui può accedere\n"
 "    \t\tuna shell in esecuzione.\n"
 "    HOME\tIl nome completo del percorso della propria directory di login.\n"
 "    HOSTNAME\tIl nome dell'host corrente.\n"
-"    HOSTTYPE\tIl tipo di CPU sulla quale è in esecuzione questa versione di bash.\n"
-"    IGNOREEOF\tControlla il comportamento della shell quando riceve un carattere EOF\n"
-"    \t\tcome unico input.  Se impostato, il suo valore corrisponde al numero\n"
-"    \t\tdi caratteri EOF che si possono trovare in una fila in una riga vuota\n"
-"    \t\tprima che la shell esca (predefinito 10).  Quando viene azzerato, EOF\n"
+"    HOSTTYPE\tIl tipo di CPU sulla quale è in esecuzione questa versione di "
+"bash.\n"
+"    IGNOREEOF\tControlla il comportamento della shell quando riceve un "
+"carattere EOF\n"
+"    \t\tcome unico input.  Se impostato, il suo valore corrisponde al "
+"numero\n"
+"    \t\tdi caratteri EOF che si possono trovare in una fila in una riga "
+"vuota\n"
+"    \t\tprima che la shell esca (predefinito 10).  Quando viene azzerato, "
+"EOF\n"
 "    \t\tindica la fine dell'input.\n"
-"    MACHTYPE\tUna stringa che descrive l'attuale sistema dove è in esecuzione bash.\n"
-"    MAILCHECK\tQuanto spesso, in secondi, Bash controlla la presenza di nuova posta.\n"
-"    MAILPATH\tUn elenco di nomi di file separati da un due punti usati da Bash per\n"
+"    MACHTYPE\tUna stringa che descrive l'attuale sistema dove è in "
+"esecuzione bash.\n"
+"    MAILCHECK\tQuanto spesso, in secondi, Bash controlla la presenza di "
+"nuova posta.\n"
+"    MAILPATH\tUn elenco di nomi di file separati da un due punti usati da "
+"Bash per\n"
 "    \t\tcontrollare la presenza di nuova posta.\n"
-"    OSTYPE\tLa versione di Unix sulla quale è in esecuzione questa versione di bash.\n"
-"    PATH\tUn elenco di directory, separato da un due punti, da analizzare quando\n"
+"    OSTYPE\tLa versione di Unix sulla quale è in esecuzione questa versione "
+"di bash.\n"
+"    PATH\tUn elenco di directory, separato da un due punti, da analizzare "
+"quando\n"
 "    \t\tsi cercano i comandi.\n"
-"    PROMPT_COMMAND\tUn comando da eseguire prima della stampa di ciascun prompt\n"
+"    PROMPT_COMMAND\tUn comando da eseguire prima della stampa di ciascun "
+"prompt\n"
 "    \t\tprimario.\n"
 "    PS1\t\tLa stringa del prompt primario.\n"
 "    PS2\t\tLa stringa del prompt secondario.\n"
 "    PWD\t\tIl nome completo del percorso della directory corrente.\n"
-"    SHELLOPTS\tUn elenco di opzioni di shell abilitate, separate da un due punti.\n"
+"    SHELLOPTS\tUn elenco di opzioni di shell abilitate, separate da un due "
+"punti.\n"
 "    TERM\tIl nome del tipo di terminale corrente.\n"
-"    TIMEFORMAT\tIl formato di output per le statistiche temporali visualizzato dalla\n"
+"    TIMEFORMAT\tIl formato di output per le statistiche temporali "
+"visualizzato dalla\n"
 "    \t\tparola riservata \"time\".\n"
-"    auto_resume\tNon null significa che una parola di un comando che compare da\n"
+"    auto_resume\tNon null significa che una parola di un comando che compare "
+"da\n"
 "    \t\taol in una riga viene prima cercata nell'elenco dei job correnti\n"
 "    \t\tfermati.  Se trovato, questo job viene messo in primo piano.\n"
 "    \t\tUn valore pari a \"exact\" significa che la parola del comando deve\n"
-"    \t\tcorrispondere esattamente a un comando nell'elenco dei job fermati.  Un\n"
-"    \t\tvalore pari a \"substring\" significa che la parola del comando deve\n"
-"    \t\tcorrispondere a una sottostringa del job.  Qualsiasi altro valore significa\n"
+"    \t\tcorrispondere esattamente a un comando nell'elenco dei job fermati.  "
+"Un\n"
+"    \t\tvalore pari a \"substring\" significa che la parola del comando "
+"deve\n"
+"    \t\tcorrispondere a una sottostringa del job.  Qualsiasi altro valore "
+"significa\n"
 "    \t\tche il comando deve essere un prefisso di un lavoro fermato.\n"
-"    histchars\tCaratteri che controllano l'espansione della cronologia e la sostituzione\n"
-"    \t\trapida.  Il primo carattere è quello di sostituzione della cronologia,\n"
-"    \t\tsolitamente \"!\".  Il secondo è il carattere di \"sostituzione rapida\",\n"
-"    \t\tsolitamente \"^\".  Il terzo è il carattere di \"commento della cronologia\",\n"
+"    histchars\tCaratteri che controllano l'espansione della cronologia e la "
+"sostituzione\n"
+"    \t\trapida.  Il primo carattere è quello di sostituzione della "
+"cronologia,\n"
+"    \t\tsolitamente \"!\".  Il secondo è il carattere di \"sostituzione "
+"rapida\",\n"
+"    \t\tsolitamente \"^\".  Il terzo è il carattere di \"commento della "
+"cronologia\",\n"
 "    \t\tsolitamente \"#\".\n"
-"    HISTIGNORE\tUn elenco di modelli separato da un due punti usato per decidere quale\n"
+"    HISTIGNORE\tUn elenco di modelli separato da un due punti usato per "
+"decidere quale\n"
 "    \t\tcomando dovrebbe essere salvato nell'elenco della cronologia.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4846,10 +5313,11 @@ msgstr ""
 "    Il comando interno \"dirs\" mostra lo stack delle directory.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornito un argomento valido o non abbia\n"
+"    Restituisce successo a meno che non sia fornito un argomento valido o "
+"non abbia\n"
 "    successo il cambio di directory."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4896,10 +5364,11 @@ msgstr ""
 "    Il comando interno \"dirs\" mostra lo stack delle directory.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornito un argomento non valido o non\n"
+"    Restituisce successo a meno che non venga fornito un argomento non "
+"valido o non\n"
 "    abbia successo il cambio di directory."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4916,10 +5385,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4947,14 +5418,16 @@ msgstr ""
 "    \tmostrato da dirs quando invocato senza opzioni, iniziando da zero.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita un'opzione non valida o si riscontri un errore."
+"    Restituisce successo a meno che non sia fornita un'opzione non valida o "
+"si riscontri un errore."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4970,22 +5443,27 @@ msgid ""
 msgstr ""
 "Imposta le opzioni della shell.\n"
 "    \n"
-"    Cambia le impostazioni di ciascuna opzione di shell NOMEOPZ.  Senza argomenti\n"
-"    per le opzioni, elenca tutte le opzioni di shell indicando se sono o non sono\n"
+"    Cambia le impostazioni di ciascuna opzione di shell NOMEOPZ.  Senza "
+"argomenti\n"
+"    per le opzioni, elenca tutte le opzioni di shell indicando se sono o non "
+"sono\n"
 "    impostate.\n"
 "    \n"
 "    Opzioni:\n"
-"      -o\tLimita i NOMEOPZ a quelli definiti per essere usati con \"set -o\"\n"
+"      -o\tLimita i NOMEOPZ a quelli definiti per essere usati con \"set -o"
+"\"\n"
 "      -p\tStampa ogni opzione di shell indicando il relativo stato\n"
 "      -q\tNon stampa l'output\n"
 "      -s\tAbilita (imposta) ciascun NOMEOPZ\n"
 "      -u\tDisabilita (elimina) ciascun NOMEOPZ\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo se NOMEOPZ è abilitato; insuccesso se viene fornita\n"
+"    Restituisce successo se NOMEOPZ è abilitato; insuccesso se viene "
+"fornita\n"
 "    una opzione non valida o NOMEOPZ è disabilitato."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4993,22 +5471,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Formatta e stampa gli ARGOMENTI come indicato dal FORMATO.\n"
@@ -5017,30 +5501,39 @@ msgstr ""
 "      -v var\tAssegna l'output alla variabile di shell VAR invece\n"
 "    \t\tdi visualizzarlo sullo standard output\n"
 "    \n"
-"    FORMATO è una stringa di caratteri che contiene tre tipi di oggetto: caratteri\n"
-"    semplici, che sono semplicemente copiati sullo standard output; sequenze di escape\n"
+"    FORMATO è una stringa di caratteri che contiene tre tipi di oggetto: "
+"caratteri\n"
+"    semplici, che sono semplicemente copiati sullo standard output; sequenze "
+"di escape\n"
 "    dei caratteri, che sono convertite e copiate sullo standard output;\n"
-"    specifiche di formato, ognuna delle quali provoca la stampa del successivo argomento\n"
+"    specifiche di formato, ognuna delle quali provoca la stampa del "
+"successivo argomento\n"
 "    consecutivo.\n"
 "    \n"
 "    In aggiunta alle specifiche di formato standard descritte in printf(1)\n"
 "    e printf(3), printf interpreta:\n"
 "    \n"
-"      %b\tEspande le sequenze di escape di backslash nell'argomento corrispondente\n"
-"      %q\tQuota l'argomento in modo che possa essere riusato come input per la shell\n"
-"      %(fmt)T Visualizza la stringa della data/ora risultante dall'uso di FMT come stringa\n"
+"      %b\tEspande le sequenze di escape di backslash nell'argomento "
+"corrispondente\n"
+"      %q\tQuota l'argomento in modo che possa essere riusato come input per "
+"la shell\n"
+"      %(fmt)T Visualizza la stringa della data/ora risultante dall'uso di "
+"FMT come stringa\n"
 "            di formato per strftime(3)\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita una opzione non valida o si riscontri\n"
+"    Restituisce successo a meno che non venga fornita una opzione non valida "
+"o si riscontri\n"
 "    un errore di scrittura o assegnazione."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5061,32 +5554,40 @@ msgid ""
 msgstr ""
 "Specifica come gli argomenti debbano essere completati da Readline.\n"
 "    \n"
-"    Per ciascun NOME, specifica come gli argomenti debbano essere completati.  Se non\n"
-"    vengono fornite opzioni, le specifiche di completamento esistenti sono stampate in modo\n"
+"    Per ciascun NOME, specifica come gli argomenti debbano essere "
+"completati.  Se non\n"
+"    vengono fornite opzioni, le specifiche di completamento esistenti sono "
+"stampate in modo\n"
 "    che possano essere riusate come input.\n"
 "    \n"
 "    Opzioni:\n"
-"      -p\tStampa le specifiche di completamento esistenti in un formato riusabile\n"
-"      -r\tRimuove una specifica di completamento per ciascun NOME, oppure tutte\n"
+"      -p\tStampa le specifiche di completamento esistenti in un formato "
+"riusabile\n"
+"      -r\tRimuove una specifica di completamento per ciascun NOME, oppure "
+"tutte\n"
 "    \tse non viene fornito alcun NOME\n"
-"      -D\tApplica i completamenti e le azioni come predefiniti per i comandi\n"
+"      -D\tApplica i completamenti e le azioni come predefiniti per i "
+"comandi\n"
 "    \tsenza alcun completamento definito specifico\n"
 "      -E\tApplica i completamenti e le azioni ai comandi \"vuoti\" --\n"
 "    \tcompletamenti tentati su una riga vuota\n"
 "    \n"
-"    Quando viene tentato un completamento, le azioni sono applicate nell'ordine\n"
+"    Quando viene tentato un completamento, le azioni sono applicate "
+"nell'ordine\n"
 "    in cui sono sopra elencate le opzioni a lettera maiuscola.\n"
 "    L'opzione -D ha precedenza su -E.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o si riscontri un errore."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5094,20 +5595,26 @@ msgid ""
 msgstr ""
 "Visualizza i possibili completamenti a seconda delle opzioni.\n"
 "    \n"
-"    È pensata per essere usata all'interno di una funzione di shell per generare\n"
-"    dei possibili completamenti.  Se viene fornito l'argomento opzionale PAROLA,\n"
+"    È pensata per essere usata all'interno di una funzione di shell per "
+"generare\n"
+"    dei possibili completamenti.  Se viene fornito l'argomento opzionale "
+"PAROLA,\n"
 "    vengono generate le corrispondenze relative a PAROLA.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non sia fornita una opzione non valida o si riscontri un errore."
+"    Restituisce successo a meno che non sia fornita una opzione non valida o "
+"si riscontri un errore."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5130,45 +5637,60 @@ msgid ""
 msgstr ""
 "Modifica o visualizza le opzioni di completamento.\n"
 "    \n"
-"    Modifica le opzioni di completamento per ciascun NOME, oppure, se non viene fornito alcun NOME,\n"
-"    il completamento attualmente in esecuzione.  Con nessuna OPZIONE fornita, stampa\n"
-"    le opzioni di completamento per ciascun NOME o le specifiche di completamento correnti.\n"
+"    Modifica le opzioni di completamento per ciascun NOME, oppure, se non "
+"viene fornito alcun NOME,\n"
+"    il completamento attualmente in esecuzione.  Con nessuna OPZIONE "
+"fornita, stampa\n"
+"    le opzioni di completamento per ciascun NOME o le specifiche di "
+"completamento correnti.\n"
 "    \n"
 "    Opzioni:\n"
 "    \t-o opzione\tImposta l'OPZIONE di completamento per ciascun NOME\n"
-"    \t-D\t\tCambia le opzioni per il completamento di comando \"predefinito\"\n"
+"    \t-D\t\tCambia le opzioni per il completamento di comando \"predefinito"
+"\"\n"
 "    \t-E\t\tCambia le opzioni per il completamento di comando \"vuoto\"\n"
 "    \n"
 "    Usando \"+o\" al posto di \"-o\" disabilita l'opzione specificata.\n"
 "    \n"
 "    Argomenti:\n"
 "    \n"
-"    Ciascun NOME si riferisce a un comando per il quale deve essere stata precedentemente\n"
-"    definita una specifica di completamento con il comando interno \"complete\".  Se non viene fornito\n"
-"    alcun NOME, compopt deve essere richiamato da una funzione che generi attualmente\n"
-"    completamenti, e le opzioni per questo generatore di completamenti attualmente\n"
+"    Ciascun NOME si riferisce a un comando per il quale deve essere stata "
+"precedentemente\n"
+"    definita una specifica di completamento con il comando interno \"complete"
+"\".  Se non viene fornito\n"
+"    alcun NOME, compopt deve essere richiamato da una funzione che generi "
+"attualmente\n"
+"    completamenti, e le opzioni per questo generatore di completamenti "
+"attualmente\n"
 "    in esecuzione sono modificate\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita una opzione non valida o NOME non\n"
+"    Restituisce successo a meno che non venga fornita una opzione non valida "
+"o NOME non\n"
 "    abbia una specifica di completamento definita."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5178,27 +5700,36 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Legge righe dallo standard input in una variabile di array indicizzato.\n"
 "    \n"
-"    Legge righe dallo standard input nella variabile di ARRAY indicizzato, oppure\n"
-"    dal descrittore di file FD se viene fornita l'opzione -u.  La variabile MAPFILE\n"
+"    Legge righe dallo standard input nella variabile di ARRAY indicizzato, "
+"oppure\n"
+"    dal descrittore di file FD se viene fornita l'opzione -u.  La variabile "
+"MAPFILE\n"
 "    è l'ARRAY predefinito.\n"
 "    \n"
 "    Opzioni:\n"
-"      -n numero\t\tCopia al massimo un NUMERO di righe.  Se NUMERO è 0, vengono copiate tutte.\n"
-"      -O origine\tInizia assegnando all'ARRAY all'indice ORIGINE.  L'indice predefinito è 0.\n"
+"      -n numero\t\tCopia al massimo un NUMERO di righe.  Se NUMERO è 0, "
+"vengono copiate tutte.\n"
+"      -O origine\tInizia assegnando all'ARRAY all'indice ORIGINE.  L'indice "
+"predefinito è 0.\n"
 "      -s numero \tScarta le prime NUMERO righe lette.\n"
 "      -t\t\tRimuove un ritorno a capo finale da ciascuna riga letta.\n"
-"      -u fd\t\tLegge le righe da un descrittore di file FD invece che dallo standard input.\n"
-"      -C callback\tEsamina CALLBACK ogni volta che vengono lette un numero QUANTO di righe.\n"
-"      -c quantità\tSpecifica il numero di righe lette tra ciascuna chiamata a CALLBACK.\n"
+"      -u fd\t\tLegge le righe da un descrittore di file FD invece che dallo "
+"standard input.\n"
+"      -C callback\tEsamina CALLBACK ogni volta che vengono lette un numero "
+"QUANTO di righe.\n"
+"      -c quantità\tSpecifica il numero di righe lette tra ciascuna chiamata "
+"a CALLBACK.\n"
 "    \n"
 "    Argomenti:\n"
 "      ARRAY\t\tNome della variabile di array da usare per i dati dei file.\n"
@@ -5208,14 +5739,16 @@ msgstr ""
 "    array successivo da assegnare e la riga da attribuire a quell'elemento\n"
 "    come argomenti aggiuntivi.\n"
 "    \n"
-"    Se non viene fornito con una origine esplicita, il file di mappa azzererà l'ARRAY\n"
+"    Se non viene fornito con una origine esplicita, il file di mappa "
+"azzererà l'ARRAY\n"
 "    prima della relativa assegnazione.\n"
 "    \n"
 "    Stato di uscita:\n"
-"    Restituisce successo a meno che non venga fornita una opzione non valida, ARRAY sia\n"
+"    Restituisce successo a meno che non venga fornita una opzione non "
+"valida, ARRAY sia\n"
 "    in sola lettura oppure non indicizzato."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index f1d41c317bb240c13ad881ae0988396d66765638..eb52fe7e2471e3c773c5f584c161efae06a6b1eb 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 34798e0cd014b0f9fe76821f98dffb30e6965721..7472cb7e099ce15ad63844cb477ef14b29caa6b9 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-08-26 23:34+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -18,50 +18,50 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "誤った配列の添字"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: インデックス配列から連想配列に変換することはできません"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: 無効な連想配列のキーです"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: 配列の添字に非数字を設定できません"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: 連想配列を設定するときには添字をつけなければいけません"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: %s を作成できません"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: コマンドのキーマップがありません"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: 最初の非空白類文字が `\"' ではありません"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "閉じる `%c' が %s にありません"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: 区切り文字コロン(:)がありません"
@@ -71,36 +71,36 @@ msgstr "%s: 区切り文字コロン(:)がありません"
 msgid "`%s': invalid alias name"
 msgstr "`%s': 無効なエイリアス名です"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "行編集が有効になっていません"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': 無効なキーマップ名です"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: %s を読み込めません"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': 割り当て解除できません"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': 不明な関数名です"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s はどのキーにも割り当てられていません。\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s は次を通して起動します "
@@ -123,11 +123,15 @@ msgstr ""
 "    \n"
 "    EXPR が無い場合、次を返します "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME が設定されていません"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "引数が多すぎます"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD が設定されていません"
 
@@ -136,7 +140,7 @@ msgstr "OLDPWD が設定されていません"
 msgid "line %d: "
 msgstr "%d 行: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "警告: "
@@ -146,11 +150,7 @@ msgstr "警告: "
 msgid "%s: usage: "
 msgstr "%s: 使用法: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "引数が多すぎます"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: オプションには引数が必要です"
@@ -165,7 +165,7 @@ msgstr "%s: 数字の引数が必要です"
 msgid "%s: not found"
 msgstr "%s: 見つかりません"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: 無効なオプションです"
@@ -175,7 +175,7 @@ msgstr "%s: 無効なオプションです"
 msgid "%s: invalid option name"
 msgstr "%s: 無効なオプション名です"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': 有効な識別子ではありません"
@@ -188,7 +188,7 @@ msgstr "無効な八進数です"
 msgid "invalid hex number"
 msgstr "無効な十六進数です"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "無効な数字です"
 
@@ -202,7 +202,7 @@ msgstr "%s: 無効なシグナル指定です"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': pid または有効なジョブ指定ではありません"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: 読み取り専用の変数です"
@@ -274,26 +274,26 @@ msgstr "%s: カレントディレクトリの取得時にエラーが発生し
 msgid "%s: ambiguous job spec"
 msgstr "%s: 曖昧なジョブ指定です"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: 無効なアクション名です"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: 補完指定がありません"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "警告: -F オプションは期待通りに動作しないかもしれません"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "警告: -C オプションは期待通りに動作しないかもしれません"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "補完機能は現在実行されていません"
 
@@ -305,7 +305,7 @@ msgstr "関数の中でのみ使用できます"
 msgid "cannot use `-f' to make functions"
 msgstr "関数作成時に `-f' を使用できません"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: 読み取り専用関数です"
@@ -315,7 +315,7 @@ msgstr "%s: 読み取り専用関数です"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: この方法で配列変数を消去することはできません"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: 連想配列からインデックス配列に変換することはできません"
@@ -344,8 +344,8 @@ msgstr "%s: 動的にロードされていません"
 msgid "%s: cannot delete: %s"
 msgstr "%s: 削除できません: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: ディレクトリです"
@@ -360,8 +360,7 @@ msgstr "%s: 通常ファイルではありません"
 msgid "%s: file is too large"
 msgstr "%s: ファイルが大きすぎます"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: バイナリファイルを実行できません"
@@ -444,8 +443,11 @@ msgstr[0] "キーワードに一致したシェルコマンド `"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "`%s' に一致するヘルプ項目がありません。`help help'、`man -k %s' または `info %s' を試してください"
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"`%s' に一致するヘルプ項目がありません。`help help'、`man -k %s' または `info "
+"%s' を試してください"
 
 #: builtins/help.def:185
 #, c-format
@@ -463,12 +465,15 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"これらのシェルコマンドは内部で定義されています。`help' と入力して一覧を参照してください。\n"
+"これらのシェルコマンドは内部で定義されています。`help' と入力して一覧を参照し"
+"てください。\n"
 "`help 名前' と入力すると `名前' という関数のより詳しい説明が得られます。\n"
 "'info bash' を使用するとシェル全般のより詳しい説明が得られます。\n"
-"`man -k' または info を使用すると一覧にないコマンドのより詳しい説明が得られます。\n"
+"`man -k' または info を使用すると一覧にないコマンドのより詳しい説明が得られま"
+"す。\n"
 "\n"
-"名前の後にアスタリスク (*) がある場合はそのコマンドが無効になっていることを意味します。\n"
+"名前の後にアスタリスク (*) がある場合はそのコマンドが無効になっていることを意"
+"味します。\n"
 "\n"
 
 #: builtins/history.def:154
@@ -479,7 +484,7 @@ msgstr "-anrw を2つ以上一緒に使用することはできません"
 msgid "history position"
 msgstr "ヒストリ位置"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: ヒストリの展開に失敗しました"
@@ -502,7 +507,7 @@ msgstr "%s: 引数はプロセスIDかジョブIDでなければいけません"
 msgid "Unknown error"
 msgstr "不明なエラーです"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "式が予期されます"
 
@@ -511,12 +516,12 @@ msgstr "式が予期されます"
 msgid "%s: not an indexed array"
 msgstr "%s: インデックス配列ではありません"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: 無効なファイル記述子指定です"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: %s は無効なファイル記述子です"
@@ -544,31 +549,31 @@ msgstr "空の配列変数名です"
 msgid "array variable support required"
 msgstr "配列変数のサポートが必要です"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': 書式指定文字がありません"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': 無効な時間書式指定です"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': 無効な書式指定文字です"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "警告: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "\\x 用の十六進数字がありません"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "\\%c 用のユニコード数値がありません"
@@ -604,10 +609,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "現在記憶されているディレクトリスタックを表示します。ディレクトリは `pushd'\n"
@@ -711,17 +718,17 @@ msgstr ""
 "    \n"
 "    `dirs' ビルトインコマンドでディレクトリスタックを表示します。"
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: 無効なタイムアウト指定です"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "読み込みエラー: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "`return' は関数または source されたスクリプト内のみで利用できます"
 
@@ -729,17 +736,17 @@ msgstr "`return' は関数または source されたスクリプト内のみで
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "変数と関数を同時に消去することはできません"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: 消去できません"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: 消去できません: %s は読み取り専用です"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: 配列変数ではありません"
@@ -753,11 +760,11 @@ msgstr "%s: 関数ではありません"
 msgid "shift count"
 msgstr "シフト回数"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "シェルオプションを同時に有効かつ無効にできません"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: 無効なシェルオプション名です"
@@ -799,7 +806,7 @@ msgstr "%s は関数です\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s はシェル組み込み関数です\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s は %s です\n"
@@ -809,26 +816,26 @@ msgstr "%s は %s です\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s はハッシュされています (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: limit の無効な引数です"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': 誤ったコマンドです"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: limit を取得できません: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limit"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: limit を変更できません : %s"
@@ -847,7 +854,7 @@ msgstr "`%c': 無効なシンボリックモード演算子です"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': 無効なシンボリックモード文字です"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " 行 "
 
@@ -861,23 +868,23 @@ msgstr "最後のコマンド: %s\n"
 msgid "Aborting..."
 msgstr "中止しています..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "不明なコマンドエラーです"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "誤ったコマンドタイプです"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "誤った接続です"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "誤ったジャンプです"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: 未割り当ての変数です"
@@ -892,102 +899,117 @@ msgstr "\a入力待ちがタイムアウトしました: 自動ログアウト\n
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "/dev/null から標準入力に対してリダイレクトできません: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': 無効な書式文字です"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "パイプエラー"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: 制限されています:  `/' をコマンド名の中に指定できません"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: コマンドが見つかりません"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: 誤ったインタプリタです"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: バイナリファイルを実行できません"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s はシェル組み込み関数です\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "fd %d を fd %d に複製できません"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "式の再帰可能レベルを越えました"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "再帰スタックがアンダーフローしました"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "式に構文エラーがあります"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "非変数に割り当てを行おうとしてます"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "0 による除算です"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "バグ: 誤った式のトークンです"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "条件式には `:' が予期されます"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "0より小さい指数部です"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "識別子は前置インクリメントまたは前置デクリメントが予期されます"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "`)' がありません"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "構文エラー: オペランドが予期されます"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "構文エラー: 無効な計算演算子です"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (エラーのあるトークンは \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "無効な基底の数値です"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "基底の値が大きすぎます"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: 式のエラー\n"
@@ -996,163 +1018,163 @@ msgstr "%s: 式のエラー\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: 親ディレクトリにアクセスできません"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "ファイル記述子(fd) %d を無遅延モードに再設定できません"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "新規ファイル記述子(fd) %d を bash の入力として割り当てられません"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: 新規 fd %d のバッファはすでに存在します"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "実行中のジョブ %2$d で fork した pid %1$d が出現しました"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "プロセスグループ %2$ld のジョブ %1$d を削除しています"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: プロセス %5ld (%s) が the_pipeline にあります"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) はまだ存在しているとマークされています"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: そのような pid は存在しません"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "シグナル %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "終了"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "停止"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "停止 (%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "実行中"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "終了(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "終了 %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "不明なステータス"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(コアダンプ) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "子プロセス setpgid (%ld から %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld はこのシェルの子プロセスではありません"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: プロセス %ld の記録がありません"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: ジョブ %d は停止しています"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: ジョブは終了しました"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: ジョブ %d はすでにバックグラウンドで動作しています"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: 不定のブロックを避けるために WNOHANG をオンにしました。"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: %d 行: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (コアダンプ)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd now: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp が失敗しました"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "端末プロセスグループを設定できません (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "このシェルではジョブ制御が無効になっています"
 
@@ -1221,7 +1243,7 @@ msgstr "register_alloc: %p 既にテーブル上では割り当てられてい
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p テーブル上では既に解放されています\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "無効な基底"
 
@@ -1244,22 +1266,22 @@ msgstr "%s: ネットワークパス指定に誤りがあります"
 msgid "network operations not supported"
 msgstr "ネットワーク操作はサポートされていません"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: ロケールを変更できません (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: ロケールを変更できません (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: ロケールを変更できません (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: ロケールを変更できません (%s): %s"
@@ -1290,118 +1312,119 @@ msgstr "構文エラー: 予期しない `;' です"
 msgid "syntax error: `((%s))'"
 msgstr "構文エラー: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: 誤った指定の種類 %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "ヒアドキュメントの %d 行目でファイル終了 (EOF) に達しました (`%s' が必要)"
+msgstr ""
+"ヒアドキュメントの %d 行目でファイル終了 (EOF) に達しました (`%s' が必要)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: リダイレクト指定 `%d' は範囲外です"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "対応する `%c' を探索中に予期しないファイル終了 (EOF) です"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "`]]' を探索中に予期しないファイル終了 (EOF) です"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "条件式に構文エラー: 予期しないトークン `%s' です"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "条件式に構文エラーがあります"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "予期しないトークン `%s' です。`)' が予期されます"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "`)' が予期されます"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "条件単項演算子に予期しない引数 `%s' です"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "条件単項演算子に予期しない引数です"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "`%s` は予期しないトークンです。条件二項演算子が予期されます"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "条件二項演算子が予期されます"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "条件二項演算子に予期しない引数 `%s' です"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "条件二項演算子に予期しない引数です"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "条件コマンドに予期しないトークン `%c' があります"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "条件コマンドに予期しないトークン `%s' があります"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "条件コマンドに予期しないトークン %d があります"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "予期しないトークン `%s' 周辺に構文エラーがあります"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "`%s' 周辺に構文エラーがあります"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "構文エラー: 予期しないファイル終了 (EOF) です"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "構文エラー"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "シェルから脱出するには \"%s\" を使用してください。\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "対応する `)' を探索中に予期しないファイル終了(EOF)です"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: 関数 `%s' が見つかりません"
@@ -1411,26 +1434,26 @@ msgstr "completion: 関数 `%s' が見つかりません"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: 誤った接続 `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: 無効なファイル記述子です"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: NULL ファイルポインタです"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': 無効な書式文字です"
@@ -1468,33 +1491,33 @@ msgstr "%s: ファイル記述子 (fd) を変数に設定することはでき
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "ネットワークが無効な場合 /dev/(tcp|udp)/host/port はサポートされません"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "リダイレクトエラー: ファイル記述子を複製できません"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "/tmp が見つかりません。作成してください!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp は有効なディレクトリ名でなければいけません"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: 無効なオプション"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "私は名前がありません!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, バージョン %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1503,39 +1526,40 @@ msgstr ""
 "使用法:\t%s [GNU long option] [option] ...\n"
 "\t%s [GNU long option] [option] script-file ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU 形式の長いオプション:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "シェルオプション:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD または -c command または -O shopt_option\t\t(起動時のみ)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s または -o option\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "シェルオプションの詳細については `%s -c \"help set\"'と入力してください。\n"
+msgstr ""
+"シェルオプションの詳細については `%s -c \"help set\"'と入力してください。\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "シェル組み込みコマンドについては `%s -c help' と入力してください。\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "バグ報告をする場合は `bashbug' コマンドを使用してください。\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: 無効な操作です"
@@ -1709,81 +1733,83 @@ msgstr "不明なシグナル番号"
 msgid "Unknown Signal #%d"
 msgstr "不明なシグナル番号 %d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "誤った代入: 閉じる `%s' が %s に存在しません"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: リストを配列要素に割り当てできません"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "プロセス代入ではパイプを作成できません"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "プロセス代入では子プロセスを作成できません"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "名前付きパイプ %s を読み込み用に開けません"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "名前付きパイプ %s を書き込み用に開けません"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "名前付きパイプ %s をファイル記述子(fd) %d として複製できません"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "コマンド代入ではパイプを作成できません"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "コマンド代入では子プロセスを作成できません"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: パイプを fd 1 として複製できません"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: パラメータが null または設定されていません"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: substring expression < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: 誤った代入です"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: この方法で割当はできません"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
 msgstr "将来のバージョンのシェルでは強制的に数値代入として評価されます"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "誤った代入: %s に閉じる \"`\" がありません"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "一致しません: %s"
@@ -1820,76 +1846,80 @@ msgstr "%s: 二項演算子が予期されます"
 msgid "missing `]'"
 msgstr "`]'がありません"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "無効なシグナル番号"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: trap_list[%d] に誤った値があります: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: シグナルハンドラーは SIG_DFLです。, %d (%s) を自身に再送します。"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: シグナルハンドラーは SIG_DFLです。, %d (%s) を自身に再送し"
+"ます。"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: 誤ったシグナル %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "`%s' の関数定義をインポート中にエラーが発生しました"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "シェルレベル (%d) は高すぎます。1に再設定されました"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: 現在のスコープは関数コンテキストではありません"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: 現在のスコープは関数コンテキストではありません"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s は null の exportstr を持っています"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "%2$s に対する exportstr で %1$d は無効な文字です"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "%s に対する exportstr に `=' がありません"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: shell_variables の先頭です。関数コンテキストではありません"
+msgstr ""
+"pop_var_context: shell_variables の先頭です。関数コンテキストではありません"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: global_variables コンテキストではありません"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: shell_variables の先頭です。一時環境スコープではありません"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: ファイルとして開くことができません"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: トレースファイル記述子として無効な値です"
@@ -1899,8 +1929,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/"
+"licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1924,8 +1958,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "ライセンス GPLv2+: GNU GPL バージョン 2 またはそれ以降 <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"ライセンス GPLv2+: GNU GPL バージョン 2 またはそれ以降 <http://gnu.org/"
+"licenses/gpl.html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1956,8 +1994,13 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] name [name ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function または readline-command]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function または readline-command]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2064,8 +2107,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [pattern ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d offset] [n] または history -anrw [filename] または history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d offset] [n] または history -anrw [filename] または history -"
+"ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2076,16 +2123,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [jobspec ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... または kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... または kill -l "
+"[sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let 引数 [引数 ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2144,7 +2199,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] name [name ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]"
 
 #: builtins.c:172
@@ -2152,7 +2208,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [mode]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2180,8 +2237,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2240,24 +2301,42 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [arguments]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o option] [-DE] [name ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 
 #: builtins.c:254
 msgid ""
@@ -2274,7 +2353,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "エイリアスを定義または表示します。\n"
@@ -2282,15 +2362,18 @@ msgstr ""
 "    引数がない場合、`alias` は再使用可能なエイリアス一覧を `alias 名前=値'\n"
 "    形式で標準出力に表示します。\n"
 "    \n"
-"    そうでなければ、与えられた名前と値でエイリアスを定義します。値の後続に空白\n"
-"    が存在する場合は次の語はエイリアス展開時にエイリアス代入対象として確認され\n"
+"    そうでなければ、与えられた名前と値でエイリアスを定義します。値の後続に空"
+"白\n"
+"    が存在する場合は次の語はエイリアス展開時にエイリアス代入対象として確認さ"
+"れ\n"
 "    ます。\n"
 "\n"
 "    オプション:\n"
 "      -p\tすべての定義されたエイリアスを再利用可能な形式で表示します\n"
 "    \n"
 "    終了ステータス:\n"
-"    alias は与えられた名前でエイリアスが定義されなかった場合を除き true を返します。"
+"    alias は与えられた名前でエイリアスが定義されなかった場合を除き true を返"
+"します。"
 
 #: builtins.c:276
 msgid ""
@@ -2309,6 +2392,7 @@ msgstr ""
 "    名前がエイリアスに存在しない場合を除き true を返します。"
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2320,24 +2404,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2350,14 +2440,18 @@ msgstr ""
 "    例: bind '\"\\C-x\\C-r\": re-read-init-file'\n"
 "    \n"
 "    オプション:\n"
-"      -m  keymap         このコマンドの間のキーマップとして KEYMAP を使用する。\n"
-"                         利用可能なキーマップは emacs, emacs-standard, emacs-meta,\n"
-"                          emacs-ctlx, vi, vi-move, vi-command, および vi-insert。\n"
+"      -m  keymap         このコマンドの間のキーマップとして KEYMAP を使用す"
+"る。\n"
+"                         利用可能なキーマップは emacs, emacs-standard, emacs-"
+"meta,\n"
+"                          emacs-ctlx, vi, vi-move, vi-command, および vi-"
+"insert。\n"
 "      -l                 関数名一覧を表示します。\n"
 "      -P                 関数名およびキーバインディング一覧を表示します。\n"
 "      -p                 関数名とキーバインディングを入力として再利用可能な\n"
 "                         形式で一覧表示します。\n"
-"      -S                 マクロを起動するキーシーケンスとその値を一覧表示する\n"
+"      -S                 マクロを起動するキーシーケンスとその値を一覧表示す"
+"る\n"
 "      -s                 入力として再利用可能な形式で、マクロを起動する\n"
 "                         キーシーケンスとその値を一覧表示する\n"
 "      -V                 変数名と値の一覧を表示します。\n"
@@ -2374,7 +2468,7 @@ msgstr ""
 "    bind は解釈できないオプションが渡された場合およびエラーが発生した場合\n"
 "    を除き 0 を返します。"
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2386,13 +2480,14 @@ msgid ""
 msgstr ""
 "for、 while、または until ループを脱出します。\n"
 "    \n"
-"    FOR、 WHILE、または UNTIL ループを脱出します  もし N が指定されている場合、\n"
+"    FOR、 WHILE、または UNTIL ループを脱出します  もし N が指定されている場"
+"合、\n"
 "    N階層のループを終了します。\n"
 "    \n"
 "    終了ステータス:\n"
 "    N が1未満の場合を除き、終了ステータスは 0 です。"
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2410,13 +2505,14 @@ msgstr ""
 "    終了ステータス:\n"
 "    N  が1未満の場合を除き、終了ステータスは 0 です。"
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2432,7 +2528,7 @@ msgstr ""
 "    シェル組み込みコマンドの終了ステータスを返します。シェル組み込みコマ\n"
 "    ンドが無い場合は false を返します。"
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2450,7 +2546,8 @@ msgstr ""
 "現在のサブルーチン呼び出しのコンテキストを返します。\n"
 "    \n"
 "    EXPR が無い場合 \"$line $filename\" を返します。  EXPR がある場合、\n"
-"    \"$line $subroutine $filename\" を返します。この追加の情報はスタックトレース\n"
+"    \"$line $subroutine $filename\" を返します。この追加の情報はスタックト"
+"レース\n"
 "    を提供する時に利用します。\n"
 "    \n"
 "    EXPR の値は現在のフレームに戻るまでに何回フレームが呼び出されているかを\n"
@@ -2459,33 +2556,46 @@ msgstr ""
 "    終了ステータス:\n"
 "    シェルが関数を実行できないか式 EXPR が無効な場合を除き 0 を返します。"
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "シェルの作業ディレクトリを変更します。\n"
@@ -2493,13 +2603,16 @@ msgstr ""
 "    カレントディレクトリを DIR へ変更します。DIR のデフォルトは HOME シェル\n"
 "    変数の値です。\n"
 "    \n"
-"    変数 CDPATH は DIR を含んでいる検索パスを定義します。CDPATH にはコロン(:)\n"
+"    変数 CDPATH は DIR を含んでいる検索パスを定義します。CDPATH にはコロン"
+"(:)\n"
 "    で区切られた代替ディレクトリ名を指定します。\n"
 "    NULL のディレクトリ名はカレントディレクトリと同義です。 DIR が\n"
 "    スラッシュ (/) から始まる場合は CDPATH は使用されません。\n"
 "\n"
-"    ディレクトリが見つからなく、かつ `cdabl_vars' シェルオプションが設定されて\n"
-"    いる場合、引数は変数名として扱われます。その変数に値がある場合、その値が\n"
+"    ディレクトリが見つからなく、かつ `cdabl_vars' シェルオプションが設定され"
+"て\n"
+"    いる場合、引数は変数名として扱われます。その変数に値がある場合、その値"
+"が\n"
 "    DIR として扱われます。\n"
 "    \n"
 "    オプション:\n"
@@ -2508,13 +2621,15 @@ msgstr ""
 "        -e\t-P オプションが与えられ、かつ、現在の作業ディレクトリが正しく\n"
 "    \t決定できない場合、終了ステータスが 0 以外で終了します\n"
 "    \n"
-"    デフォルトでは `-L' が指定された場合と同様シンボリックリンクをたどります\n"
+"    デフォルトでは `-L' が指定された場合と同様シンボリックリンクをたどりま"
+"す\n"
 "    \n"
 "    終了ステータス:\n"
-"    ディレクトリを変更した場合、および -P が使用されている時に $PWD が正しく\n"
+"    ディレクトリを変更した場合、および -P が使用されている時に $PWD が正し"
+"く\n"
 "    設定された場合は 0、それ以外は 0 以外の値です。"
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2542,7 +2657,7 @@ msgstr ""
 "    無効なオプションまたはカレントディレクトリを読み込めない場合を除き\n"
 "    0を返します。"
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2558,7 +2673,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    常に成功です。"
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2570,7 +2685,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    常に成功です。"
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2582,12 +2697,13 @@ msgstr ""
 "    終了ステータス:\n"
 "    常に失敗です。"
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2612,9 +2728,10 @@ msgstr ""
 "      -V\tCOMMAND に対してより冗長な説明を表示する\n"
 "    \n"
 "    終了ステータス:\n"
-"    COMMAND の終了ステータスを返します。または COMMAND が見つからない時に失敗を返します。"
+"    COMMAND の終了ステータスを返します。または COMMAND が見つからない時に失敗"
+"を返します。"
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2644,7 +2761,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2678,13 +2796,14 @@ msgstr ""
 "    整数属性を与えられた変数は値を割り当てられた時に、数値として評価され\n"
 "    ます。(`let' コマンド参照してください。)\n"
 "    \n"
-"    関数内で使用された場合は `local' コマンドを使用した時と同様に `declare' \n"
+"    関数内で使用された場合は `local' コマンドを使用した時と同様に "
+"`declare' \n"
 "    は NAME をローカル変数にします。`-g' オプションはこの動作を抑止します。\n"
 "    \n"
 "    終了ステータス:\n"
 "    無効なオプションが与えられたかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2694,7 +2813,7 @@ msgstr ""
 "    \n"
 "    旧式です。`help declare'を参照してください。"
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2710,21 +2829,27 @@ msgid ""
 msgstr ""
 "ローカル変数を定義します。\n"
 "    \n"
-"    NAME という名前のローカル変数を定義し値を VALUE に設定します。`declare'と\n"
+"    NAME という名前のローカル変数を定義し値を VALUE に設定します。"
+"`declare'と\n"
 "    同じオプションを受け付けます。\n"
 "    \n"
-"    ローカル変数はシェル関数の中でのみ使用できます。宣言された関数の中およびそこ\n"
+"    ローカル変数はシェル関数の中でのみ使用できます。宣言された関数の中および"
+"そこ\n"
 "    から呼び出された関数のみで参照できます。\n"
 "    \n"
 "    終了ステータス:\n"
-"    無効なオプションが与えられる、エラーが発生する、またはシェルが関数を実行できない\n"
+"    無効なオプションが与えられる、エラーが発生する、またはシェルが関数を実行"
+"できない\n"
 "    場合を除き成功を返します。"
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2736,6 +2861,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2776,7 +2902,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    書き込みエラーが発生しない限り成功を返します。"
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2798,7 +2924,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    書き込みエラーが発生しない限り成功を返します。"
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2826,8 +2952,10 @@ msgid ""
 msgstr ""
 "シェル組み込み関数を有効または無効にします。\n"
 "    \n"
-"    シェル組み込み関数を有効または無効にします。シェル組み込み関数を無効にすると\n"
-"    ディスク上に存在するシェル組み込み関数と同じ名前のコマンドをフルパスを指定す\n"
+"    シェル組み込み関数を有効または無効にします。シェル組み込み関数を無効にす"
+"ると\n"
+"    ディスク上に存在するシェル組み込み関数と同じ名前のコマンドをフルパスを指"
+"定す\n"
 "    ることなく実行することが出来ます。\n"
 "    \n"
 "    オプション:\n"
@@ -2848,11 +2976,12 @@ msgstr ""
 "    終了ステータス:\n"
 "    NAME が組み込み関数ではないかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2867,7 +2996,7 @@ msgstr ""
 "    コマンドの終了ステータスを返します。コマンドが null の場合は成功を\n"
 "    返します。"
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2944,12 +3073,13 @@ msgstr ""
 "    オプションが見つかった場合に成功を返します。オプションの終わり\n"
 "    に到達するかエラーが発生した時に失敗を返します。"
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2957,16 +3087,19 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "シェルを与えられたコマンドで置換します。\n"
 "    \n"
 "    指定したプログラムでシェルを置換して COMMAND を実行します。ARGUMENTS は\n"
-"    COMMAND の引数となります。もし COMMAND が指定されない場合は、現在のシェル\n"
+"    COMMAND の引数となります。もし COMMAND が指定されない場合は、現在のシェ"
+"ル\n"
 "    に対する全てのリダイレクトが行われます。\n"
 "    \n"
 "    オプション:\n"
@@ -2974,13 +3107,15 @@ msgstr ""
 "      -c\t\tCOMMAND を環境変数なしで実行します\n"
 "      -l\t\tdash(-) を COMMAND の 0 番目の引数とします\n"
 "    \n"
-"    もしコマンドが実行できない場合、非対話的なシェルは終了し、対話的なシェルは\n"
+"    もしコマンドが実行できない場合、非対話的なシェルは終了し、対話的なシェル"
+"は\n"
 "    オプション `execfail' が設定されます。\n"
 "    \n"
 "    終了ステータス:\n"
-"    COMMAND が見つからないかリダイレクトエラーが発生しない限り成功を返します。"
+"    COMMAND が見つからないかリダイレクトエラーが発生しない限り成功を返しま"
+"す。"
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2992,29 +3127,33 @@ msgstr ""
 "    終了ステータス N でシェルを終了します。 N を指定しない場合は\n"
 "    最後に実行したコマンドの終了ステータスになります。"
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "ログインシェルを終了します。\n"
 "    \n"
-"    終了ステータス N でログインシェルを終了します。実行したのがログインシェル\n"
+"    終了ステータス N でログインシェルを終了します。実行したのがログインシェ"
+"ル\n"
 "    内で無い場合はエラーを返します。"
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3028,16 +3167,21 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "ヒストリ一覧からコマンドを表示または実行します。\n"
 "    \n"
-"    fc はヒストリ一覧を表示または編集してコマンドを再実行するために使用します。\n"
-"    FIRST および LAST は範囲を指定する数値です。FIRST は文字列を指定することも\n"
-"    できます。その場合はその文字列で始まる直近に実行したコマンドを表します。\n"
+"    fc はヒストリ一覧を表示または編集してコマンドを再実行するために使用しま"
+"す。\n"
+"    FIRST および LAST は範囲を指定する数値です。FIRST は文字列を指定すること"
+"も\n"
+"    できます。その場合はその文字列で始まる直近に実行したコマンドを表しま"
+"す。\n"
 "    \n"
 "    オプション:\n"
-"      -e ENAME\t使用するエディタを選択します。デフォルトは FCEDIT で、次は EDITOR、\n"
+"      -e ENAME\t使用するエディタを選択します。デフォルトは FCEDIT で、次は "
+"EDITOR、\n"
 "     \t\tそして vi の順です。\n"
 "      -l \t編集ではなく行を一覧表示します\n"
 "      -n\t一覧表示時に行番号を表示しません\n"
@@ -3046,15 +3190,18 @@ msgstr ""
 "    `fc -s [pat=rep ...] [command]' 形式を使用すると、COMMAND は\n"
 "    OLD=NEW の置換が行われた後に再実行されます。\n"
 "    \n"
-"    これを使った使いやすいエイリアスは r='fc -s' です。これで `r cc' を実行する\n"
-"    と最後に実行した cc で始まるコマンドが実行されます。`r' で直前のコマンドが\n"
+"    これを使った使いやすいエイリアスは r='fc -s' です。これで `r cc' を実行す"
+"る\n"
+"    と最後に実行した cc で始まるコマンドが実行されます。`r' で直前のコマンド"
+"が\n"
 "    実行されます。\n"
 "    \n"
 "    終了ステータス:\n"
-"    実行したコマンドのステータスまたは成功が帰ります。エラーが発生した場合は 0 \n"
+"    実行したコマンドのステータスまたは成功が帰ります。エラーが発生した場合は "
+"0 \n"
 "    以外の値になります。"
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3067,21 +3214,26 @@ msgid ""
 msgstr ""
 "ジョブをフォアグランドにします。\n"
 "    \n"
-"    JOB_SPEC で識別されたジョブをフォアグランドにして、現在のジョブにします。\n"
-"    もし JOB_SPEC が存在しない場合、シェルが現在のレントジョブとして考えている\n"
+"    JOB_SPEC で識別されたジョブをフォアグランドにして、現在のジョブにしま"
+"す。\n"
+"    もし JOB_SPEC が存在しない場合、シェルが現在のレントジョブとして考えてい"
+"る\n"
 "    ものが利用されます。\n"
 "    \n"
 "    \n"
 "    終了ステータス:\n"
-"    フォアグラウンドになったコマンドのステータスを返します。または、エラーが\n"
+"    フォアグラウンドになったコマンドのステータスを返します。または、エラー"
+"が\n"
 "    発生した時に失敗を返します。"
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3089,19 +3241,22 @@ msgid ""
 msgstr ""
 "ジョブをバックグラウンドにします。\n"
 "    \n"
-"    JOB_SPEC で識別されるジョブを `&' と共に始めた時のようにバックグラウンドに\n"
-"    します。もし JOB_SPEC が存在しない場合、シェルが現在のジョブとして考えてい\n"
+"    JOB_SPEC で識別されるジョブを `&' と共に始めた時のようにバックグラウンド"
+"に\n"
+"    します。もし JOB_SPEC が存在しない場合、シェルが現在のジョブとして考えて"
+"い\n"
 "    るものが利用されます。\n"
 "    \n"
 "    終了ステータス:\n"
 "    ジョブ制御が有効になっていないかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3120,7 +3275,8 @@ msgid ""
 msgstr ""
 "プログラムの位置を記憶または表示します。\n"
 "    \n"
-"    各コマンド NAME のフルパスを決定し記憶します。もし引数が与えられなかった場合、\n"
+"    各コマンド NAME のフルパスを決定し記憶します。もし引数が与えられなかった"
+"場合、\n"
 "    記憶しているコマンドの情報が表示されます。\n"
 "    \n"
 "    オプション:\n"
@@ -3137,7 +3293,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    NAME が見つからないか、無効なオプションが与えられない限り成功を返します。"
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3155,7 +3311,8 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "組み込みコマンドの情報を表示します。\n"
 "    \n"
@@ -3173,9 +3330,10 @@ msgstr ""
 "      PATTERN\tヘルプトピックを指定するパターン\n"
 "    \n"
 "    終了ステータス:\n"
-"    PATTERN が見つからないか無効なオプションが与えられない限り成功を返します。"
+"    PATTERN が見つからないか無効なオプションが与えられない限り成功を返しま"
+"す。"
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3202,14 +3360,16 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 "ヒストリ一覧を表示または操作します。\n"
 "    \n"
-"    行番号をつけてヒストリを表示します。操作した各項目には前に`*'が付きます。\n"
+"    行番号をつけてヒストリを表示します。操作した各項目には前に`*'が付きま"
+"す。\n"
 "    引数 N がある場合は最後の N 個の項目のみを表示します。\n"
 "    \n"
 "    オプション:\n"
@@ -3226,18 +3386,20 @@ msgstr ""
 "    \tしないで表示します\n"
 "      -s\tARG を単一の項目としてヒストリ一覧に追加します\n"
 "    \n"
-"    FILENAME を与えた場合、FILENAME がヒストリファイルをして使用されます。それが\n"
+"    FILENAME を与えた場合、FILENAME がヒストリファイルをして使用されます。そ"
+"れが\n"
 "    無く、$HISTFILE に値がある場合その値が使用されます。そうでなければ \n"
 "    ~/.bash_history が使用されます。\n"
 "\n"
-"    もし $HISTTIMEFORMAT 変数が設定され、NULL で無ければ、strftime(3) の書式\n"
+"    もし $HISTTIMEFORMAT 変数が設定され、NULL で無ければ、strftime(3) の書"
+"式\n"
 "    文字列として各ヒストリ項目の時刻を表示する際に使用されます。それ以外は\n"
 "    時刻は表示されません。\n"
 "    \n"
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3262,8 +3424,10 @@ msgid ""
 msgstr ""
 "ジョブのステータスを表示します。\n"
 "    \n"
-"    アクティブなジョブを一覧表示します。JOBSPEC はジョブの出力を制限します。\n"
-"    オプションがない場合全てのアクティブなジョブのステータスが表示されます。\n"
+"    アクティブなジョブを一覧表示します。JOBSPEC はジョブの出力を制限しま"
+"す。\n"
+"    オプションがない場合全てのアクティブなジョブのステータスが表示されま"
+"す。\n"
 "    \n"
 "    オプション:\n"
 "      -l\t通常の情報に加えてプロセスIDを一覧表示する\n"
@@ -3274,13 +3438,14 @@ msgstr ""
 "      -s\t停止中のジョブの出力を制限する\n"
 "    \n"
 "    -x が指定された場合、 COMMAND は ARGS に現れるジョブをプロセスグルー\n"
-"    プリーダーのプロセス ID に置き換えた全てのジョブ指定の後に実行されます。\n"
+"    プリーダーのプロセス ID に置き換えた全てのジョブ指定の後に実行されま"
+"す。\n"
 "    \n"
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。\n"
 "    もし -x が使用された場合、COMMAND の終了ステータスを返します。"
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3298,19 +3463,21 @@ msgid ""
 msgstr ""
 "現在のシェルからジョブを削除します。\n"
 "    \n"
-"    アクティブなジョブのテーブルから各引数の JOBSPEC を削除します。JOBSPEC が指定\n"
+"    アクティブなジョブのテーブルから各引数の JOBSPEC を削除します。JOBSPEC が"
+"指定\n"
 "    されない場合、シェルが現在のジョブと考えているものが使用されます。\n"
 "    \n"
 "    オプション:\n"
 "      -a\tJOBSPEC が与えられない時に全てのジョブを削除する\n"
-"      -h\tシェルが SIGHUP を受け取った時に各 JOBSPEC のジョブに対して SIGHUP \n"
+"      -h\tシェルが SIGHUP を受け取った時に各 JOBSPEC のジョブに対して "
+"SIGHUP \n"
 "    \tが送られないようにマークする\n"
 "      -r\t実行中のジョブのみ削除する\n"
 "    \n"
 "    終了ステータス:\n"
 "    無効なオプションか JOBSPEC が与えられない限り成功を返します。"
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3333,8 +3500,10 @@ msgid ""
 msgstr ""
 "ジョブにシグナルを送ります。\n"
 "    \n"
-"    PID または JOBSPEC で識別されるプロセスに SIGSPEC または SIGNUM で名付けら\n"
-"    れるシグナルを送ります。もし SIGSPEC も SIGNUM も指定されない場合、SIGTERM\n"
+"    PID または JOBSPEC で識別されるプロセスに SIGSPEC または SIGNUM で名付け"
+"ら\n"
+"    れるシグナルを送ります。もし SIGSPEC も SIGNUM も指定されない場合、"
+"SIGTERM\n"
 "    と見なされます。\n"
 "    \n"
 "    オプション:\n"
@@ -3343,21 +3512,24 @@ msgstr ""
 "      -l\tシグナル名を一覧表示する。-l の後に引数が続いた場合、\n"
 "    \tそれらは一覧表示されるべきシグナル番号であると見なされる\n"
 "    \n"
-"    Kill は次の2つの理由からシェル組み込み関数です。一つはプロセスIDの代わりに\n"
-"    ジョブIDを使用できるようにするためです。もう一つは作成したプロセスが制限に\n"
+"    Kill は次の2つの理由からシェル組み込み関数です。一つはプロセスIDの代わり"
+"に\n"
+"    ジョブIDを使用できるようにするためです。もう一つは作成したプロセスが制限"
+"に\n"
 "    達した時にプロセスを kill することができるようにするためです。\n"
 "    \n"
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3421,29 +3593,35 @@ msgstr ""
 "    \t+=, -=, <<=, >>=,\n"
 "    \t&=, ^=, |=\t代入\n"
 "    \n"
-"    シェル変数は被演算子として使用できます。変数名は数式内で (強制的に固定長\n"
+"    シェル変数は被演算子として使用できます。変数名は数式内で (強制的に固定"
+"長\n"
 "    整数の) 値に置き換えられます。変数は数式内で使用する時には必ずしも\n"
 "    整数属性を持っている必要はありません。\n"
 "\n"
-"    演算子は優先順位の順に評価されます。小括弧でくくられた数式は先に評価され、\n"
+"    演算子は優先順位の順に評価されます。小括弧でくくられた数式は先に評価さ"
+"れ、\n"
 "    上記の優先順位を上書きするかもしれません。\n"
 "    \n"
 "    終了ステータス:\n"
 "    ARG の最終的な評価値が 0 の場合 let は 1 を返します。それ以外の場合は\n"
 "     let は 0 を返します。"
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3455,47 +3633,61 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "標準入力から一行読み込みフィールド毎に分割します。\n"
 "    \n"
-"    標準入力から一行読み込みます。または -u が指定されている場合はファイル記述子\n"
-"    FD から読み込みます。行は単語分割によってフィールドに分割され、最初の単語が\n"
-"    最初の NAME に、2番目の単語が2番目に NAME にという順で割り当てられます。残っ\n"
-"    た単語は全て最後の NAME に割り当てられます。変数 $IFS に設定された文字のみが\n"
+"    標準入力から一行読み込みます。または -u が指定されている場合はファイル記"
+"述子\n"
+"    FD から読み込みます。行は単語分割によってフィールドに分割され、最初の単語"
+"が\n"
+"    最初の NAME に、2番目の単語が2番目に NAME にという順で割り当てられます。"
+"残っ\n"
+"    た単語は全て最後の NAME に割り当てられます。変数 $IFS に設定された文字の"
+"みが\n"
 "    単語の区切りとして認識されます。\n"
 "    \n"
 "    もし NAME を指定しなかった場合、行は REPLY 変数に保存されます。\n"
 "    \n"
 "    オプション:\n"
-"      -a array\t読み込んだ単語をインデックス型配列 ARRAY に順番に割り当てます。\n"
+"      -a array\t読み込んだ単語をインデックス型配列 ARRAY に順番に割り当てま"
+"す。\n"
 "    \t\t開始番号は 0 です。\n"
 "      -d delim\t改行ではなく文字 DELIM が最初に現れるまで読み込みを続けます\n"
 "      -e\t\t対話的シェルで行を得るのに Readline を使用します\n"
 "      -i text\tReadline の初期テキストとして TEXT を使用します\n"
-"      -n nchars\t改行が無くても文字数 NCHARS を読み込んだら復帰します。NCHARS\n"
+"      -n nchars\t改行が無くても文字数 NCHARS を読み込んだら復帰します。"
+"NCHARS\n"
 "    \t\tより前に区切り文字 (DELIMITER) が現れた場合は区切り文字が\n"
 "    \t\t優先されます\n"
-"      -N nchars\t厳密に文字数 NCHARS を読み込み復帰します。ただし、ファイル終\n"
+"      -N nchars\t厳密に文字数 NCHARS を読み込み復帰します。ただし、ファイル"
+"終\n"
 "    \t\t了(EOF) になるか読み込みタイムアウトが発生した場合は除きます。\n"
 "    \t\t区切り文字 (DELIMITER) は無視されます\n"
-"      -p prompt\t読み込み前に文字列 PROMPT を後ろに改行を付けないで表示します\n"
+"      -p prompt\t読み込み前に文字列 PROMPT を後ろに改行を付けないで表示しま"
+"す\n"
 "      -r\t\tバックスペースで文字をエスケープすることを禁止します\n"
 "      -s\t\t端末から読み込まれる文字をエコーバックしません\n"
 "      -t timeout\tTIMEOUT 秒以内に入力行が完全に読み込まれなかった場合\n"
@@ -3507,10 +3699,11 @@ msgstr ""
 "      -u fd\t\t読み込みに標準入力ではなくファイル記述子 FD を使用します\n"
 "    \n"
 "    終了ステータス:\n"
-"    ファイル終了(EOF)、読み込みタイムアウト、-u に無効なファイル記述子が与え\n"
+"    ファイル終了(EOF)、読み込みタイムアウト、-u に無効なファイル記述子が与"
+"え\n"
 "    られた場合を除き0を返します。"
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3523,15 +3716,19 @@ msgid ""
 msgstr ""
 "シェル関数から復帰します。\n"
 "    \n"
-"    N で指定した値を戻り値として関数または source されたスクリプトを終了します。\n"
-"    N が指定されない場合、関数またはスクリプトで最後に実行したコマンドの戻り値\n"
+"    N で指定した値を戻り値として関数または source されたスクリプトを終了しま"
+"す。\n"
+"    N が指定されない場合、関数またはスクリプトで最後に実行したコマンドの戻り"
+"値\n"
 "    が使用されます。\n"
 "    \n"
 "    終了ステータス:\n"
-"    戻り値 N、またはシェルが関数またはスクリプトを実行していない場合は失敗を\n"
+"    戻り値 N、またはシェルが関数またはスクリプトを実行していない場合は失敗"
+"を\n"
 "    返します。"
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3574,7 +3771,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3596,7 +3794,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3654,7 +3852,8 @@ msgstr ""
 "              nounset      -u と同様\n"
 "              onecmd       -t と同様\n"
 "              physical     -P と同様\n"
-"              pipefail     パイプラインの戻り値を最後に 0 以外で終了したコマ\n"
+"              pipefail     パイプラインの戻り値を最後に 0 以外で終了したコ"
+"マ\n"
 "                           ンドの終了ステータスにする。0 以外のステータスで\n"
 "                           終了したコマンドが無い場合には 0 にする。\n"
 "              posix        Posix 標準とデフォルト動作が異なる bash の動作を\n"
@@ -3693,7 +3892,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    無効なオプションが与えられない限り成功を返します。"
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3703,7 +3902,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3719,20 +3919,23 @@ msgstr ""
 "      -f\t各 NAME をシェル関数として扱います\n"
 "      -v\t各 NAME をシェル変数として扱います\n"
 "    \n"
-"    オプションが無い場合、最初に変数を消去しようと試みます。失敗した場合には\n"
+"    オプションが無い場合、最初に変数を消去しようと試みます。失敗した場合に"
+"は\n"
 "    関数を消去しようと試みます。\n"
 "    \n"
 "    いくつかの変数は消去できません。`readonly' も参照してください。\n"
 "    \n"
 "    終了ステータス:\n"
-"    無効なオプションが与えられるか NAME が読み取り専用の場合を除き成功を返します。"
+"    無効なオプションが与えられるか NAME が読み取り専用の場合を除き成功を返し"
+"ます。"
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3761,7 +3964,7 @@ msgstr ""
 "    無効なオプションが与えられるか、無効な NAME が与えられない限り成功\n"
 "    を返します。"
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3798,7 +4001,7 @@ msgstr ""
 "    無効なオプションが与えられるか、与えられた NAME が無効な場合を除き成功\n"
 "    を返します。"
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3816,7 +4019,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    Nが負の値または $# より大きい場合を除き成功を返します。"
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3840,7 +4043,7 @@ msgstr ""
 "    FILENAME で最後に実行したコマンドのステータスを返します。FILENAME が\n"
 "    読み込めなかった場合は失敗を返します。"
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3864,7 +4067,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    ジョブ制御が有効でないかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3898,7 +4101,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3919,7 +4123,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3970,10 +4175,13 @@ msgstr ""
 "      -w FILE        ファイルがユーザに対して書き込み可能な時に真(true)\n"
 "      -x FILE        ファイルがユーザに対して実行可能な時に真(true)\n"
 "      -O FILE        ファイルをユーザが実効的に所有されている時に真(true)\n"
-"      -G FILE        ファイルのグループにユーザが実効的に所属している時に真(true)\n"
-"      -N FILE        ファイルを最後に読み込んだ以降に変更されている時に真(true)\n"
+"      -G FILE        ファイルのグループにユーザが実効的に所属している時に真"
+"(true)\n"
+"      -N FILE        ファイルを最後に読み込んだ以降に変更されている時に真"
+"(true)\n"
 "    \n"
-"      FILE1 -nt FILE2  file1 が file2 より新しい時(更新時間に基づく)に真(true)\n"
+"      FILE1 -nt FILE2  file1 が file2 より新しい時(更新時間に基づく)に真"
+"(true)\n"
 "                       \n"
 "    \n"
 "      FILE1 -ot FILE2  file1 が file2 より古い時に真(true)\n"
@@ -4002,7 +4210,8 @@ msgstr ""
 "      -v VAR         シェル変数 VAR が設定されている時に真(true)\n"
 "      ! EXPR         式 expr が偽(fales)の時に真(true)\n"
 "      EXPR1 -a EXPR2 式 expr1 および expr2 の両方とも真(true)の時に真(true)\n"
-"      EXPR1 -o EXPR2 式 expr1 または expr2 のいずれかが真(true)の時に真(true)\n"
+"      EXPR1 -o EXPR2 式 expr1 または expr2 のいずれかが真(true)の時に真"
+"(true)\n"
 "    \n"
 "      arg1 OP arg2   数値比較演算を行なう。OP は -eq, -ne, -lt, -le, -gt,\n"
 "                     または -ge のいずれかとなる。\n"
@@ -4012,10 +4221,11 @@ msgstr ""
 "    以上(-ge)の時に真(true)を返します。\n"
 "    \n"
 "    終了ステータス:\n"
-"    式 EXPR の評価値が真(true)の時に成功を返します。EXPR の評価値が偽(false) または\n"
+"    式 EXPR の評価値が真(true)の時に成功を返します。EXPR の評価値が偽(false) "
+"または\n"
 "    引数が無効な場合に失敗を返します。"
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4024,14 +4234,16 @@ msgid ""
 msgstr ""
 "条件式を評価します。\n"
 "    \n"
-"    これは test 組み込み関数と同義語です。ただし、最後の引数に開始の`['と一致\n"
+"    これは test 組み込み関数と同義語です。ただし、最後の引数に開始の`['と一"
+"致\n"
 "    するように文字`]'を与えなければいけません。"
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4039,17 +4251,19 @@ msgid ""
 msgstr ""
 "プロセスの時間を表示します。\n"
 "    \n"
-"    シェルとその子プロセスが使用したユーザー時間とシステム時間それぞれの累積を\n"
+"    シェルとその子プロセスが使用したユーザー時間とシステム時間それぞれの累積"
+"を\n"
 "    表示します。\n"
 "    \n"
 "    終了ステータス:\n"
 "    常に成功を返します。"
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4058,46 +4272,61 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "シグナルまたは他のイベントをトラップします。\n"
 "    \n"
-"    シェルがシグナルを受け取るか他の条件が発生した時に実行されるハンドラーを\n"
+"    シェルがシグナルを受け取るか他の条件が発生した時に実行されるハンドラー"
+"を\n"
 "    定義および有効化します。\n"
 "    \n"
 "    ARG はシグナル SIGNAL_SPEC を受け取った時に読み込まれ実行されるコマンド\n"
-"    です。もし ARG が無い (かつシグナル SIGNAL_SPEC が与えられた場合) または\n"
+"    です。もし ARG が無い (かつシグナル SIGNAL_SPEC が与えられた場合) また"
+"は\n"
 "    `-' の場合、各指定したシグナルはオリジナルの値にリセットされます。\n"
 "    ARG が NULL 文字列の場合、各シグナル SIGNAL_SPEC はシェルにおよび起動さ\n"
 "    れたコマンドによって無視されます。\n"
 "    \n"
-"    もし SIGNAL_SPEC が EXIT (0) の場合、ARG がシェルの終了時に実行されます。\n"
-"    もし SIGNAL_SPEC が DEBUG の場合 ARG は単に毎回コマンドの前に実行されます。\n"
+"    もし SIGNAL_SPEC が EXIT (0) の場合、ARG がシェルの終了時に実行されま"
+"す。\n"
+"    もし SIGNAL_SPEC が DEBUG の場合 ARG は単に毎回コマンドの前に実行されま"
+"す。\n"
 "    もし SIGNAL_SPEC が RETURN の場合 ARG はシェル関数または . か source に\n"
-"    よって実行されたスクリプトが終了した時に実行されます。 SIGNAL_SPEC が ERR\n"
-"    の場合、-e オプションが有効な場合にシェルが終了するようなコマンド失敗が発\n"
+"    よって実行されたスクリプトが終了した時に実行されます。 SIGNAL_SPEC が "
+"ERR\n"
+"    の場合、-e オプションが有効な場合にシェルが終了するようなコマンド失敗が"
+"発\n"
 "    生するたびに実行されます。\n"
 "    \n"
-"    もし引数が与えられない場合、 trap は各シグナルに割り当てられたコマンドの\n"
+"    もし引数が与えられない場合、 trap は各シグナルに割り当てられたコマンド"
+"の\n"
 "    一覧を表示します。\n"
 "    \n"
 "    オプション:\n"
@@ -4111,7 +4340,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    SIGSPEC が無効か、無効なオプションを与えられない限り成功を返します。"
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4137,7 +4366,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "コマンドの種類に関する情報を表示します。\n"
 "    \n"
@@ -4156,21 +4386,25 @@ msgstr ""
 "    \tが `file' を返さない場合、何も返しません。\n"
 "      -t\t次のいずれかの単語を返します。`alias', `keyword', `function',\n"
 "    \t `builtin', `file' or `'。それぞれ NAME がエイリアス、シェル予約語、\n"
-"    \tシェル関数、シェル組み込み関数、ディスク上のファイル、何も見つからない\n"
+"    \tシェル関数、シェル組み込み関数、ディスク上のファイル、何も見つからな"
+"い\n"
 "    \tに対応します。\n"
 "    \n"
 "    引数:\n"
 "      NAME\t解釈するコマンドの名前です。\n"
 "    \n"
 "    終了ステータス:\n"
-"    全ての NAME が見つかった場合に成功を返します。どれかが見つからなかった場合\n"
+"    全ての NAME が見つかった場合に成功を返します。どれかが見つからなかった場"
+"合\n"
 "    は失敗を返します。"
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4194,6 +4428,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4210,7 +4447,8 @@ msgid ""
 msgstr ""
 "シェルの資源制限を変更します。\n"
 "    \n"
-"    シェルおよびシェルが作成するプロセスが使用可能な資源に対する制御を提供します。\n"
+"    シェルおよびシェルが作成するプロセスが使用可能な資源に対する制御を提供し"
+"ます。\n"
 "    ただし、システムがそのような制御を許可している場合です。\n"
 "    \n"
 "    オプション:\n"
@@ -4236,7 +4474,8 @@ msgstr ""
 "      -x\tファイルロックの最大数\n"
 "    \n"
 "    LIMIT が与えられた場合、指定した資源に対する新しい値になります。特別な\n"
-"    LIMIT の値である `soft'、`hard'、および `unlimited' は現在の `soft' 制限\n"
+"    LIMIT の値である `soft'、`hard'、および `unlimited' は現在の `soft' 制"
+"限\n"
 "    現在の`hard' 制限および制限なしをそれぞれ意味します。\n"
 "    それ以外の場合、指定した資源の現在の値が表示されます。オプションが与え\n"
 "    られなかった場合 -f と見なされます。\n"
@@ -4247,7 +4486,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4266,10 +4505,12 @@ msgid ""
 msgstr ""
 "ファイルのモードマスクを表示または設定します。\n"
 "    \n"
-"    ユーザーがファイル作成時のマスクを MODE に設定します。MODE が指定されない場合\n"
+"    ユーザーがファイル作成時のマスクを MODE に設定します。MODE が指定されない"
+"場合\n"
 "    現在のマスクの値を表示します。\n"
 "    \n"
-"    MODE が数値で開始した場合8進数として解釈されます。それ以外は chmod(1) で受け\n"
+"    MODE が数値で開始した場合8進数として解釈されます。それ以外は chmod(1) で"
+"受け\n"
 "    入れられるシンボルモードの文字列として扱われます。\n"
 "    \n"
 "    オプション:\n"
@@ -4279,19 +4520,22 @@ msgstr ""
 "    終了ステータス:\n"
 "    MODE が無効か、無効なオプションが与えられない限り成功を返します。"
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "ジョブの実行完了を待ち、終了ステータスを返します。\n"
 "    \n"
@@ -4304,7 +4548,7 @@ msgstr ""
 "    ID の終了ステータスを返します。IDが無効であるか、無効なオプションが\n"
 "    与えられた場合には失敗を返します。"
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4313,7 +4557,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "プロセスの実行完了を待ち、終了ステータスを返します。\n"
@@ -4326,7 +4571,7 @@ msgstr ""
 "    IDの終了ステータスを返します。IDが無効か、無効なオプションが与えられた\n"
 "    場合はエラーを返します。"
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4347,7 +4592,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4377,7 +4622,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4412,7 +4657,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4440,7 +4685,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    PIPELINE の戻り値が終了ステータスとなります。"
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4452,22 +4697,28 @@ msgid ""
 msgstr ""
 "パターン一致の結果に基づいてコマンドを実行します。\n"
 "    \n"
-"    WORD が PATTERN に一致するかどうかに基づいて選択的に COMMANDS を実行します。\n"
+"    WORD が PATTERN に一致するかどうかに基づいて選択的に COMMANDS を実行しま"
+"す。\n"
 "    複数のパターンを区切るために `|' が使用されます。\n"
 "    \n"
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4475,17 +4726,19 @@ msgid ""
 msgstr ""
 "条件に従ってコマンドを実行します。\n"
 "    \n"
-"    `if COMMANDS' を実行します。この終了ステータスが 0 の場合、`then COMMANDS'\n"
+"    `if COMMANDS' を実行します。この終了ステータスが 0 の場合、`then "
+"COMMANDS'\n"
 "    を実行します。そうでない場合は、各 `elif COMMANDS' を順番に実行し、その\n"
 "    終了ステータスが 0 の場合に、関連した `then COMMANDS' を実行し、if 文が\n"
 "    完了します。それ以外の場合、 `else COMMANDS' が存在する場合には実行され\n"
-"    ます。文全体の終了ステータスは、最後に実行したコマンドの終了ステータスか、\n"
+"    ます。文全体の終了ステータスは、最後に実行したコマンドの終了ステータス"
+"か、\n"
 "    または、テストした条件に true となるものが無い場合は 0 です。\n"
 "    \n"
 "    終了ステータス:\n"
 "    最後に実行したコマンドの終了ステータスを返します。"
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4503,7 +4756,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4521,7 +4774,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4543,12 +4796,13 @@ msgstr ""
 "    終了ステータス:\n"
 "    COMMAND の終了ステータスを返します。"
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4557,15 +4811,17 @@ msgid ""
 msgstr ""
 "シェル関数を定義します。\n"
 "    \n"
-"    NAME という名前のシェル関数を作成します。単にコマンドとして起動された時は\n"
-"    NAME は COMMANDs をシェルのコンテキスト内で呼び出します。NAME を起動した\n"
+"    NAME という名前のシェル関数を作成します。単にコマンドとして起動された時"
+"は\n"
+"    NAME は COMMANDs をシェルのコンテキスト内で呼び出します。NAME を起動し"
+"た\n"
 "    時に引数は関数に $1...$n という位置パラメーターで、関数名は $FUNCNAME\n"
 "    変数として渡されます。\n"
 "    \n"
 "    終了ステータス:\n"
 "    NAME が読み取り専用でない限り成功を返します。"
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4583,7 +4839,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    最後に実行したコマンドのステータスを返します。"
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4606,7 +4862,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    再開されたジョブの終了ステータスを返します。"
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4624,13 +4880,16 @@ msgstr ""
 "    終了ステータス:\n"
 "    EXPRESSION の評価値が 0 の場合は 1、それ以外は 0 を返します。"
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4657,14 +4916,17 @@ msgstr ""
 "      ( EXPRESSION )\tEXPRESSION の値を返します\n"
 "      ! EXPRESSION\t\tEXPRESSION が true の時 false を返します。それ\n"
 "                  \t\t以外は false を返します\n"
-"      EXPR1 && EXPR2\tEXPR1 および EXPR2 の両方が true の時 true を返します。\n"
+"      EXPR1 && EXPR2\tEXPR1 および EXPR2 の両方が true の時 true を返しま"
+"す。\n"
 "      \tそれ以外は false を返します。\n"
 "      EXPR1 || EXPR2\tEXPR1 および EXPR2 のいずれかが true の時 true を返し\n"
 "      \tます。それ以外は false を返します。\n"
 "    \n"
-"    `==' および `!=' 演算子が使用された場合、演算子の右側の文字列をパターンと\n"
+"    `==' および `!=' 演算子が使用された場合、演算子の右側の文字列をパターン"
+"と\n"
 "    した左側の文字列に対するパターン一致処理が行われます。\n"
-"    `=~' 演算子が使用された場合、演算子の右側の文字列が正規表現として扱われま\n"
+"    `=~' 演算子が使用された場合、演算子の右側の文字列が正規表現として扱われ"
+"ま\n"
 "    す。\n"
 "    \n"
 "    && および || 演算子は EXPR1 で式の値を決定するのに十分な場合は EXPR2 を\n"
@@ -4673,7 +4935,7 @@ msgstr ""
 "    終了ステータス:\n"
 "    EXPRESSION の値に基づいて 0 または 1 を返します。"
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4774,7 +5036,7 @@ msgstr ""
 "    HISTIGNORE\tヒストリ一覧に保存されるコマンドを決める時に使用される\n"
 "    \t\tコロン (:) で区切られたパターンの一覧。\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4833,7 +5095,7 @@ msgstr ""
 "    無効な引数が与えられるかディレクトリ変更が失敗しない限り成功を\n"
 "    返します。"
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4862,7 +5124,8 @@ msgstr ""
 "ディレクトリスタックからディレクトリを削除します。\n"
 "    \n"
 "    ディレクトリスタックから要素を削除します。引数がない場合、ディレクトリ\n"
-"    スタックの先頭から削除し、新しいスタック先頭のディレクトリに移動します。\n"
+"    スタックの先頭から削除し、新しいスタック先頭のディレクトリに移動しま"
+"す。\n"
 "    \n"
 "    オプション:\n"
 "      -n\tスタックからディレクトリを削除した時、通常のディレクトリ変\n"
@@ -4883,7 +5146,7 @@ msgstr ""
 "    無効な引数が与えられるかディレクトリ変更が失敗しない限り成功を\n"
 "    返します。"
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4900,10 +5163,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4933,12 +5198,13 @@ msgstr ""
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4968,7 +5234,8 @@ msgstr ""
 "    OPTNAME が有効な場合は成功を返します。無効なオプションが与えられた場合\n"
 "    または OPTNAME が無効な場合は失敗を返します。"
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4976,49 +5243,64 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "ARGUMENTS を FORMAT で書式整形して表示します。\n"
 "    \n"
 "    オプション:\n"
-"      -v var\t標準出力に表示するのではなく、出力をシェル変数 VAR に代入します\n"
-"    \n"
-"    FORMAT は次の3種類のオブジェクトを含む文字列です。一つ目は普通の文字で単に\n"
-"    標準出力にコピーされます。二つ目はエスケープ文字で変換された後標準出力に\n"
-"    コピーされます。三つ目は書式指定文字で、各文字は後に続く引数を表示します。\n"
-"    \n"
-"    printf(1) および printf(3) に記述される標準の書式指定に加えて、printf は\n"
+"      -v var\t標準出力に表示するのではなく、出力をシェル変数 VAR に代入しま"
+"す\n"
+"    \n"
+"    FORMAT は次の3種類のオブジェクトを含む文字列です。一つ目は普通の文字で単"
+"に\n"
+"    標準出力にコピーされます。二つ目はエスケープ文字で変換された後標準出力"
+"に\n"
+"    コピーされます。三つ目は書式指定文字で、各文字は後に続く引数を表示しま"
+"す。\n"
+"    \n"
+"    printf(1) および printf(3) に記述される標準の書式指定に加えて、printf "
+"は\n"
 "    次の文字を解釈します。\n"
 "    \n"
 "      %b\t対応する引数のバックスラッシュエスケープ文字を展開する\n"
 "      %q\tシェル入力として引数をクオートする\n"
-"      %(fmt)T   FMT を strftime(3) 用の書式文字列として日付と時間の文字列を出力する\n"
+"      %(fmt)T   FMT を strftime(3) 用の書式文字列として日付と時間の文字列を出"
+"力する\n"
 "    \n"
 "    終了ステータス:\n"
-"    無効な引数が与えられるか、書き込み、代入エラーが発生しない限り成功を返します。"
+"    無効な引数が与えられるか、書き込み、代入エラーが発生しない限り成功を返し"
+"ます。"
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5039,8 +5321,10 @@ msgid ""
 msgstr ""
 "引数が Readline によってどのように補完されるかを指定します。\n"
 "    \n"
-"    各 NAME に対してどのように引数が補完されるかを指定します。オプションが与え\n"
-"    られない場合、既存の補完指定が入力として再利用可能な形式で表示されます。\n"
+"    各 NAME に対してどのように引数が補完されるかを指定します。オプションが与"
+"え\n"
+"    られない場合、既存の補完指定が入力として再利用可能な形式で表示されま"
+"す。\n"
 "    \n"
 "    \n"
 "    オプション:\n"
@@ -5058,12 +5342,13 @@ msgstr ""
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5071,20 +5356,24 @@ msgid ""
 msgstr ""
 "オプションに基づいた補完候補を表示します。\n"
 "    \n"
-"    シェル関数の中で補完候補を生成するために使用するように意図されています。\n"
+"    シェル関数の中で補完候補を生成するために使用するように意図されていま"
+"す。\n"
 "    オプション引数 WORD が与えられた場合、WORD に対して一致した候補が生成\n"
 "    されます。\n"
 "    \n"
 "    終了ステータス:\n"
 "    無効なオプションが与えられるかエラーが発生しない限り成功を返します。"
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5120,31 +5409,39 @@ msgstr ""
 "    \n"
 "    引数:\n"
 "    \n"
-"    各 NAME は `complete' 組み込み関数を使って事前に定義された補完指定をコマ\n"
+"    各 NAME は `complete' 組み込み関数を使って事前に定義された補完指定をコ"
+"マ\n"
 "    ンドを指し示さなければなりません。NAME が与えられない場合、compopt は\n"
 "    補完をこれから生成する関数から呼び出されなければいけません。そして\n"
 "    補完をこれから生成する関数に対するオプションが変更されます。\n"
 "    \n"
 "    終了ステータス:\n"
-"    無効なオプションが与えられるか、 NAME が補完指定として定義されていない場合\n"
+"    無効なオプションが与えられるか、 NAME が補完指定として定義されていない場"
+"合\n"
 "    を除き、成功を返します。"
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5154,21 +5451,26 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "標準入力から行を読み込みインデックス型配列に代入します。\n"
 "    \n"
-"    標準入力、-u オプションが与えられた場合はファイル記述子 FD から行を読み込み、\n"
-"    インデックス型配列変数 ARRAY に代入します。変数 ARRAY のデフォルトは MAPFILE\n"
+"    標準入力、-u オプションが与えられた場合はファイル記述子 FD から行を読み込"
+"み、\n"
+"    インデックス型配列変数 ARRAY に代入します。変数 ARRAY のデフォルトは "
+"MAPFILE\n"
 "    です。\n"
 "    \n"
 "    オプション:\n"
-"      -n count\t最大 COUNT 行をコピーする。COUNT が 0 の場合、全ての行をコピーする\n"
+"      -n count\t最大 COUNT 行をコピーする。COUNT が 0 の場合、全ての行をコ"
+"ピーする\n"
 "      -O origin\t配列の開始番号を ORIGIN にする。デフォルトは 0\n"
 "      -s count \t最初の COUNT 行の読み込みを破棄する\n"
 "      -t\t\t各行を読み込んだ時に最後の改行を削除する\n"
@@ -5179,17 +5481,21 @@ msgstr ""
 "    引数:\n"
 "      ARRAY\t\tデータを保存するために使用する配列変数名\n"
 "    \n"
-"    もし -c が指定されずに -C が与えられた場合、デフォルトの quantum は 5000 です。\n"
-"    CALLBACK が評価された時、代入される配列の次要素のインデックスと、要素に代入さ\n"
+"    もし -c が指定されずに -C が与えられた場合、デフォルトの quantum は 5000 "
+"です。\n"
+"    CALLBACK が評価された時、代入される配列の次要素のインデックスと、要素に代"
+"入さ\n"
 "    れる行が追加の引数として渡されます。\n"
 "    \n"
-"    明示的に開始番号が与えられない場合、mapfile は代入前に ARRAY を空にします。\n"
+"    明示的に開始番号が与えられない場合、mapfile は代入前に ARRAY を空にしま"
+"す。\n"
 "    \n"
 "    終了ステータス:\n"
-"    無効なオプションが与えられる、配列が読み取り専用、またはインデックス型配列で無い\n"
+"    無効なオプションが与えられる、配列が読み取り専用、またはインデックス型配"
+"列で無い\n"
 "    場合を除き成功を返します。"
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5210,11 +5516,13 @@ msgstr ""
 #~ "; 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"
+#~ "    The value of EXPR indicates how many call frames to go back before "
+#~ "the\n"
 #~ "    current one; the top frame is frame 0."
 #~ msgstr ""
 #~ "。この追加の情報はスタックトレース\n"
 #~ "    を提供する時に利用します。\n"
 #~ "\n"
-#~ "    EXPR の値は現在のフレームに戻るまでに何回フレームが呼び出されているかを\n"
+#~ "    EXPR の値は現在のフレームに戻るまでに何回フレームが呼び出されているか"
+#~ "を\n"
 #~ "    意味します。最上位のフレームは 0 です。"
index ea18836182ee1d77bf8e8b9f84503359f950467c..9dd918e0c74e600ea01163f9b608dc70cefe29e9 100644 (file)
Binary files a/po/lt.gmo and b/po/lt.gmo differ
index 058c614e4335a61942c2d109f1c0e9d608b7d216..778f6e049d1d962a96972d229b989d173d56f63d 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,61 +7,62 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2009-03-25 16:49+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"Language: lt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "blogas masyvo indeksas"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: netaisyklingas veiksmo pavadinimas"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: nepavyko priskirti prie neskaitinio indekso"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nepavyko sukurti: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: nepavyko rasti keymapo komandai"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: pirmas ne tarpo simbolis nėra „\"“"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "nėra uždarančiojo „%c“ %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: trūksta dvitaškio skirtuko"
@@ -71,36 +72,36 @@ msgstr "%s: trūksta dvitaškio skirtuko"
 msgid "`%s': invalid alias name"
 msgstr "„%s“: netaisyklingas keymap'o pavadinimas"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "eilutės redagavimas neįgalintas"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s“: netaisyklingas keymap'o pavadinimas"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nepavyko perskaityti: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "„%s“: nepavyko atjungti (unbind)"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "„%s“: nežinomas funkcijos pavadinimas"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s nėra priskirtas jokiam klavišui.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s gali būti iškviestas su "
@@ -121,11 +122,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr "Grąžina esamos procedūros kontekstą."
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME nenustatytas"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "per daug argumentų"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD nenustatytas"
 
@@ -134,7 +139,7 @@ msgstr "OLDPWD nenustatytas"
 msgid "line %d: "
 msgstr "eilutė %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "įspėjimas: "
@@ -144,11 +149,7 @@ msgstr "įspėjimas: "
 msgid "%s: usage: "
 msgstr "%s: naudojimas: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "per daug argumentų"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: parametrui reikia argumento"
@@ -163,7 +164,7 @@ msgstr "%s: reikia skaitinio argumento"
 msgid "%s: not found"
 msgstr "%s: nerasta"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: negalimas parametras"
@@ -173,7 +174,7 @@ msgstr "%s: negalimas parametras"
 msgid "%s: invalid option name"
 msgstr "%s: netaisyklingas parametro vardas"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': netaisyklingas identifikatorius"
@@ -186,7 +187,7 @@ msgstr "netaisyklingas aštuonetainis skaičius"
 msgid "invalid hex number"
 msgstr "netaisyklingas šešioliktainis skaičius"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "netaisyklingas skaičius"
 
@@ -200,7 +201,7 @@ msgstr "%s: netaisyklinga signalo specifikacija"
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s“: ne pid'as ar taisyklinga darbo specifikacija"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: kintamasis tik skaitymui"
@@ -272,26 +273,26 @@ msgstr "%s: klaida skaitant esamą aplanką: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: dviprasmis darbo aprašymas"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: netaisyklingas veiksmo pavadinimas"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: nėra baigimo specifikacijos"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "įspėjimas: parametras -F gali neveikti taip, kaip tikitės"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "įspėjimas: parametras -C gali neveikti taip, kaip tikitės"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -303,7 +304,7 @@ msgstr "galima naudoti tik funkcijoje"
 msgid "cannot use `-f' to make functions"
 msgstr "negalima naudoti „-f“ funkcijoms kurti"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcija tik skaitymui"
@@ -313,7 +314,7 @@ msgstr "%s: funkcija tik skaitymui"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: negalima tokiu būdu sunaikinti masyvų kintamųjų"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -342,8 +343,8 @@ msgstr "%s: nedinamiškai įkrauta"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nepavyko ištrinti: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: aplankas"
@@ -358,8 +359,7 @@ msgstr "%s: ne paprastas failas"
 msgid "%s: file is too large"
 msgstr "%s: failas per didelis"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: negalima vykdyti dvejetainių failų"
@@ -484,7 +484,7 @@ msgstr "negalima naudoti daugiau negu vieno parametro iš -anrw"
 msgid "history position"
 msgstr "istorijos pozicija"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: istorijos išskleidimas nesėkmingas"
@@ -507,7 +507,7 @@ msgstr "%s: argumentai turi būti procesų arba darbų ID"
 msgid "Unknown error"
 msgstr "Nežinoma klaida"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "tikėtasi išraiškos"
 
@@ -516,12 +516,12 @@ msgstr "tikėtasi išraiškos"
 msgid "%s: not an indexed array"
 msgstr "%s: ne masyvo kintamasis"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: netaisyklinga failo deskriptoriaus specifikacija"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: netaisyklingas failo deskriptorius: %s"
@@ -550,31 +550,31 @@ msgstr "%s: ne masyvo kintamasis"
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s“: trūksta formato simbolio"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: klaidinga laiko ribos (timeout) specifikacija"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c“: netaisyklingas formato simbolis"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "įspėjimas: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "trūksta šešioliktainio skaitmens išraiškoje \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "trūksta šešioliktainio skaitmens išraiškoje \\x"
@@ -666,17 +666,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: klaidinga laiko ribos (timeout) specifikacija"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "skaitymo klaida: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "galima grįžti (return) tik iš funkcijos ar scenarijaus"
 
@@ -684,17 +684,17 @@ msgstr "galima grįžti (return) tik iš funkcijos ar scenarijaus"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "negalima kartu ištrinti funkcijos ir kintamojo"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: nepavyko ištrinti"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: nepavyko ištrinti: %s tik skaitymui"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ne masyvo kintamasis"
@@ -708,11 +708,11 @@ msgstr "%s: ne funkcija"
 msgid "shift count"
 msgstr "postūmių skaičius"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "negalima aplinkos nuostatos vienu metu įjungti ir išjungti"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: netaisyklingas aplinkos nuostatos pavadinimas"
@@ -754,7 +754,7 @@ msgstr "%s yra funkcija\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s yra aplinkos vidinė komanda\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s yra %s\n"
@@ -764,26 +764,26 @@ msgstr "%s yra %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s yra hešuotas (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: netaisyklingas limito argumentas"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': bloga komanda"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: nepavyko gauti limito: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "riba"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: nepavyko pakeisti limito: %s"
@@ -802,7 +802,7 @@ msgstr "„%c“: netaisyklingas simbolinės veiksenos operatorius"
 msgid "`%c': invalid symbolic mode character"
 msgstr "„%c“: netaisyklingas simbolinės veiksenos simbolis"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " eilutė "
 
@@ -816,23 +816,23 @@ msgstr "paskutinė komanda: %s\n"
 msgid "Aborting..."
 msgstr "Nutraukiama..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "nežinoma komandos klaida"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "blogas komandos tipas"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "blogas jungtukas"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "blogas šuolis"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: nepriskirtas kintamasis"
@@ -847,104 +847,119 @@ msgstr "\alaukiant įvedimo baigėsi laikas: automatiškai atsijungta\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "nepavyko peradresuoti standartinio įvedimo iš /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: netaisyklingas formato simbolis"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "rašymo klaida: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: apribota: negalima naudoti „/“ komandų pavadinimuose"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: komanda nerasta"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s yra %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: blogas interpretatorius"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: negalima vykdyti dvejetainių failų"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s yra aplinkos vidinė komanda\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nepavyko dublikuoti fd %d į fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "viršytas išraiškos rekursijos lygis"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "rekursijos steko atvirkštinis perpildymas"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "sintaksės klaida išraiškoje"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "bandymas priskirti ne kintamajam"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "dalyba iš 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "klaida: bloga expassign leksema"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "sąlygos išraiškoje tikėtasi „:“"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "eksponentė mažesnis už 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 "po prieš-didinimo ar prieš-mažinimo operatoriaus tikėtasi identifikatoriaus"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "Trūksta „)“"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "sintaksės klaida: tikėtasi operando"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "sintaksės klaida: netaisyklingas aritmetinis operatorius"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "netaisyklingas aritmetinis pagrindas"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "per didelė pagrindo reikšmė"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: išraiškos klaida\n"
@@ -953,163 +968,163 @@ msgstr "%s: išraiškos klaida\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: nepavyko pasiekti aukštesnių aplankų"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, fuzzy, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "nepavyko dublikuoti fd %d į fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "nepavyko išskirti naujo failo deskriptoriaus bash įvedimui iš fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: naujam fd %d buferis jau egzistuoja"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "trinamas sustabdytas darbas %d procesų grupėje %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: tokio pid nėra"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signalas %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Atlikta"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Atlikta(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Nežinoma būsena"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld nėra šios aplinkos dukterinis procesas"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: nėra proceso %ld įrašo"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: darbas %d yra sustabdytas"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: darbas užsibaigė"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: darbas %d jau fone"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: %d eilutė: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "šioje aplinkoje nėra darbų valdymo"
 
@@ -1178,7 +1193,7 @@ msgstr "register_alloc: %p jau lentelėje kaip rezervuotas?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p jau lentelėje kaip laisvas?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "netaisyklingas pagrindas"
 
@@ -1201,22 +1216,22 @@ msgstr "%s: netaisyklingas tinklo kelias"
 msgid "network operations not supported"
 msgstr "tinklo operacijos nepalaikomos"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: %s:%d: nepavyko išskirti %lu baitų"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: %s:%d: nepavyko išskirti %lu baitų"
@@ -1247,118 +1262,118 @@ msgstr "sintaksės klaida: netikėtas „;“"
 msgid "syntax error: `((%s))'"
 msgstr "sintaksės klaida: „((%s))“"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: blogas instrukcijos tipas %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: nukreipimo instrukcija „%d“ už ribų"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "netikėta failo pabaiga ieškant atitinkamo „%c“"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "netikėta failo pabaiga ieškant „]]“"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "sintaksės klaida sąlygos išraiškoje: netikėta leksema „%s“"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "sintaksės klaida sąlygos išraiškoje"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "netikėta leksema „%s“, tikėtasi „)“"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "tikėtasi „)“"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "netikėtas argumentas „%s“ sąlygos unariniam operatoriui"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "netikėtas argumentas sąlygos unariniam operatoriui"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "netikėta leksema „%s“, tikėtasi sąlyginio binarinio operatoriaus"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "tikėtasi sąlygos binarinio operatoriaus"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "netikėtas argumentas „%s“ sąlygos binariniam operatoriui"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "netikėtas argumentas sąlygos binariniam operatoriui"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "netikėta leksema „%c“ sąlygos komandoje"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "netikėta leksema „%s“ sąlygos komandoje"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "netikėta leksema %d sąlygos komandoje"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "sintaksės klaida prie netikėtos leksemos: „%s“"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "sintaksės klaida prie „%s“"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "sintaksės klaida: netikėta failo pabaiga"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "sintaksės klaida"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Naudokite „%s“, jei norite išeiti iš ap.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "netikėta failo pabaiga ieškant atitinkamo „)“"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: funkcija „%s“ nerasta"
@@ -1368,26 +1383,26 @@ msgstr "completion: funkcija „%s“ nerasta"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: blogas jungtukas  „%d“"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: netaisyklingas failo deskriptorius: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: netaisyklingas formato simbolis"
@@ -1425,33 +1440,33 @@ msgstr "%s: negalima priskirti sąrašo masyvo elementui"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/serveris/prievadas nepalaikoma be tinklo"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "nukreipimo klaida: nepavyko dublikuoti fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "nepavyko rasti /tmp, sukurkite šį aplanką!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp turi būti taisyklingas aplanko pavadinimas"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: netaisyklingas parametras"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Neturiu vardo!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versija %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1460,42 +1475,42 @@ msgstr ""
 "Naudojimas:\t%s [GNU ilgas parametras] [parametras] ...\n"
 "\t%s [GNU ilgas parametras] [parametras] scenarijaus-failas ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU ilgi parametrai:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Aplinkos parametrai:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 "\t-irsD arba -c komanda arba -O shopt_nustatymas\t\t(tik iškvietimui)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s arba -o nustatymas\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, fuzzy, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Bandykite „%s --help“ arba „%s --usage“, jei norite gauti daugiau "
 "informacijos.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, fuzzy, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Bandykite „ldd --help“, jei norite daugiau informacijos."
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Naudokite komandą „bashbug“ klaidoms pranešti.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: netaisyklinga operacija"
@@ -1670,83 +1685,83 @@ msgstr "Nežinomas signalas #"
 msgid "Unknown Signal #%d"
 msgstr "Nežinomas signalas #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "blogas keitinys: trūksta „%s“ %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: negalima priskirti sąrašo masyvo elementui"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametras tuščias arba nenustatytas"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: posekio išraiška < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: blogas keitinys"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: negalima tokiu būdu priskirti"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "blogas keitinys: trūksta „%s“ %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "nėra atitikmenų: %s"
@@ -1783,77 +1798,77 @@ msgstr "%s: tikėtasi binarinio operatoriaus"
 msgid "missing `]'"
 msgstr "trūksta „]“"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "netaisyklingas signalo numeris"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: bloga trap_list[%d] reikšmė: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: signalo doroklė yra SIG_DFL, siunčiamas %d (%s) sau"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: blogas signalas %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "klaida importuojant funkcijos apibrėžimą „%s“"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "aplinkos lygmuo (%d) per aukštas, nustatoma į 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parametras tuščias arba nenustatytas"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "netaisyklingas simbolis %d %s exportstr'e"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "%s exportstr'e trūksta „=“"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: nėra global_variables konteksto"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: nepavyko atverti: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: netaisyklingas failo deskriptorius: %s"
@@ -1931,7 +1946,7 @@ msgstr "unalias [-a] pavadinimas [pavadinimas ...]"
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2135,7 +2150,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] pavadinimas [pavadinimas ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [riba]"
 
 #: builtins.c:172
@@ -2143,7 +2159,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [režimas]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2340,12 +2357,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2356,7 +2375,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2370,7 +2389,7 @@ msgstr ""
 "Tęsti kitą FOR, WHILE arba UNTIL ciklo iteraciją.\n"
 "    Jei N nurodytas, tęsti ciklą, esantį N lygmenų virš esamo."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2384,7 +2403,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2409,7 +2428,7 @@ msgstr ""
 "    IŠRAIŠKOS reikšmė nurodo, per kiek kvietimo freimų grįžti nuo\n"
 "    esamo; viršutinis freimas yra 0."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2433,13 +2452,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2458,7 +2482,7 @@ msgstr ""
 "    užuot sekus simbolines nuorodas; parametras -L nurodo, kad turi būti\n"
 "    sekama simbolinėmis nuorodomis."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2474,7 +2498,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2485,7 +2509,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Jokio efekto; komanda nieko nedaro.  Grąžinamas klaidos kodas 0."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2493,7 +2517,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2502,7 +2526,7 @@ msgid ""
 "    Always fails."
 msgstr "Grąžinti nesėkmingą rezultatą."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2521,7 +2545,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2559,14 +2583,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2581,11 +2605,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2597,6 +2623,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2612,7 +2639,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2625,7 +2652,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2652,7 +2679,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2664,7 +2691,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2705,7 +2732,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2728,7 +2755,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2740,7 +2767,7 @@ msgstr ""
 "nustatomas\n"
 "    paskutinės vykdytos komandos klaidos kodas."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2749,7 +2776,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2779,7 +2806,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2791,7 +2818,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2805,7 +2832,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2829,7 +2856,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2851,7 +2878,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2885,7 +2912,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2909,7 +2936,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2926,7 +2953,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2948,7 +2975,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2993,7 +3020,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3030,18 +3057,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3053,7 +3083,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3119,7 +3149,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3138,7 +3168,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3158,7 +3188,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3177,7 +3207,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3197,7 +3227,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3208,7 +3238,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3227,7 +3257,7 @@ msgstr ""
 "    Jei nurodyta ARGUMENTŲ, jie tampa poziciniais parametrais iškvietus\n"
 "    FAILĄ."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3241,7 +3271,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3322,7 +3352,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3330,7 +3360,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3342,7 +3372,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3386,7 +3416,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3416,7 +3446,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3445,6 +3475,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3460,7 +3493,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3478,24 +3511,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3509,7 +3542,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3522,7 +3555,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3539,7 +3572,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3559,7 +3592,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3575,7 +3608,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3586,7 +3619,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3607,7 +3640,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3621,7 +3654,7 @@ msgstr ""
 "Išskleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iš\n"
 "    „while“ komandų grąžina klaidos kodą 0."
 
-#: builtins.c:1608
+#: builtins.c:1621
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3635,7 +3668,7 @@ msgstr ""
 "Išskleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iš\n"
 "    „until“ komandų grąžina klaidos kodą, nelygų 0."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3648,7 +3681,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3662,7 +3695,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3676,7 +3709,7 @@ msgstr ""
 "Vykdyti eilę komandų grupėje.  Tai yra vienas iš būdų nukreipti\n"
 "    visos eilės komandų įvedimą/išvedimą."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3690,7 +3723,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3701,7 +3734,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3729,7 +3762,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3783,7 +3816,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3814,7 +3847,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3841,7 +3874,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3870,7 +3903,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3891,7 +3924,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -3910,8 +3943,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3936,7 +3969,7 @@ msgstr ""
 "    Jei pateiktas parametras -v, išvedimas įrašomas į aplinkos kintamąjį\n"
 "    KINT, užuot spausdinus į standartinį išvedimą."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3963,7 +3996,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -3981,7 +4014,7 @@ msgstr ""
 "    Jei pateiktas nebūtinasis ŽODŽIO argumentas, išvedami įrašai,\n"
 "    atitinkantys ŽODĮ."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4012,7 +4045,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4053,7 +4086,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 2530a1250c0508d808e5b9546630541f11451a01..99b195405d5bd6a03f9e317648a83d22792f6a78 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 6788ea82de4720f7e3ae1b83e9e2547cce8e6938..0a0b160be7e730e03d5e512ff5063227e2d9ba07 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -23,7 +23,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-10-01 21:14+0100\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -34,50 +34,51 @@ msgstr ""
 "X-Generator: Lokalize 1.0\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "ongeldige array-index"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: kan geïndexeerd array niet omzetten naar associatief array"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: ongeldige sleutel voor associatief array"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: niet-numerieke index is niet mogelijk"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: een index is nodig bij toekenning aan associatief array"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "Kan %s niet aanmaken: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command(): kan voor opdracht geen toetsenkaart vinden"
+msgstr ""
+"bash_execute_unix_command(): kan voor opdracht geen toetsenkaart vinden"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: eerste teken dat geen witruimte is is niet '\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "geen sluit-'%c' in %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: ontbrekend scheidingsteken (dubbele punt)"
@@ -87,36 +88,36 @@ msgstr "%s: ontbrekend scheidingsteken (dubbele punt)"
 msgid "`%s': invalid alias name"
 msgstr "'%s': ongeldige naam voor alias"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "regelbewerking is niet ingeschakeld"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "'%s': ongeldige naam voor toetsenkaart"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "Kan %s niet lezen: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "Kan %s niet losmaken"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "'%s': onbekende functienaam"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s is aan geen enkele toets gebonden\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s kan worden aangeroepen via "
@@ -139,11 +140,15 @@ msgstr ""
 "\n"
 "    Zonder EXPR, resulteert "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME is niet gedefinieerd"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "te veel argumenten"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD is niet gedefinieerd"
 
@@ -152,7 +157,7 @@ msgstr "OLDPWD is niet gedefinieerd"
 msgid "line %d: "
 msgstr "regel %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "waarschuwing: "
@@ -162,11 +167,7 @@ msgstr "waarschuwing: "
 msgid "%s: usage: "
 msgstr "%s: Gebruik:  "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "te veel argumenten"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: optie vereist een argument"
@@ -181,7 +182,7 @@ msgstr "%s: vereist een numeriek argument"
 msgid "%s: not found"
 msgstr "%s: niet gevonden"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: ongeldige optie"
@@ -191,7 +192,7 @@ msgstr "%s: ongeldige optie"
 msgid "%s: invalid option name"
 msgstr "%s: ongeldige optienaam"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "'%s': is geen geldige naam"
@@ -204,7 +205,7 @@ msgstr "ongeldig octaal getal"
 msgid "invalid hex number"
 msgstr "ongeldig hexadecimaal getal"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "ongeldig getal"
 
@@ -218,7 +219,7 @@ msgstr "%s: ongeldige signaalaanduiding"
 msgid "`%s': not a pid or valid job spec"
 msgstr "'%s': is geen PID en geen geldige taakaanduiding"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: is een alleen-lezen variabele"
@@ -290,26 +291,26 @@ msgstr "%s: fout tijdens bepalen van huidige map: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: taakaanduiding is niet eenduidig"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: ongeldige actienaam"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: is geen completerings-aanduiding"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "waarschuwing: optie -F functioneert mogelijk niet zoals verwacht"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "waarschuwing: optie -C functioneert mogelijk niet zoals verwacht"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "er wordt momenteel geen completeringsfunctie uitgevoerd"
 
@@ -321,7 +322,7 @@ msgstr "kan alleen worden gebruikt binnen een functie"
 msgid "cannot use `-f' to make functions"
 msgstr "'-f' kan niet gebruikt worden om een functie te definiëren"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: is een alleen-lezen functie"
@@ -331,7 +332,7 @@ msgstr "%s: is een alleen-lezen functie"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: kan array-variabelen niet op deze manier verwijderen"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: kan associatief array niet omzetten naar geïndexeerd array"
@@ -360,8 +361,8 @@ msgstr "%s: is niet dynamisch geladen"
 msgid "%s: cannot delete: %s"
 msgstr "Kan %s niet verwijderen: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: is een map"
@@ -376,8 +377,7 @@ msgstr "%s: is geen normaal bestand"
 msgid "%s: file is too large"
 msgstr "%s: bestand is te groot"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: kan een binair bestand niet uitvoeren"
@@ -461,7 +461,8 @@ msgstr[1] "Shell-opdrachten die overeenkomen met '"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
 "Er is geen hulptekst voor '%s'.\n"
 "Probeer 'help help' of 'man -k %s' of 'info %s'."
@@ -485,10 +486,12 @@ msgstr ""
 "Hieronder staan alle interne shell-opdrachten opgesomd.  Typ 'help' om dit\n"
 "overzicht opnieuw te zien.  Typ 'help naam' voor meer informatie over de\n"
 "opdracht met die naam.  Typ 'info bash' voor gedetailleerde informatie over\n"
-"de gehele shell.  En gebruik 'man -k ...' of 'info ...' voor meer informatie\n"
+"de gehele shell.  En gebruik 'man -k ...' of 'info ...' voor meer "
+"informatie\n"
 "over andere opdrachten.\n"
 "\n"
-"(Een sterretje (*) naast een naam betekent dat de functie uitgeschakeld is.)\n"
+"(Een sterretje (*) naast een naam betekent dat de functie uitgeschakeld "
+"is.)\n"
 "\n"
 
 #: builtins/history.def:154
@@ -499,7 +502,7 @@ msgstr "slechts één van '-a', '-n', '-r' of '-w' is mogelijk"
 msgid "history position"
 msgstr "geschiedenispositie"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: geschiedenisexpansie is mislukt"
@@ -522,7 +525,7 @@ msgstr "%s: argumenten moeten proces-IDs of taak-IDs zijn"
 msgid "Unknown error"
 msgstr "Onbekende fout"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "uitdrukking werd verwacht"
 
@@ -531,12 +534,12 @@ msgstr "uitdrukking werd verwacht"
 msgid "%s: not an indexed array"
 msgstr "%s: is geen geïndexeerd array"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ongeldige aanduiding van bestandsdescriptor"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ongeldige bestandsdescriptor: %s"
@@ -566,31 +569,31 @@ msgstr "lege naam van array-variabele"
 msgid "array variable support required"
 msgstr "ondersteuning van arrayvariabelen is vereist"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "'%s': ontbrekend opmaakteken"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "'%c': ongeldige aanduiding van tijdsopmaak"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "'%c': ongeldig opmaakteken"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "waarschuwing: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "ontbrekend hexadecimaal cijfer bij \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "ontbrekend Unicode-cijfer bij \\%c"
@@ -626,10 +629,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Toont de huidige lijst van onthouden mappen.  Mappen worden aan deze\n"
@@ -729,35 +734,37 @@ msgstr ""
 "\n"
 "    De opdracht 'dirs' toont de huidige mappenstapel."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: ongeldige aanduiding van tijdslimiet"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "leesfout: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "kan alleen een 'return' doen uit een functie of een uit script aangeroepen met 'source'"
+msgstr ""
+"kan alleen een 'return' doen uit een functie of een uit script aangeroepen "
+"met 'source'"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "kan niet tegelijk een functie en een variabele verwijderen"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "Kan '%s' niet verwijderen"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "Kan '%s' niet verwijderen: %s is alleen-lezen"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: is geen array-variabele"
@@ -771,11 +778,11 @@ msgstr "%s: is geen functie"
 msgid "shift count"
 msgstr "shift-aantal"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "kan shell-opties niet tegelijk inschakelen en uitschakelen"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ongeldige shell-optienaam"
@@ -817,7 +824,7 @@ msgstr "%s is een functie\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s is een ingebouwde shell-functie\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s is %s\n"
@@ -827,26 +834,26 @@ msgstr "%s is %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s is gehasht (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: ongeldige limietwaarde"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "'%c': ongeldige opdracht"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: kan de limiet niet bepalen: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limiet"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: kan de limiet niet wijzigen: %s"
@@ -865,7 +872,7 @@ msgstr "'%c': ongeldige operator in symbolische modus"
 msgid "`%c': invalid symbolic mode character"
 msgstr "'%c': ongeldig teken in symbolische modus"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " regel "
 
@@ -879,23 +886,23 @@ msgstr "laatste opdracht: %s\n"
 msgid "Aborting..."
 msgstr "Afbreken..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "onbekende opdrachtfout"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "ongeldig opdrachttype"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "ongeldige verbinder"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "ongeldige sprong"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: ongebonden variabele"
@@ -910,102 +917,117 @@ msgstr "\awachten op invoer duurde te lang -- automatisch afgemeld\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "kan standaardinvoer niet omleiden vanaf /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: '%c': ongeldig opmaakteken"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "pijpfout"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: beperkte modus: '/' in opdrachtnamen is niet toegestaan"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: opdracht niet gevonden"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: ongeldige interpreter"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: kan een binair bestand niet uitvoeren"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s is een ingebouwde shell-functie\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "kan bestandsdescriptor %d niet dupliceren naar bestandsdescriptor %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "recursieniveau van expressies is overschreden"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "recursiestapel-onderloop"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntaxfout in expressie"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "poging tot toewijzing aan een niet-variabele"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "deling door nul"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "**interne fout**: onjuist symbool in toewijzingsexpressie"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "':' werd verwacht voor een voorwaardelijke expressie"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exponent is kleiner dan 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "naam verwacht na pre-increment of pre-decrement"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "ontbrekend ')'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntaxfout: operator verwacht"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntaxfout: ongeldige rekenkundige operator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (het onjuiste symbool is \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "ongeldige rekenkundige basis"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "waarde is te groot voor basis"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: expressiefout\n"
@@ -1014,163 +1036,168 @@ msgstr "%s: expressiefout\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd(): kan geen geen toegang verkrijgen tot bovenliggende mappen"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "kan 'nodelay'-modus niet uitschakelen voor bestandsdescriptor %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "kan geen nieuwe bestandsdescriptor reserveren voor bash-invoer vanuit bestandsdescriptor %d"
+msgstr ""
+"kan geen nieuwe bestandsdescriptor reserveren voor bash-invoer vanuit "
+"bestandsdescriptor %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr "check_bash_input(): buffer bestaat al voor nieuwe bestandsdescriptor %d"
+msgstr ""
+"check_bash_input(): buffer bestaat al voor nieuwe bestandsdescriptor %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline(): procesgroep van pijp"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "afgesplitst PID %d hoort bij draaiende taak %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "verwijderen van gepauzeerde taak %d met procesgroep %ld..."
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process(): proces %5ld (%s) in de pijplijn"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process(): PID %5ld (%s) staat gemarkeerd als nog actief"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid(): PID %ld bestaat niet"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signaal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Klaar"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Gepauzeerd"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Gepauzeerd(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Wordt uitgevoerd"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Klaar(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Exit %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Onbekende afsluitwaarde"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(geheugendump gemaakt) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (werkmap: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "instellen van procesgroep %2$ld van dochter %1$ld"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait(): PID %ld is geen dochterproces van deze shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for(): proces %ld is nergens geregistreerd"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job(): taak %d is gepauzeerd"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: taak is afgesloten"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: taak %d draait al op de achtergrond"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr "waitchld(): WNOHANG wordt ingeschakeld om een onbegrensde blokkering te vermijden"
+msgstr ""
+"waitchld(): WNOHANG wordt ingeschakeld om een onbegrensde blokkering te "
+"vermijden"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: regel %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (geheugendump gemaakt)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(werkmap is nu: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp() is mislukt"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: lijnprotocol"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid()"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "kan procesgroep (%d) van terminal niet instellen"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "er is geen taakbesturing in deze shell"
 
@@ -1239,7 +1266,7 @@ msgstr "register_alloc(): %p staat al als gereserveerd in tabel??\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free(): %p staat al als vrij in tabel??\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "ongeldige basis"
 
@@ -1262,22 +1289,22 @@ msgstr "%s: ongeldige aanduiding van netwerkpad"
 msgid "network operations not supported"
 msgstr "netwerkoperaties worden niet ondersteund"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale(): LC_ALL: kan niet van taalregio veranderen (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale(): LC_ALL: kan niet van taalregio veranderen (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale(): %s: kan niet van taalregio veranderen (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale(): %s: kan niet van taalregio veranderen (%s): %s"
@@ -1308,118 +1335,121 @@ msgstr "syntaxfout: onverwachte ';'"
 msgid "syntax error: `((%s))'"
 msgstr "syntaxfout: '((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document(): ongeldig instructietype %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "regel %d van \"hier\"-document eindigt met einde van bestand (verwachtte '%s')"
+msgstr ""
+"regel %d van \"hier\"-document eindigt met einde van bestand (verwachtte "
+"'%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection(): omleidingsinstructie '%d' valt buiten bereik"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende '%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "onverwacht bestandseinde tijdens zoeken naar ']]'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntaxfout in conditionele expressie: onverwacht symbool '%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "syntaxfout in conditionele expressie"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "onverwacht symbool '%s'; ')' werd verwacht"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "')' werd verwacht"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "onverwacht argument '%s' bij eenzijdige conditionele operator"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "onverwacht argument bij eenzijdige conditionele operator"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "onverwacht symbool '%s'; tweezijdige conditionele operator werd verwacht"
+msgstr ""
+"onverwacht symbool '%s'; tweezijdige conditionele operator werd verwacht"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "tweezijdige conditionele operator werd verwacht"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "onverwacht argument '%s' bij tweezijdige conditionele operator"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "onverwacht argument bij tweezijdige conditionele operator"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "onverwacht symbool '%c' in conditionele opdracht"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "onverwacht symbool '%s' in conditionele opdracht"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "onverwacht symbool %d in conditionele opdracht"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntaxfout nabij onverwacht symbool '%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntaxfout nabij '%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "syntaxfout: onverwacht bestandseinde"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "syntaxfout"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Gebruik \"%s\" om de shell te verlaten.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende ')'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion(): functie '%s' niet gevonden"
@@ -1429,26 +1459,28 @@ msgstr "completion(): functie '%s' niet gevonden"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert(): %s: lege COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command(): ongeldige verbinder '%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set(): %d: ongeldige bestandsdescriptor"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set(): bestandspointer is NIL"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr "xtrace-bestandsdescriptor (%d) != bestandsnummer van xtrace-bestandspointer (%d)"
+msgstr ""
+"xtrace-bestandsdescriptor (%d) != bestandsnummer van xtrace-bestandspointer "
+"(%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf(): '%c': ongeldig opmaakteken"
@@ -1486,33 +1518,33 @@ msgstr "%s: kan bestandsdescriptor niet toewijzen aan variabele"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port is niet mogelijk zonder netwerk"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "omleidingsfout: kan bestandsdescriptor niet dupliceren"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "Kan /tmp niet vinden; maak deze aan!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp dient een geldige mapnaam te zijn"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: ongeldige optie"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Ik heb geen naam!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versie %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1521,39 +1553,40 @@ msgstr ""
 "Gebruik:  %s [opties]\n"
 "          %s [opties] scriptbestand...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Lange opties:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Korte opties:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD,  of -c opdracht,  of -O shopt-optie    (enkel bij aanroep)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s,  of -o optie    (veranderbaar via 'set')\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Typ '%s -c \"help set\"' voor meer informatie over shell-opties.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Typ '%s -c help' voor meer informatie over ingebouwde shell-functies.\n"
+msgstr ""
+"Typ '%s -c help' voor meer informatie over ingebouwde shell-functies.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Gebruik de opdracht 'bashbug' om fouten in bash te rapporteren.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask(): %d: ongeldige operatie"
@@ -1730,81 +1763,86 @@ msgstr "Onbekend signaalnummer"
 msgid "Unknown Signal #%d"
 msgstr "Onbekend signaal #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "ongeldige vervanging: geen sluit-'%s' in %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: kan geen lijst toewijzen aan een array-element"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "kan geen pijp maken voor procesvervanging"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "kan geen dochterproces maken voor procesvervanging"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "kan pijp genaamd %s niet openen om te lezen"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "kan pijp genaamd %s niet openen om te schrijven"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "kan pijp genaamd %s niet dupliceren als bestandsdescriptor %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "kan geen pijp maken voor opdrachtvervanging"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "kan geen dochterproces maken voor opdrachtvervanging"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr "command_substitute(): kan pijp niet dupliceren als bestandsdescriptor 1"
+msgstr ""
+"command_substitute(): kan pijp niet dupliceren als bestandsdescriptor 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: lege parameter, of niet ingesteld"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: resultaat van deeltekenreeks is kleiner dan nul"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: ongeldige vervanging"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: kan niet op deze manier toewijzen"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "toekomstige versies van de shell zullen dit als een rekenkundige vervanging evalueren"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"toekomstige versies van de shell zullen dit als een rekenkundige vervanging "
+"evalueren"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "ongeldige vervanging: geen afsluitende '`' in %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "geen overeenkomst: %s"
@@ -1841,76 +1879,82 @@ msgstr "tweezijdige operator werd verwacht, %s gevonden"
 msgid "missing `]'"
 msgstr "ontbrekende ']'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "ongeldig signaalnummer"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps(): ongeldige waarde in trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: signaalverwerker is SIG_DFL, herzenden van %d (%s) aan mezelf..."
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: signaalverwerker is SIG_DFL, herzenden van %d (%s) aan "
+"mezelf..."
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler(): ongeldig signaal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "fout tijdens importeren van functiedefinitie voor '%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "shell-niveau is te hoog (%d); teruggezet op 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
-msgstr "make_local_variable(): er is geen functiecontext in huidige geldigheidsbereik"
+msgstr ""
+"make_local_variable(): er is geen functiecontext in huidige geldigheidsbereik"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
-msgstr "all_local_variables(): er is geen functiecontext in huidige geldigheidsbereik"
+msgstr ""
+"all_local_variables(): er is geen functiecontext in huidige geldigheidsbereik"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "*** %s heeft lege export-tekenreeks"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "*** ongeldig teken '%d' in export-tekenreeks voor %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "*** geen '=' in export-tekenreeks voor %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context(): top van 'shell_variables' is geen functiecontext"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context(): er is geen 'global_variables'-context"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope(): top van 'shell_variables' is geen tijdelijk geldigheidsbereik"
+msgstr ""
+"pop_scope(): top van 'shell_variables' is geen tijdelijk geldigheidsbereik"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: Kan %s niet openen als BESTAND"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: ongeldige waarde %s voor 'trace'-bestandsdescriptor"
@@ -1920,7 +1964,9 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
 msgstr ""
 "De licentie is GPLv3+: GNU GPL versie 3 of later.\n"
 "Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n"
@@ -1933,7 +1979,8 @@ msgstr "GNU bash, versie %s (%s)\n"
 #: version.c:91 version2.c:88
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "Dit is vrije software; u mag het vrijelijk wijzigen en verder verspreiden.\n"
+msgstr ""
+"Dit is vrije software; u mag het vrijelijk wijzigen en verder verspreiden.\n"
 
 #: version.c:92 version2.c:89
 #, c-format
@@ -1947,7 +1994,9 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
 msgstr ""
 "De licentie is GPLv2+: GNU GPL versie 2 of later.\n"
 "Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n"
@@ -1981,7 +2030,10 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] NAAM [NAAM...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m TOETSENKAART] [-f BESTANDSNAAM] [-q NAAM] [-u NAAM]\n"
 "          [-r TOETSENREEKS] [-x TOETSENREEKS:SHELL-OPDRACHT]\n"
@@ -2075,7 +2127,9 @@ msgstr "logout [N]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e EDITORNAAM] [-lnr] [EERSTE] [LAATSTE]  of: fc -s [PATROON=VERVANGING] [OPDRACHT]"
+msgstr ""
+"fc [-e EDITORNAAM] [-lnr] [EERSTE] [LAATSTE]  of: fc -s [PATROON=VERVANGING] "
+"[OPDRACHT]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2094,8 +2148,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [PATROON...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d POSITIE] [N]  of: history -anrw [BESTANDSNAAM]  of: history -ps ARGUMENT..."
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d POSITIE] [N]  of: history -anrw [BESTANDSNAAM]  of: history "
+"-ps ARGUMENT..."
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2106,7 +2164,9 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [TAAKAANDUIDING...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
 msgstr ""
 "kill [-s SIGNAALNAAM | -n SIGNAALNUMMER | -SIGNAAL] PID | TAAKAANDUIDING\n"
 "  of: kill -l [SIGNAAL]"
@@ -2116,7 +2176,9 @@ msgid "let arg [arg ...]"
 msgstr "let ARGUMENT..."
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
 msgstr ""
 "read [-ers] [-a ARRAY] [-d SCHEIDINGSTEKEN] [-i TEKST] [-p PROMPT]\n"
 "           [-n AANTAL_TEKENS] [-N AANTAL_TEKENS] [-t TIJDSLIMIET]\n"
@@ -2179,7 +2241,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] NAAM..."
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [GRENSWAARDE]"
 
 #: builtins.c:172
@@ -2187,7 +2250,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [MODUS]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [ID]"
 
 #: builtins.c:179
@@ -2215,8 +2279,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case WOORD in [PATROON [| PATROON]...) OPDRACHTEN ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if OPDRACHTEN; then OPDRACHTEN; [elif OPDRACHTEN; then OPDRACHTEN;]... [else OPDRACHTEN;] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if OPDRACHTEN; then OPDRACHTEN; [elif OPDRACHTEN; then OPDRACHTEN;]... [else "
+"OPDRACHTEN;] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2275,14 +2343,19 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v VARIABELE] OPMAAK [ARGUMENTEN]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
 msgstr ""
 "complete [-abcdefgjksuv] [-pr] [-DE] [-o OPTIE] [-A ACTIE] [-C OPDRACHT]\n"
 "                   [-F FUNCTIE] [-G PATROON] [-P PREFIX] [-S SUFFIX]\n"
 "                   [-W WOORDENLIJST] [-X FILTERPATROON]  [NAAM...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 "compgen [-abcdefgjksuv] [-o OPTIE] [-A ACTIE] [-C OPDRACHT] [-F FUNCTIE]\n"
 "                  [-G PATROON] [-P PREFIX] [-S SUFFIX]\n"
@@ -2293,13 +2366,17 @@ msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o OPTIE] [-DE] [NAAM...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 msgstr ""
 "mapfile [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n"
 "                 [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 msgstr ""
 "readarray [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n"
 "                 [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]"
@@ -2319,7 +2396,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Aliassen definiëren of tonen.\n"
@@ -2327,8 +2405,10 @@ msgstr ""
 "    Zonder argumenten, of met optie '-p', toont 'alias' op standaarduitvoer\n"
 "    de huidige lijst van aliassen in de vorm: alias NAAM='VERVANGING'.\n"
 "    Met argumenten, wordt er een alias gedefinieerd voor elke NAAM waarvoor\n"
-"    een VERVANGING gegeven is.  Als de VERVANGING eindigt op een spatie, dan\n"
-"    wordt bij aliasexpansie ook van het nakomende woord gecontroleerd of het\n"
+"    een VERVANGING gegeven is.  Als de VERVANGING eindigt op een spatie, "
+"dan\n"
+"    wordt bij aliasexpansie ook van het nakomende woord gecontroleerd of "
+"het\n"
 "    een alias is.\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij er een NAAM zonder VERVANGING gegeven is."
@@ -2349,6 +2429,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij NAAM geen bestaande alias is."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2360,24 +2441,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2385,8 +2472,10 @@ msgstr ""
 "Toetsbindingen en variabelen van 'readline' instellen.\n"
 "\n"
 "    Verbindt een toetsenreeks aan een 'readline'-functie of aan een macro,\n"
-"    of stelt een 'readline'-variabele in.  De syntax van argumenten die geen\n"
-"    opties zijn is gelijkaardig aan die voor ~/.inputrc, maar zij dienen één\n"
+"    of stelt een 'readline'-variabele in.  De syntax van argumenten die "
+"geen\n"
+"    opties zijn is gelijkaardig aan die voor ~/.inputrc, maar zij dienen "
+"één\n"
 "    geheel te zijn, bijvoorbeeld: bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "\n"
 "    Opties:\n"
@@ -2397,7 +2486,8 @@ msgstr ""
 "                           'emacs-standard', 'emacs-meta', 'emacs-ctlx',\n"
 "                           'vi', 'vi-move', 'vi-insert' en 'vi-command'\n"
 "      -P                 functienamen en hun bindingen tonen\n"
-"      -p                 functienamen en hun bindingen tonen, in een vorm die\n"
+"      -p                 functienamen en hun bindingen tonen, in een vorm "
+"die\n"
 "                           kan worden hergebruikt als invoer\n"
 "      -r TOETSENREEKS    de binding voor deze toetsenreeks verwijderen\n"
 "      -q FUNCTIENAAM     tonen welke toetsen deze functie aanroepen\n"
@@ -2406,15 +2496,18 @@ msgstr ""
 "                           vorm die kan worden hergebruikt als invoer\n"
 "      -u FUNCTIENAAM     verwijdert alle toetsbindingen aan deze functie\n"
 "      -V                 variabelenamen en hun waarden tonen\n"
-"      -v                 variabelenamen en hun waarden tonen, in een vorm die\n"
+"      -v                 variabelenamen en hun waarden tonen, in een vorm "
+"die\n"
 "                           kan worden hergebruikt als invoer\n"
-"      -x  TOETSENREEKS:SHELL_OPDRACHT  deze shell-opdracht uitvoeren als deze\n"
+"      -x  TOETSENREEKS:SHELL_OPDRACHT  deze shell-opdracht uitvoeren als "
+"deze\n"
 "                                         toetsenreeks ingevoerd wordt \n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2429,7 +2522,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij N kleiner dan 1 is."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2444,13 +2537,14 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij N kleiner dan 1 is."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2458,7 +2552,8 @@ msgid ""
 msgstr ""
 "Een ingebouwde shell-functie uitvoeren.\n"
 "\n"
-"    Voert de gegeven ingebouwde shell-functie met de gegeven argumenten uit.\n"
+"    Voert de gegeven ingebouwde shell-functie met de gegeven argumenten "
+"uit.\n"
 "    Dit is handig als u de naam van een ingebouwde functie voor een eigen\n"
 "    functie wilt gebruiken, maar toch de functionaliteit van de ingebouwde\n"
 "    functie nodig hebt.\n"
@@ -2466,7 +2561,7 @@ msgstr ""
 "    De afsluitwaarde is die van de uitgevoerde shell-functie, of 1\n"
 "    of 1 als INGEBOUWDE_SHELLFUNCTIE geen ingebouwde shell-functie is."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2492,33 +2587,46 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij de shell momenteel geen functie uitvoert\n"
 "    of EXPRESSIE ongeldig is."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "De huidige map wijzigen.\n"
@@ -2540,13 +2648,16 @@ msgstr ""
 "      -L    symbolische koppelingen volgen (standaard)\n"
 "      -P    de fysieke mappenstructuur gebruiken;\n"
 "              symbolische koppelingen worden eerst \"vertaald\"\n"
-"      -e    als optie '-P' gegeven en de huidige map kan niet bepaald worden,\n"
+"      -e    als optie '-P' gegeven en de huidige map kan niet bepaald "
+"worden,\n"
 "              dan afsluiten met een niet-nul waarde\n"
 " \n"
-"    De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, en als ook\n"
-"    omgevingsvariabele PWD ingesteld kon worden als '-P' gegeven is, anders 1."
+"    De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, en als "
+"ook\n"
+"    omgevingsvariabele PWD ingesteld kon worden als '-P' gegeven is, anders "
+"1."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2564,14 +2675,16 @@ msgstr ""
 "De naam van de huidige werkmap tonen.\n"
 "\n"
 "    Opties:\n"
-"      -P   het werkelijke, fysieke pad tonen, zonder symbolische koppelingen\n"
-"      -L   het pad tonen zoals dat gevolgd is, inclusief eventuele symbolische\n"
+"      -P   het werkelijke, fysieke pad tonen, zonder symbolische "
+"koppelingen\n"
+"      -L   het pad tonen zoals dat gevolgd is, inclusief eventuele "
+"symbolische\n"
 "             koppelingen (standaard)\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of de\n"
 "    huidige map niet bepaald kon worden."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2581,7 +2694,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Doet niets; de opdracht heeft geen effect; de afsluitwaarde is 0."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2589,7 +2702,7 @@ msgid ""
 "    Always succeeds."
 msgstr "Geeft afsluitwaarde 0, horend bij \"gelukt\"."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2597,12 +2710,13 @@ msgid ""
 "    Always fails."
 msgstr "Geeft afsluitwaarde 1, horend bij \"mislukt\"."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2630,7 +2744,7 @@ msgstr ""
 "    De afsluitwaarde is die van de uitgevoerde OPDRACHT,\n"
 "    of 1 als de OPDRACHT niet gevonden is."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2660,7 +2774,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2675,13 +2790,15 @@ msgstr ""
 "    Opties:\n"
 "      -f   alleen de gedefinieerde functies tonen (geen variabelen)\n"
 "      -F   alleen de namen van de functies tonen, zonder de definities\n"
-"      -g   globale variabelen aanmaken wanneer gebruikt in een shell-functie;\n"
+"      -g   globale variabelen aanmaken wanneer gebruikt in een shell-"
+"functie;\n"
 "             elders genegeerd\n"
 "      -p   van elke gegeven variabele de eigenschappen en waarde tonen\n"
 "\n"
 "    Eigenschappen:\n"
 "      -a   van gegeven variabelen arrays maken (indien mogelijk)\n"
-"      -A   van gegeven variabelen associatieve arrays maken (indien mogelijk)\n"
+"      -A   van gegeven variabelen associatieve arrays maken (indien "
+"mogelijk)\n"
 "      -i   aan gegeven variabelen de 'geheel getal'-eigenschap toekennen\n"
 "      -l   gegeven variabelen bij toekenning omzetten naar kleine letters\n"
 "      -r   de gegeven variabelen alleen-lezen maken\n"
@@ -2698,10 +2815,11 @@ msgstr ""
 "    Als 'declare' wordt gebruikt in een functie, dan maakt het elke gegeven\n"
 "    naam lokaal, net zoals de opdracht 'local'.  Optie '-g' onderdrukt dit.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2711,7 +2829,7 @@ msgstr ""
 "\n"
 "    Deze opdracht is verouderd.  Zie 'help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2737,11 +2855,14 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd, er een\n"
 "    fout optrad, of de shell geen functie aan het uitvoeren is."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2753,6 +2874,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2793,7 +2915,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een schrijffout optrad."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2812,7 +2934,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een schrijffout optrad."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2840,21 +2962,26 @@ msgid ""
 msgstr ""
 "Ingebouwde shell-opdrachten in- of uitschakelen.\n"
 "\n"
-"    Schakelt ingebouwde opdrachten in of uit.  Dit laatste maakt het mogelijk\n"
+"    Schakelt ingebouwde opdrachten in of uit.  Dit laatste maakt het "
+"mogelijk\n"
 "    om een bestand op schijf uit te voeren dat dezelfde naam heeft als een\n"
 "    ingebouwde opdracht, zonder het volledige pad op te moeten geven.\n"
 "\n"
 "    Opties:\n"
-"      -a   de ingebouwde opdrachten tonen en of ze in- of uitgeschakeld zijn\n"
-"      -n   genoemde opdrachten uitschakelen of uitgeschakelde opdrachten tonen\n"
-"      -p   uitvoer produceren die hergebruikt kan worden als invoer (standaard)\n"
+"      -a   de ingebouwde opdrachten tonen en of ze in- of uitgeschakeld "
+"zijn\n"
+"      -n   genoemde opdrachten uitschakelen of uitgeschakelde opdrachten "
+"tonen\n"
+"      -p   uitvoer produceren die hergebruikt kan worden als invoer "
+"(standaard)\n"
 "      -s   alleen de speciale POSIX ingebouwde opdrachten tonen\n"
 "\n"
 "    Opties die het dynamisch laden besturen:\n"
 "      -f   ingebouwde opdracht NAAM laden uit gedeeld object BESTANDSNAAM\n"
 "      -d   opdracht die geladen is met '-f' verwijderen.\n"
 "\n"
-"    Zonder opties wordt elke gegeven NAAM ingeschakeld.  Zonder namen worden\n"
+"    Zonder opties wordt elke gegeven NAAM ingeschakeld.  Zonder namen "
+"worden\n"
 "    de ingeschakelde opdrachten getoond (of met '-n' de uitgeschakelde).\n"
 "\n"
 "    Voorbeeld: om in plaats van de ingebouwde 'test' het bestand 'test' te\n"
@@ -2863,11 +2990,12 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij NAAM geen ingebouwde shell-opdracht is of\n"
 "    er een fout optreedt."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2875,13 +3003,15 @@ msgid ""
 msgstr ""
 "Argumenten uitvoeren als een shell-opdracht.\n"
 "\n"
-"    Combineert de gegeven argumenten tot een enkele tekenreeks, gebruikt deze\n"
+"    Combineert de gegeven argumenten tot een enkele tekenreeks, gebruikt "
+"deze\n"
 "    als invoer voor de shell, en voert de resulterende opdrachten uit.\n"
 "\n"
-"    De afsluitwaarde is die van de uitgevoerde opdracht, of 0 als de opdracht\n"
+"    De afsluitwaarde is die van de uitgevoerde opdracht, of 0 als de "
+"opdracht\n"
 "    leeg is."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2923,7 +3053,8 @@ msgid ""
 msgstr ""
 "Opties ontleden.\n"
 "\n"
-"    'getopts' kan door shell-scripts gebruikt worden om positionele parameters\n"
+"    'getopts' kan door shell-scripts gebruikt worden om positionele "
+"parameters\n"
 "    als opties te ontleden.\n"
 "\n"
 "    De OPTIETEKENREEKS bevat de te herkennen optieletters; als een letter\n"
@@ -2956,12 +3087,13 @@ msgstr ""
 "    Normaliter ontleedt 'getopts' de positionele parameters: $0...$9.\n"
 "    Maar als er argumenten gegeven worden, dan worden deze ontleed."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2969,11 +3101,13 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "De shell vervangen door de gegeven opdracht.\n"
 "\n"
@@ -2987,13 +3121,14 @@ msgstr ""
 "      -c        de opdracht uitvoeren met een lege omgeving\n"
 "      -l        een koppelteken als nulde argument aan OPDRACHT meegeven\n"
 "\n"
-"    Als de opdracht niet kan worden uitgevoerd, dan sluit een niet-interactieve\n"
+"    Als de opdracht niet kan worden uitgevoerd, dan sluit een niet-"
+"interactieve\n"
 "    shell af, tenzij de shell-optie 'execfail' aan staat.\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij OPDRACHT niet gevonden wordt of er een\n"
 "    omleidingsfout optreedt."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3005,11 +3140,12 @@ msgstr ""
 "    Beëindigt de shell met een afsluitwaarde van N.  Zonder N is de\n"
 "    afsluitwaarde die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Een login-shell beëindigen.\n"
@@ -3017,17 +3153,19 @@ msgstr ""
 "    Beëindigt een login-shell met een afsluitwaarde van N.  Geeft een\n"
 "    foutmelding als de huidige shell geen login-shell is."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3041,13 +3179,16 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Opdrachten uit de geschiedenis tonen of uitvoeren.\n"
 "\n"
 "    Kan gebruikt worden om oude opdrachten te tonen, of om deze te bewerken\n"
-"    en opnieuw uit te voeren.  EERSTE en LAATSTE kunnen getallen zijn die een\n"
-"    bereik opgeven, of EERSTE kan een tekenreeksje zijn waarmee de recentste\n"
+"    en opnieuw uit te voeren.  EERSTE en LAATSTE kunnen getallen zijn die "
+"een\n"
+"    bereik opgeven, of EERSTE kan een tekenreeksje zijn waarmee de "
+"recentste\n"
 "    opdracht wordt bedoeld die met die letters begint.\n"
 "\n"
 "    Opties:\n"
@@ -3067,7 +3208,7 @@ msgstr ""
 "    De afsluitwaarde die van de uitgevoerde opdracht, of 0, of niet-nul als\n"
 "    er een fout optreedt."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3080,19 +3221,24 @@ msgid ""
 msgstr ""
 "De gegeven taak in de voorgrond plaatsen.\n"
 "\n"
-"    Plaatst de gegeven taak in de voorgrond, en maakt deze tot de huidige taak.\n"
-"    Als er geen taak gegeven is, dan wordt dat wat volgens de shell de huidige\n"
+"    Plaatst de gegeven taak in de voorgrond, en maakt deze tot de huidige "
+"taak.\n"
+"    Als er geen taak gegeven is, dan wordt dat wat volgens de shell de "
+"huidige\n"
 "    taak is gebruikt.\n"
 "\n"
-"    De afsluitwaarde is die van de in voorgrond geplaatste taak, of 1 als er\n"
+"    De afsluitwaarde is die van de in voorgrond geplaatste taak, of 1 als "
+"er\n"
 "    een fout optreedt."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3100,19 +3246,23 @@ msgid ""
 msgstr ""
 "De gegeven taken in de achtergrond plaatsen.\n"
 "\n"
-"    Plaatst gegeven taken in de achtergrond, alsof deze gestart waren met '&'.\n"
-"    Als er geen taak gegeven is, dan wordt dat wat volgens de shell de huidige\n"
+"    Plaatst gegeven taken in de achtergrond, alsof deze gestart waren met "
+"'&'.\n"
+"    Als er geen taak gegeven is, dan wordt dat wat volgens de shell de "
+"huidige\n"
 "    taak is gebruikt.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij taakbeheer uitgeschakeld is of er een fout\n"
+"    De afsluitwaarde is 0, tenzij taakbeheer uitgeschakeld is of er een "
+"fout\n"
 "    optreedt."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3148,7 +3298,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij NAAM niet gevonden wordt of een ongeldige\n"
 "    optie gegeven werd."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3166,7 +3316,8 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Informatie tonen over ingebouwde opdrachten.\n"
 "\n"
@@ -3180,10 +3331,11 @@ msgstr ""
 "      -m   gebruiksbericht tonen in pseudo-opmaak van een man-pagina\n"
 "      -s   de uitvoer beperken tot een beknopt gebruiksbericht\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij niets aan PATROON voldoet of een ongeldige\n"
+"    De afsluitwaarde is 0, tenzij niets aan PATROON voldoet of een "
+"ongeldige\n"
 "    optie gegeven werd."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3210,7 +3362,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3222,7 +3375,8 @@ msgstr ""
 "    argument van N worden alleen de laatste N opdrachten getoond.\n"
 "\n"
 "    Opties:\n"
-"      -c   huidige geschiedenis wissen: alle uitgevoerde opdrachten vergeten\n"
+"      -c   huidige geschiedenis wissen: alle uitgevoerde opdrachten "
+"vergeten\n"
 "      -d POSITIE   het geschiedenisitem op deze positie verwijderen\n"
 "\n"
 "      -a   huidige geschiedenis aan eind van geschiedenisbestand toevoegen\n"
@@ -3231,7 +3385,8 @@ msgstr ""
 "             huidige geschienis\n"
 "      -w   huidige geschiedenis aan einde van geschiedenisbestand toevoegen\n"
 "\n"
-"      -p   geschiedenisopzoeking uitvoeren voor elk ARGUMENT en het resultaat\n"
+"      -p   geschiedenisopzoeking uitvoeren voor elk ARGUMENT en het "
+"resultaat\n"
 "             tonen zonder dit in de geschiedenis op te slaan\n"
 "      -s   de ARGUMENTen als één enkel item aan de geschiedenis toevoegen\n"
 "\n"
@@ -3241,13 +3396,15 @@ msgstr ""
 "\n"
 "    Als de variabele HISTTIMEFORMAT ingesteld en niet leeg is, dan wordt de\n"
 "    waarde ervan gebruikt als een opmaaktekenreeks for strftime(3), om een\n"
-"    tijdsstempel bij elk geschiedenisitem weer te geven.  Anders worden geen\n"
+"    tijdsstempel bij elk geschiedenisitem weer te geven.  Anders worden "
+"geen\n"
 "    tijdsstempels getoond.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3272,12 +3429,15 @@ msgid ""
 msgstr ""
 "De status van taken tonen.\n"
 "\n"
-"    Toont de actieve taken.  Een TAAKAANDUIDING beperkt de uitvoer tot alleen\n"
-"    die taak.  Zonder opties wordt de status van alle actieve taken getoond.\n"
+"    Toont de actieve taken.  Een TAAKAANDUIDING beperkt de uitvoer tot "
+"alleen\n"
+"    die taak.  Zonder opties wordt de status van alle actieve taken "
+"getoond.\n"
 "\n"
 "    Opties:\n"
 "      -l   ook de proces-ID's tonen, naast de gewone informatie\n"
-"      -n   alleen processen tonen die sinds de vorige melding zijn veranderd\n"
+"      -n   alleen processen tonen die sinds de vorige melding zijn "
+"veranderd\n"
 "      -p   alleen de proces-ID's tonen\n"
 "      -r   uitvoer beperken tot draaiende taken\n"
 "      -s   uitvoer beperken tot gepauzeerde taken\n"
@@ -3286,10 +3446,11 @@ msgstr ""
 "    alle gegeven taken (in ARGUMENTen) afgesloten zijn (dat wil zeggen: hun\n"
 "    proces-ID is vervangen door dat van hun moederproces).\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad.  Met optie '-x' is de afsluitwaarde die van OPDRACHT."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3313,14 +3474,15 @@ msgstr ""
 "\n"
 "    Opties:\n"
 "      -a   alle taken verwijderen (als geen TAAKAANDUIDING gegeven is)\n"
-"      -h   taken niet verwijderen maar zodanig markeren dat deze geen SIGHUP\n"
+"      -h   taken niet verwijderen maar zodanig markeren dat deze geen "
+"SIGHUP\n"
 "             krijgen wanneer de shell een SIGHUP krijgt\n"
 "      -r   alleen draaiende taken verwijderen\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of TAAKAANDUIDING\n"
 "    gegeven werd."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3349,26 +3511,31 @@ msgstr ""
 "    Opties:\n"
 "      -n NAAM     het signaal met deze naam sturen\n"
 "      -s NUMMER   het signaal met dit nummer sturen\n"
-"      -l          lijst met beschikbare signalen tonen; als na '-l' argumenten\n"
+"      -l          lijst met beschikbare signalen tonen; als na '-l' "
+"argumenten\n"
 "                    volgen, dan wordt voor elk nummer de bijbehorende naam\n"
 "                    getoond, en voor elke naam het bijbehorende nummer\n"
 "\n"
-"    'kill' is om  twee redenen een ingebouwde shell-opdracht: het accepteert\n"
-"    ook taakaanduidingen in plaats van alleen proces-ID's, en als het maximum\n"
+"    'kill' is om  twee redenen een ingebouwde shell-opdracht: het "
+"accepteert\n"
+"    ook taakaanduidingen in plaats van alleen proces-ID's, en als het "
+"maximum\n"
 "    aantal processen bereikt is hoeft u geen nieuw proces te starten om een\n"
 "    ander proces te elimineren.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3410,7 +3577,8 @@ msgstr ""
 "    De evaluatie gebeurt in gehele getallen zonder controle op overloop;\n"
 "    maar deling door nul wordt gedetecteerd en wordt getoond als een fout.\n"
 "\n"
-"    Onderstaande lijst toont de beschikbare operatoren in groepjes van gelijke\n"
+"    Onderstaande lijst toont de beschikbare operatoren in groepjes van "
+"gelijke\n"
 "    voorrang; de groepjes zijn gerangschikt volgens afnemende voorrang.\n"
 "\n"
 "        var++, var--    post-increment, post-decrement van variabele\n"
@@ -3433,9 +3601,12 @@ msgstr ""
 "\n"
 "        =, *=, /=, %=, +=, -=, <<=, >>=,  &=, ^=, |=    toewijzingen\n"
 "\n"
-"    Shell-variabelen zijn toegestaan als parameters.  De naam van een variabele\n"
-"    wordt vervangen door zijn waarde (zonodig omgezet naar een geheel getal).\n"
-"    Variabelen hoeven geen 'geheel getal'-eigenschap te hebben om gebruikt te\n"
+"    Shell-variabelen zijn toegestaan als parameters.  De naam van een "
+"variabele\n"
+"    wordt vervangen door zijn waarde (zonodig omgezet naar een geheel "
+"getal).\n"
+"    Variabelen hoeven geen 'geheel getal'-eigenschap te hebben om gebruikt "
+"te\n"
 "    kunnen worden in een expressie.\n"
 "\n"
 "    Operatoren worden geëvalueerd in volgorde van voorrang.  Subexpressies\n"
@@ -3445,18 +3616,22 @@ msgstr ""
 "    Als het laatste ARGUMENT evalueert tot 0, dan is de afsluitwaarde van\n"
 "    'let' 1; anders 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3468,61 +3643,80 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Een regel van standaardinvoer lezen en in velden opsplitsen.\n"
 "\n"
-"    Leest één regel van standaardinvoer (of van de gegeven bestandsdescriptor\n"
-"    als optie '-u' gegeven is) en wijst het eerste woord aan de eerste NAAM toe,\n"
-"    het tweede woord aan de tweede NAAM, en zo verder; de resterende woorden\n"
-"    worden toegewezen aan de laatste NAAM.  Alleen de tekens in de variabele\n"
-"    IFS worden herkend als woordscheidingstekens.  Als er geen namen gegeven\n"
+"    Leest één regel van standaardinvoer (of van de gegeven "
+"bestandsdescriptor\n"
+"    als optie '-u' gegeven is) en wijst het eerste woord aan de eerste NAAM "
+"toe,\n"
+"    het tweede woord aan de tweede NAAM, en zo verder; de resterende "
+"woorden\n"
+"    worden toegewezen aan de laatste NAAM.  Alleen de tekens in de "
+"variabele\n"
+"    IFS worden herkend als woordscheidingstekens.  Als er geen namen "
+"gegeven\n"
 "    zijn, wordt de gelezen regel opgeslagen in de variabele REPLY.\n"
 "\n"
 "    Opties:\n"
 "      -a ARRAY   de gelezen woorden toekennen aan de opeenvolgende posities\n"
 "                   van het genoemde array, beginnend bij index nul\n"
-"      -d TEKEN   doorgaan met lezen tot TEKEN gelezen wordt (i.p.v. LF-teken)\n"
+"      -d TEKEN   doorgaan met lezen tot TEKEN gelezen wordt (i.p.v. LF-"
+"teken)\n"
 "      -e         in een interactieve shell 'readline' gebruiken om de regel\n"
 "                   in te lezen\n"
 "      -i TEKST   door 'readline' te gebruiken begintekst\n"
-"      -n AANTAL  stoppen na maximaal dit aantal tekens gelezen te hebben, of\n"
-"                   na een LF-teken (i.p.v. altijd te wachten op een LF-teken)\n"
-"      -N AANTAL  alleen stoppen na dit aantal tekens gelezen te hebben, of na\n"
+"      -n AANTAL  stoppen na maximaal dit aantal tekens gelezen te hebben, "
+"of\n"
+"                   na een LF-teken (i.p.v. altijd te wachten op een LF-"
+"teken)\n"
+"      -N AANTAL  alleen stoppen na dit aantal tekens gelezen te hebben, of "
+"na\n"
 "                   EOF of tijdsoverschrijding, elk scheidingsteken negerend\n"
-"      -p PROMPT  deze tekenreeks tonen als prompt (zonder afsluitende nieuwe\n"
+"      -p PROMPT  deze tekenreeks tonen als prompt (zonder afsluitende "
+"nieuwe\n"
 "                   regel) alvorens te beginnen met lezen\n"
 "      -r         backslash-codes niet omzetten naar hun betekenis\n"
 "      -s         invoer die van een terminal komt niet echoën\n"
 "      -t AANTAL  na dit aantal seconden stoppen met wachten op invoer en\n"
 "                   afsluiten met een code groter dan 128; de waarde van de\n"
 "                   variabele TMOUT is de standaardwaarde voor het aantal te\n"
-"                   wachten seconden; het aantal mag drijvendepuntgetal zijn;\n"
-"                   als AANTAl 0 is, dan is 'read' alleen succesvol als er op\n"
+"                   wachten seconden; het aantal mag drijvendepuntgetal "
+"zijn;\n"
+"                   als AANTAl 0 is, dan is 'read' alleen succesvol als er "
+"op\n"
 "                   de betreffende bestandsdescriptor invoer beschikbaar is\n"
-"      -u BS.DS.  van deze bestandsdescriptor lezen i.p.v. van standaardinvoer\n"
+"      -u BS.DS.  van deze bestandsdescriptor lezen i.p.v. van "
+"standaardinvoer\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij einde-van-bestand (EOF) bereikt werd,\n"
 "    de tijdslimiet overschreden werd, of een ongeldige bestandsdescriptor\n"
 "    als argument van '-u' gegeven werd."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3543,7 +3737,8 @@ msgstr ""
 "    uitvoeren is."
 
 # Voor de duidelijkheid is de tekstvolgorde veranderd.
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3586,7 +3781,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3608,7 +3804,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3628,40 +3824,60 @@ msgid ""
 msgstr ""
 "Waarden van shell-opties of positionele parameters instellen.\n"
 "\n"
-"    Schakelt shell-eigenschappen in/uit, of verandert waarden van positionele\n"
-"    parameters.  Zonder opties of argumenten toont 'set' de namen en waarden\n"
-"    van alle gedefinieerde variabelen en functies, in een vorm die als invoer\n"
-"    hergebruikt kan worden.  De volgende opties zijn beschikbaar (een '+' in\n"
+"    Schakelt shell-eigenschappen in/uit, of verandert waarden van "
+"positionele\n"
+"    parameters.  Zonder opties of argumenten toont 'set' de namen en "
+"waarden\n"
+"    van alle gedefinieerde variabelen en functies, in een vorm die als "
+"invoer\n"
+"    hergebruikt kan worden.  De volgende opties zijn beschikbaar (een '+' "
+"in\n"
 "    plaats van een '-' schakelt de betreffende eigenschap _uit_ i.p.v. in):\n"
 "\n"
-"      -a  nieuwe of gewijzigde variabelen en functies automatisch exporteren\n"
+"      -a  nieuwe of gewijzigde variabelen en functies automatisch "
+"exporteren\n"
 "      -B  accoladevervanging uitvoeren (is standaard, b.v. a{b,c} -> ab ac)\n"
-"      -b  beëindiging van een taak direct melden (i.p.v. na huidige opdracht)\n"
+"      -b  beëindiging van een taak direct melden (i.p.v. na huidige "
+"opdracht)\n"
 "      -C  omleiding van uitvoer mag gewone bestanden niet overschrijven\n"
-"      -E  een 'trap' op ERR door laten werken in functies en dochterprocessen\n"
-"      -e  de shell afsluiten zodra afsluitwaarde van een opdracht niet nul is\n"
+"      -E  een 'trap' op ERR door laten werken in functies en "
+"dochterprocessen\n"
+"      -e  de shell afsluiten zodra afsluitwaarde van een opdracht niet nul "
+"is\n"
 "      -f  jokertekens voor bestandsnamen uitschakelen (geen 'globbing')\n"
 "      -H  geschiedenisopdracht '!' beschikbaar stellen (standaard)\n"
-"      -h  het volledige pad van opdrachten onthouden na eerste keer opzoeken\n"
+"      -h  het volledige pad van opdrachten onthouden na eerste keer "
+"opzoeken\n"
 "      -k  ook nakomende toewijzingen aan variabelen in de omgeving plaatsen\n"
 "      -m  taakbesturing beschikbaar stellen (standaard)\n"
 "      -n  opdrachten wel lezen maar niet uitvoeren (\"droogzwemmen\")\n"
-"      -o OPTIENAAM  deze optie inschakelen (zie verderop voor de lange namen)\n"
+"      -o OPTIENAAM  deze optie inschakelen (zie verderop voor de lange "
+"namen)\n"
 "      -P  fysieke paden volgen in plaats van symbolische koppelingen\n"
-"      -p  geprivilegeerde modus: de bestanden aangeduid door ENV en BASH_ENV\n"
-"          worden genegeerd, functies worden niet uit de omgeving geïmporteerd,\n"
-"          en ook eventuele SHELLOPTS worden genegeerd; modus wordt automatisch\n"
-"          ingeschakeld als effectieve en echte UID of GID niet overeenkomen;\n"
+"      -p  geprivilegeerde modus: de bestanden aangeduid door ENV en "
+"BASH_ENV\n"
+"          worden genegeerd, functies worden niet uit de omgeving "
+"geïmporteerd,\n"
+"          en ook eventuele SHELLOPTS worden genegeerd; modus wordt "
+"automatisch\n"
+"          ingeschakeld als effectieve en echte UID of GID niet "
+"overeenkomen;\n"
 "          uitschakelen maakt dan effectieve UID en GID gelijk aan de echte\n"
-"      -T  een 'trap' op DEBUG door laten werken in functies en dochterprocessen\n"
+"      -T  een 'trap' op DEBUG door laten werken in functies en "
+"dochterprocessen\n"
 "      -t  afsluiten na het lezen en uitvoeren van één opdracht\n"
 "      -u  het gebruik van niet-bestaande variabelen behandelen als een fout\n"
 "      -v  invoerregel weergeven (\"echoën\") zodra deze gelezen is\n"
-"      -x  elke opdracht met argumenten weergeven voordat deze wordt uitgevoerd\n"
-"      --  nakomende argumenten zijn positionele parameters; als er geen verdere\n"
-"          argumenten zijn, worden de bestaande positionele parameters gewist\n"
-"      -   opties -v en -x uitschakelen; nakomende argumenten zijn positionele\n"
-"          parameters; maar zonder argumenten worden de bestaande niet gewist\n"
+"      -x  elke opdracht met argumenten weergeven voordat deze wordt "
+"uitgevoerd\n"
+"      --  nakomende argumenten zijn positionele parameters; als er geen "
+"verdere\n"
+"          argumenten zijn, worden de bestaande positionele parameters "
+"gewist\n"
+"      -   opties -v en -x uitschakelen; nakomende argumenten zijn "
+"positionele\n"
+"          parameters; maar zonder argumenten worden de bestaande niet "
+"gewist\n"
 "\n"
 "    De opties kunnen ook gebruikt worden bij het starten van de shell.\n"
 "    De huidige toestand van de eigenschappen is te vinden in $-.  Eventuele\n"
@@ -3678,7 +3894,8 @@ msgstr ""
 "      hashall      == -h  (gevonden pad van opdrachten onthouden)\n"
 "      histexpand   == -H  ('!'-opdracht beschikbaar stellen)\n"
 "      history      opdrachtengeschiedenis beschikbaar stellen\n"
-"      ignoreeof    Ctrl-D negeren; de shell niet afsluiten bij lezen van EOF\n"
+"      ignoreeof    Ctrl-D negeren; de shell niet afsluiten bij lezen van "
+"EOF\n"
 "      interactive-comments  commentaar in interactieve opdrachten toestaan\n"
 "      keyword      == -k  (nakomende toewijzingen ook meenemen)\n"
 "      monitor      == -m  (taakbesturing beschikbaar stellen)\n"
@@ -3687,11 +3904,14 @@ msgstr ""
 "      noglob       == -f  (jokertekens uitschakelen)\n"
 "      nolog        (herkend maar genegeerd)\n"
 "      notify       == -b  (beëindiging van een taak direct melden)\n"
-"      nounset      == -u  (niet-bestaande variabelen als een fout beschouwen)\n"
+"      nounset      == -u  (niet-bestaande variabelen als een fout "
+"beschouwen)\n"
 "      onecmd       == -t  (afsluiten na uitvoeren van één opdracht)\n"
 "      physical     == -P  (fysieke paden volgen i.p.v. symbolische)\n"
-"      pipefail     de afsluitwaarde van een pijplijn gelijkmaken aan die van\n"
-"                     de laatste niet-succesvolle opdracht in de reeks, of aan\n"
+"      pipefail     de afsluitwaarde van een pijplijn gelijkmaken aan die "
+"van\n"
+"                     de laatste niet-succesvolle opdracht in de reeks, of "
+"aan\n"
 "                     0 als alle opdrachten succesvol waren\n"
 "      posix        de voorschriften van de POSIX-standaard strict volgen\n"
 "      privileged   == -p  (geprivilegeerde modus)\n"
@@ -3701,7 +3921,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3711,7 +3931,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3734,12 +3955,13 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n"
 "    NAAM alleen-lezen is."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3754,7 +3976,8 @@ msgstr ""
 "De export-eigenschap van shell-variabelen instellen.\n"
 "\n"
 "    Markeert elke gegeven naam voor automatische export naar de omgeving\n"
-"    van latere opdrachten.  Als een WAARDE gegeven is, dan wordt deze WAARDE\n"
+"    van latere opdrachten.  Als een WAARDE gegeven is, dan wordt deze "
+"WAARDE\n"
 "    toegekend alvorens te exporteren.\n"
 "\n"
 "    Opties:\n"
@@ -3766,7 +3989,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3788,7 +4011,8 @@ msgstr ""
 "Shell-variabelen als onveranderbaar markeren.\n"
 "\n"
 "    Markeert elke gegeven NAAM als alleen-lezen, zodat de waarde van deze\n"
-"    NAAM niet meer veranderd kan worden door een latere toewijzing.  Als een\n"
+"    NAAM niet meer veranderd kan worden door een latere toewijzing.  Als "
+"een\n"
 "    WAARDE gegeven is, dan deze WAARDE toekennen alvorens deze te fixeren.\n"
 "\n"
 "    Opties:\n"
@@ -3801,7 +4025,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3818,7 +4042,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0 tenzij N negatief is of groter dan $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3833,15 +4057,17 @@ msgid ""
 msgstr ""
 "Opdrachten uit bestand in de huidige shell uitvoeren.\n"
 "\n"
-"    Leest opdrachten uit het gegeven bestand en voert deze uit in de huidige\n"
+"    Leest opdrachten uit het gegeven bestand en voert deze uit in de "
+"huidige\n"
 "    shell.  De mappen in PATH worden nagezocht om het genoemde bestand te\n"
 "    vinden.  Als er verder nog argumenten gegeven zijn, dan worden dit de\n"
 "    positionele parameters tijdens de uitvoering van het genoemde bestand.\n"
 "\n"
-"    De afsluitwaarde is die van de laatst uitgevoerde opdracht in het gegeven\n"
+"    De afsluitwaarde is die van de laatst uitgevoerde opdracht in het "
+"gegeven\n"
 "    bestand, of 1 als dit bestand niet gelezen kan worden."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3863,10 +4089,11 @@ msgstr ""
 "    Optie:\n"
 "      -f   pauzering afdwingen, ook als dit een login-shell is\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij taakbeheer uitgeschakeld is of er een fout\n"
+"    De afsluitwaarde is 0, tenzij taakbeheer uitgeschakeld is of er een "
+"fout\n"
 "    optreedt."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3900,7 +4127,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3921,7 +4149,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3973,14 +4202,18 @@ msgstr ""
 "        -r BESTAND     waar als bestand voor u leesbaar is\n"
 "        -S BESTAND     waar als bestand een socket is\n"
 "        -s BESTAND     waar als bestand niet leeg is\n"
-"        -t DESCRIPTOR  waar als bestandsdescriptor geopend is op een terminal\n"
+"        -t DESCRIPTOR  waar als bestandsdescriptor geopend is op een "
+"terminal\n"
 "        -u BESTAND     waar als bestand SETUID is\n"
 "        -w BESTAND     waar als bestand voor u schrijfbaar is\n"
 "        -x BESTAND     waar als bestand door u uitvoerbaar is\n"
 "\n"
-"      BEST1 -nt BEST2  waar als eerste bestand later gewijzigd is dan tweede\n"
-"      BEST1 -ot BEST2  waar als eerste bestand eerder gewijzigd is dan tweede\n"
-"      BEST1 -ef BEST2  waar als eerste bestand harde koppeling is naar tweede\n"
+"      BEST1 -nt BEST2  waar als eerste bestand later gewijzigd is dan "
+"tweede\n"
+"      BEST1 -ot BEST2  waar als eerste bestand eerder gewijzigd is dan "
+"tweede\n"
+"      BEST1 -ef BEST2  waar als eerste bestand harde koppeling is naar "
+"tweede\n"
 "\n"
 "    Tekenreeksoperatoren:\n"
 "        -z REEKS       waar als tekenreeks leeg is\n"
@@ -3988,8 +4221,10 @@ msgstr ""
 "        REEKS          waar als tekenreeks niet leeg is\n"
 "      RKS1 = RKS2      waar als de tekenreeksen gelijk zijn\n"
 "      RKS1 != RKS2     waar als de tekenreeksen niet gelijk zijn\n"
-"      RKS1 < RKS2      waar als eerste reeks lexicografisch voor de tweede komt\n"
-"      RKS1 > RKS2      waar als eerste reeks lexicografisch na de tweede komt\n"
+"      RKS1 < RKS2      waar als eerste reeks lexicografisch voor de tweede "
+"komt\n"
+"      RKS1 > RKS2      waar als eerste reeks lexicografisch na de tweede "
+"komt\n"
 "\n"
 "    Andere operatoren:\n"
 "        -o OPTIE       waar als deze shell-optie ingeschakeld is\n"
@@ -4005,7 +4240,7 @@ msgstr ""
 "    De afsluitwaarde is 0 als EXPRESSIE waar is, 1 als EXPRESSIE onwaar is,\n"
 "    en 2 als een ongeldig argument gegeven werd."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4017,11 +4252,12 @@ msgstr ""
 "    Dit is een synoniem voor de ingebouwde functie 'test', behalve dat\n"
 "    het laatste argument een ']' moet zijn, horend bij de begin-'['."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4035,11 +4271,12 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is altijd 0."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4048,63 +4285,81 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Signalen en andere gebeurtenissen opvangen.\n"
 "\n"
 "    Definieert en activeert afhandelingsprocedures die uitgevoerd moeten\n"
 "    worden wanneer de shell een signaal of andere gebeurtenissen ontvangt.\n"
 "\n"
-"    ARGUMENT is een opdracht die gelezen en uitgevoerd wordt wanneer de shell\n"
-"    een van de opgegeven signalen ontvangt.  Als ARGUMENT ontbreekt en er één\n"
+"    ARGUMENT is een opdracht die gelezen en uitgevoerd wordt wanneer de "
+"shell\n"
+"    een van de opgegeven signalen ontvangt.  Als ARGUMENT ontbreekt en er "
+"één\n"
 "    signaal gegeven is, of wanneer ARGUMENT '-' is, dan worden de opgegeven\n"
 "    signalen teruggezet op de waarde die ze hadden bij het starten van deze\n"
 "    shell.  Als ARGUMENT de lege tekenreeks is, dan worden de opgegeven\n"
-"    signalen genegeerd door zowel deze shell als door alle dochterprocessen.\n"
+"    signalen genegeerd door zowel deze shell als door alle "
+"dochterprocessen.\n"
 "\n"
 "    Als EXIT (0) als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd\n"
 "    bij het afsluiten van de shell.  Als DEBUG als signaal opgegeven wordt,\n"
-"    dan wordt ARGUMENT uitgevoerd vóór elke enkelvoudige opdracht.  Als RETURN\n"
-"    als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd elke keer als\n"
-"    een functie (of een met 'source' aangeroepen script) terugkeert.  Als ERR\n"
-"    als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd elke keer als\n"
+"    dan wordt ARGUMENT uitgevoerd vóór elke enkelvoudige opdracht.  Als "
+"RETURN\n"
+"    als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd elke keer "
+"als\n"
+"    een functie (of een met 'source' aangeroepen script) terugkeert.  Als "
+"ERR\n"
+"    als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd elke keer "
+"als\n"
 "    de mislukking van een opdracht de shell zou beëindigen als optie '-e'\n"
 "    gegeven was.\n"
 "\n"
-"    Als er geen enkel argument gegeven is, dan toont 'trap' welke opdrachten\n"
+"    Als er geen enkel argument gegeven is, dan toont 'trap' welke "
+"opdrachten\n"
 "    er met welke signalen verbonden zijn.\n"
 "\n"
 "    Opties:\n"
 "      -l   een overzicht tonen van signaalnummers en hun namen\n"
 "      -p   voor elk gegeven signaal tonen welke opdracht ermee verbonden is\n"
 "\n"
-"    Signalen kunnen als naam of als nummer opgegeven worden, in hoofd- of in\n"
+"    Signalen kunnen als naam of als nummer opgegeven worden, in hoofd- of "
+"in\n"
 "    kleine letters, en het voorvoegsel 'SIG' is optioneel.  Merk op dat met\n"
-"    'kill -signaal $$' een signaal naar de huidige shell gestuurd kan worden.\n"
+"    'kill -signaal $$' een signaal naar de huidige shell gestuurd kan "
+"worden.\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie of SIGNAALAANDUIDING\n"
 "    gegeven werd."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4130,7 +4385,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Informatie tonen over een opdracht.\n"
 "\n"
@@ -4144,7 +4400,8 @@ msgstr ""
 "     -f   functies negeren, alsof ze niet gedefinieerd zijn\n"
 "     -P   naar elke gegeven naam zoeken in het huidige zoekpad (PATH), ook\n"
 "            als het een alias, ingebouwde shell-opdracht of functie is\n"
-"     -p   voor elke gegeven naam het volledige pad tonen van het bestand dat\n"
+"     -p   voor elke gegeven naam het volledige pad tonen van het bestand "
+"dat\n"
 "            uitgevoerd zou worden, of niets als er een alias, functie,\n"
 "            ingebouwde shell-opdracht of sleutelwoord met die naam is\n"
 "     -t   alleen het type van de opgegeven namen tonen: 'alias', 'builtin',\n"
@@ -4154,11 +4411,13 @@ msgstr ""
 "            als de naam onbekend is\\ \n"
 "    De afsluitwaarde is 0 als elke NAAM gevonden werd, anders 1."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4182,6 +4441,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4198,7 +4460,8 @@ msgid ""
 msgstr ""
 "Grenzen van hulpbronnen aanpassen.\n"
 "\n"
-"    Begrenst de beschikbare hulpbronnen voor processen gestart door deze shell\n"
+"    Begrenst de beschikbare hulpbronnen voor processen gestart door deze "
+"shell\n"
 "    -- op systemen die zulke begrenzing toestaan.\n"
 "\n"
 "    Opties:\n"
@@ -4209,9 +4472,11 @@ msgstr ""
 "      -c    de maximum grootte van een core-bestand (in kB)\n"
 "      -d    de maximum hoeveelheid gegevensgeheugen van een proces (in kB)\n"
 "      -e    de maximum procespriotiteit (de 'nice'-waarde)\n"
-"      -f    de maximum grootte van bestanden geschreven door shell of dochters\n"
+"      -f    de maximum grootte van bestanden geschreven door shell of "
+"dochters\n"
 "      -i    het maximum aantal nog wachtende signalen\n"
-"      -l    de maximum hoeveelheid geheugen die een proces mag vastpinnen (kB)\n"
+"      -l    de maximum hoeveelheid geheugen die een proces mag vastpinnen "
+"(kB)\n"
 "      -m    de maximum hoeveelheid fysiek geheugen van een proces (in kB)\n"
 "      -n    het maximum aantal open bestandsdescriptors\n"
 "      -p    de maximum grootte van een pijpbuffer\n"
@@ -4230,13 +4495,15 @@ msgstr ""
 "    Als geen optie gegeven is, dan wordt optie '-f' aangenomen.\n"
 "\n"
 "    De waardes gaan in stappen van 1024 bytes, behalve voor '-t', die in\n"
-"    seconden is, voor '-p', die in stappen van 512 bytes gaat, en voor '-u',\n"
+"    seconden is, voor '-p', die in stappen van 512 bytes gaat, en voor '-"
+"u',\n"
 "    dat een ongeschaald aantal is.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4255,45 +4522,54 @@ msgid ""
 msgstr ""
 "Het bestandsaanmaakmasker tonen of instellen.\n"
 "\n"
-"    Stelt het bestandsaanmaakmasker van de gebruiker in op de gegeven MODUS.\n"
-"    Als MODUS ontbreekt, dan wordt de huidige waarde van het masker getoond.\n"
+"    Stelt het bestandsaanmaakmasker van de gebruiker in op de gegeven "
+"MODUS.\n"
+"    Als MODUS ontbreekt, dan wordt de huidige waarde van het masker "
+"getoond.\n"
 "\n"
-"    Als MODUS begint met een cijfer, wordt het begrepen als een octaal getal,\n"
+"    Als MODUS begint met een cijfer, wordt het begrepen als een octaal "
+"getal,\n"
 "    anders als een symbolische modus-tekenreeks zoals chmod (1) die kent.\n"
 "\n"
 "    Opties:\n"
-"      -p   als invoer herbruikbare uitvoer produceren (indien MODUS ontbreekt)\n"
+"      -p   als invoer herbruikbare uitvoer produceren (indien MODUS "
+"ontbreekt)\n"
 "      -S   symbolische uitvoer produceren; anders octale getallen\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij MODUS ongeldig is of een ongeldige optie\n"
 "    gegeven werd."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Op taakafsluiting wachten en de afsluitwaarde rapporteren.\n"
 "\n"
 "    Wacht op het proces aangeduid door ID -- dat een taakaanduiding of een\n"
 "    proces-ID mag zijn -- en rapporteert diens afsluitwaarde.  Als geen ID\n"
-"    gegeven is, dan wordt er gewacht op alle actieve dochterprocessen, en is\n"
-"    de afsluitwaarde van 'wait' automatisch 0.  Als ID een taakaanduiding is,\n"
+"    gegeven is, dan wordt er gewacht op alle actieve dochterprocessen, en "
+"is\n"
+"    de afsluitwaarde van 'wait' automatisch 0.  Als ID een taakaanduiding "
+"is,\n"
 "    dan wordt er gewacht op alle processen in de pijplijn van die taak.\n"
 "\n"
 "    De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n"
 "    ongeldige optie gegeven werd."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4302,12 +4578,14 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Op procesafsluiting wachten en de afsluitwaarde rapporteren.\n"
 "\n"
-"    Wacht op het proces aangeduid door ID en rapporteert diens afsluitwaarde.\n"
+"    Wacht op het proces aangeduid door ID en rapporteert diens "
+"afsluitwaarde.\n"
 "    Als geen PID gegeven is, dan wordt er gewacht op alle momenteel actieve\n"
 "    dochterprocessen, en is de afsluitwaarde van 'wait' automatisch 0.  PID\n"
 "    moet een proces-ID zijn.\n"
@@ -4315,7 +4593,7 @@ msgstr ""
 "    De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n"
 "    ongeldige optie gegeven werd."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4336,7 +4614,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4363,7 +4641,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4400,7 +4678,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4427,7 +4705,7 @@ msgstr ""
 "    overdraagbare standaardopmaak.\n"
 "    De afsluitwaarde is die van de PIJPLIJN."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4445,16 +4723,21 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4465,15 +4748,17 @@ msgstr ""
 "    Voert eerst de opdrachten na 'if' uit; als de afsluitwaarde daarvan\n"
 "    nul is, dan worden de opdrachten na de eerste 'then' uitgevoerd; anders\n"
 "    de opdrachten na de eerstvolgende 'elif' (indien aanwezig) of de 'else'\n"
-"    (indien aanwezig).  Als de afsluitwaarde van de opdrachten na een 'elif'\n"
+"    (indien aanwezig).  Als de afsluitwaarde van de opdrachten na een "
+"'elif'\n"
 "    nul is, dan worden de opdrachten na de bijbehorende 'then' uitgevoerd.\n"
 "    Als er geen verdere 'elif' of 'else' meer is, of zodra de opdrachten na\n"
 "    een 'then' zijn uitgevoerd, is de 'if'-opdracht voltooid.\n"
 "\n"
-"    De afsluitwaarde van de gehele opdracht is die van de laatst uitgevoerde\n"
+"    De afsluitwaarde van de gehele opdracht is die van de laatst "
+"uitgevoerde\n"
 "    deelopdracht, of nul als geen enkele 'if' of 'elif' nul opleverde."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4490,7 +4775,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4507,7 +4792,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4528,12 +4813,13 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de OPDRACHT."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4549,7 +4835,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 0, tenzij NAAM onveranderbaar is."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4566,7 +4852,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de laatst uitgevoerde opdracht."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4590,7 +4876,7 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is die van de hervatte taak."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4607,13 +4893,16 @@ msgstr ""
 "\n"
 "    De afsluitwaarde is 1 als de EXPRESSIE tot 0 evalueert; anders 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4633,27 +4922,33 @@ msgid ""
 msgstr ""
 "Een voorwaardelijke opdracht uitvoeren.\n"
 "\n"
-"    Evalueert de gegeven conditionele expressie; afhankelijk van het resultaat\n"
-"    is de afsluitwaarde 0 (\"waar\") of 1 (\"onwaar\").  De expressies bestaan uit\n"
-"    dezelfde basiscomponenten als die van ingebouwde opdracht 'test', en kunnen\n"
+"    Evalueert de gegeven conditionele expressie; afhankelijk van het "
+"resultaat\n"
+"    is de afsluitwaarde 0 (\"waar\") of 1 (\"onwaar\").  De expressies "
+"bestaan uit\n"
+"    dezelfde basiscomponenten als die van ingebouwde opdracht 'test', en "
+"kunnen\n"
 "    worden gecombineerd met de volgende operatoren:\n"
 "\n"
 "        ( EXPRESSIE )     de waarde van de gegeven expressie\n"
 "        ! EXPRESSIE       waar als EXPRESSIE onwaar is, anders onwaar\n"
-"        EXPR1 && EXPR2    waar als beide expressies waar zijn, anders onwaar\n"
-"        EXPR1 || EXPR2    onwaar als beide expressies onwaar zijn, anders waar\n"
+"        EXPR1 && EXPR2    waar als beide expressies waar zijn, anders "
+"onwaar\n"
+"        EXPR1 || EXPR2    onwaar als beide expressies onwaar zijn, anders "
+"waar\n"
 "\n"
 "    Als '==' of '!=' als operator gebruikt wordt, dan wordt de rechter\n"
 "    tekenreeks als patroon begrepen en wordt patroonherkenning uitgevoerd.\n"
 "    Als '=~' als operator gebruikt wordt, dan wordt de rechter tekenreeks\n"
 "    als een reguliere expressie begrepen.\n"
 "\n"
-"    De operatoren '&&' en '||' evalueren de tweede expressie níét als de waarde\n"
+"    De operatoren '&&' en '||' evalueren de tweede expressie níét als de "
+"waarde\n"
 "    van de eerste voldoende is om het eindresulaat te bepalen. \n"
 "\n"
 "    De afsluitwaarde is 0 of 1, afhankelijk van EXPRESSIE."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4712,46 +5007,62 @@ msgstr ""
 "    lijst worden de elementen van elkaar gescheiden door dubbele punten.)\n"
 "\n"
 "    BASH_VERSION  versie-informatie van deze 'bash'\n"
-"    CDPATH        lijst van mappen om te doorzoeken wanneer het argument van\n"
+"    CDPATH        lijst van mappen om te doorzoeken wanneer het argument "
+"van\n"
 "                    'cd' niet in de huidige map voorkomt\n"
-"    GLOBIGNORE    lijst van patronen die de bestandsnamen beschrijven die bij\n"
+"    GLOBIGNORE    lijst van patronen die de bestandsnamen beschrijven die "
+"bij\n"
 "                    bestandsnaamjokertekenexpansie genegeerd moeten worden\n"
 "    HISTFILE      naam van het bestand dat uw opdrachtengeschiedenis bevat\n"
-"    HISTFILESIZE  maximum aantal regels dat geschiedenisbestand mag bevatten\n"
+"    HISTFILESIZE  maximum aantal regels dat geschiedenisbestand mag "
+"bevatten\n"
 "    HISTIGNORE    lijst van patronen die niet in geschiedenis moeten komen\n"
-"    HISTSIZE      maximum aantal geschiedenisregels dat huidige shell gebruikt\n"
+"    HISTSIZE      maximum aantal geschiedenisregels dat huidige shell "
+"gebruikt\n"
 "    HOME          het volledige pad naar uw thuismap\n"
-"    HOSTNAME      de naam van de computer waarop deze 'bash' wordt uitgevoerd\n"
+"    HOSTNAME      de naam van de computer waarop deze 'bash' wordt "
+"uitgevoerd\n"
 "    HOSTTYPE      de soort CPU waarop deze 'bash' wordt uitgevoerd\n"
 "    IGNOREEOF     het aantal te negeren Ctrl-D's alvorens de shell afsluit\n"
 "    MACHTYPE      de soort machine waarop deze 'bash' wordt uitgevoerd\n"
 "    MAILCHECK     hoe vaak (in seconden) 'bash' controleert op nieuwe mail\n"
-"    MAILPATH      lijst van bestandsnamen die 'bash' controleert op nieuwe mail\n"
+"    MAILPATH      lijst van bestandsnamen die 'bash' controleert op nieuwe "
+"mail\n"
 "    OSTYPE        de soort Unix waarop deze 'bash' wordt uitgevoerd\n"
 "    PATH          lijst van mappen waar opdrachten in gezocht moeten worden\n"
-"    PROMPT_COMMAND  uit te voeren opdracht vóór het tonen van primaire prompt\n"
+"    PROMPT_COMMAND  uit te voeren opdracht vóór het tonen van primaire "
+"prompt\n"
 "    PS1           tekenreeks die primaire prompt beschrijft\n"
-"    PS2           tekenreeks die secundaire prompt beschrijft (standaard '> ')\n"
+"    PS2           tekenreeks die secundaire prompt beschrijft (standaard '> "
+"')\n"
 "    PWD           het volledige pad van de huidige map\n"
 "    SHELLOPTS     lijst van ingeschakelde shell-opties\n"
 "    TERM          soortnaam van de huidige terminal\n"
 "    TIMEFORMAT    opmaakvoorschrift voor de uitvoer van 'time'\n"
-"    auto_resume   niet-leeg betekent dat één opdrachtwoord op de opdrachtregel\n"
-"                    eerst opgezocht wordt in de lijst van gepauzeerde taken,\n"
-"                    en indien daar gevonden, dan wordt die taak in de voorgrond\n"
-"                    geplaatst; de waarde 'exact' betekent dat het gegeven woord\n"
-"                    exact moet overeenkomen met een opdracht in de lijst van\n"
-"                    gepauzeerde taken; de waarde 'substring' betekent dat een\n"
+"    auto_resume   niet-leeg betekent dat één opdrachtwoord op de "
+"opdrachtregel\n"
+"                    eerst opgezocht wordt in de lijst van gepauzeerde "
+"taken,\n"
+"                    en indien daar gevonden, dan wordt die taak in de "
+"voorgrond\n"
+"                    geplaatst; de waarde 'exact' betekent dat het gegeven "
+"woord\n"
+"                    exact moet overeenkomen met een opdracht in de lijst "
+"van\n"
+"                    gepauzeerde taken; de waarde 'substring' betekent dat "
+"een\n"
 "                    overeenkomst met een deeltekenreeks voldoende is; elke\n"
-"                    andere waarde betekent dat het gegeven woord aan het begin\n"
+"                    andere waarde betekent dat het gegeven woord aan het "
+"begin\n"
 "                    moet staan van de opdracht van een gepauzeerde taak\n"
 "    histchars     tekens die geschiedenisexpansie en -vervanging besturen;\n"
 "                    het eerste teken is het geschiedenisvervangingsteken,\n"
 "                    gewoonlijk '!'; het tweede teken is het snelle\n"
-"                    vervangingsteken, gewoonlijk '^'; het derde teken is het\n"
+"                    vervangingsteken, gewoonlijk '^'; het derde teken is "
+"het\n"
 "                    geschiedeniscommentaarteken, gewoonlijk '#'\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4804,7 +5115,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n"
 "    mapwijziging mislukte."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4853,7 +5164,7 @@ msgstr ""
 "    De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n"
 "    mapwijziging mislukte."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4870,10 +5181,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4888,7 +5201,8 @@ msgstr ""
 "      -c   de mappenstapel wissen door alle elementen te verwijderen\n"
 "      -l   paden volledig tonen, niet afgekort ten opzichte van uw thuismap\n"
 "      -p   de mappenstapel tonen met één item per regel\n"
-"      -v   als '-p', maar met elk item voorafgegeaan wordt door zijn positie\n"
+"      -v   als '-p', maar met elk item voorafgegeaan wordt door zijn "
+"positie\n"
 "             in de stapel\n"
 "\n"
 "    Argumenten:\n"
@@ -4897,15 +5211,17 @@ msgstr ""
 "      -N   Het N-de item tonen, tellend vanaf rechts, van de lijst getoond\n"
 "           door 'dirs' wanneer opgeroepen zonder opties, beginnend bij nul.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4922,24 +5238,28 @@ msgstr ""
 "Shell-opties in- of uitschakelen.\n"
 "\n"
 "    Stelt de waarde in elke gegeven OPTIENAAM -- van een shell-optie die\n"
-"    bepaald shell-gedrag beïnvloedt.  Zonder opties wordt een lijst van alle\n"
+"    bepaald shell-gedrag beïnvloedt.  Zonder opties wordt een lijst van "
+"alle\n"
 "    instelbare opties getoond, met bij elke optie de vermelding of deze al\n"
 "    dan niet ingeschakeld is.\n"
 "\n"
 "    Opties:\n"
-"      -o   de verzameling mogelijke OPTIENAMEN naar diegene die gedefinieerd\n"
+"      -o   de verzameling mogelijke OPTIENAMEN naar diegene die "
+"gedefinieerd\n"
 "             zijn voor gebruik met 'set -o'\n"
 "      -p   uitvoer produceren die herbruikbaar is als invoer\n"
 "      -q   uitvoer onderdrukken\n"
 "      -s   elke gegeven OPTIENAAM inschakelen\n"
 "      -u   elke gegeven OPTIENAAM uitschakelen\n"
 "\n"
-"    Zonder opties (of met alleen '-q') is de afsluitwaarde 0 indien OPTIENAAM\n"
+"    Zonder opties (of met alleen '-q') is de afsluitwaarde 0 indien "
+"OPTIENAAM\n"
 "    ingeschakeld is, 1 indien uitgeschakeld.  De afsluitwaarde is ook 1 als\n"
 "    een ongeldige optienaam gegeven werd, en de afsluitwaarde is 2 als een\n"
 "    ongeldige optie gegeven werd."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -4947,22 +5267,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Argumenten volgens een opmaakvoorschrift opmaken en printen.\n"
@@ -4985,15 +5311,18 @@ msgstr ""
 "    kan worden.  Verder betekent %(OPMAAK)T dat datum-plus-tijd getoond\n"
 "    moet worden door deze opmaak aan strftime(3) mee te geven.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5015,7 +5344,8 @@ msgstr ""
 "Aangeven hoe argumenten door 'readline' gecompleteerd moeten worden.\n"
 "\n"
 "    Geeft voor elke gegeven NAAM aan hoe de argumenten gecompleteerd dienen\n"
-"    te worden.  Zonder opties worden de bestaande completeringsvoorschriften\n"
+"    te worden.  Zonder opties worden de bestaande "
+"completeringsvoorschriften\n"
 "    getoond (in een vorm die als invoer hergebruikt kan worden).\n"
 "\n"
 "    Opties:\n"
@@ -5031,15 +5361,17 @@ msgstr ""
 "    de volgorde van de bovenstaande hoofdletteropties.  Optie '-D' gaat\n"
 "    voor optie '-E'.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5051,16 +5383,20 @@ msgstr ""
 "    genereert.  Als het optionele argument WOORD aanwezig is, worden alleen\n"
 "    de daarbij passende completeringen gegenereerd.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er een\n"
+"    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er "
+"een\n"
 "    fout optrad."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5084,7 +5420,8 @@ msgstr ""
 "Completeringsopties wijzigen of tonen.\n"
 "\n"
 "    Wijzigt de completeringsopties van elke gegeven NAAM, of als geen NAAM\n"
-"    gegeven is, die van de huidige completering.  Als geen OPTIE gegeven is,\n"
+"    gegeven is, die van de huidige completering.  Als geen OPTIE gegeven "
+"is,\n"
 "    dan worden de completeringsopties van elke gegeven NAAM getoond, of die\n"
 "    van de huidige completering.\n"
 "\n"
@@ -5097,29 +5434,37 @@ msgstr ""
 "\n"
 "    Elke NAAM dient te refereren aan een opdracht waarvoor reeds een\n"
 "    completeringsvoorschrift gedefinieerd is via de opdracht 'complete'.\n"
-"    Als geen NAAM gegeven is, dan dient 'compopt' aangeroepen te worden door\n"
-"    een functie die momenteel completeringen genereert; dan worden de opties\n"
+"    Als geen NAAM gegeven is, dan dient 'compopt' aangeroepen te worden "
+"door\n"
+"    een functie die momenteel completeringen genereert; dan worden de "
+"opties\n"
 "    voor die draaiende completeringsgenerator gewijzigd.\n"
 "\n"
 "    De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of voor\n"
 "    NAAM geen completeringsvoorschrift gedefinieerd is."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5129,11 +5474,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Regels inlezen in een geïndexeerde array-variabele.\n"
@@ -5145,13 +5492,17 @@ msgstr ""
 "      -n AANTAL    maximaal dit aantal regels kopiëren (0 = alles)\n"
 "      -O BEGIN     met toekennen beginnen bij deze index (standaard 0)\n"
 "      -s AANTAL    dit aantal regels overslaan\n"
-"      -t           nieuweregelteken aan eind van elke gelezen regel verwijderen\n"
-"      -u BES.DES.  uit deze bestandsdescriptor lezen i.p.v. uit standaardinvoer\n"
+"      -t           nieuweregelteken aan eind van elke gelezen regel "
+"verwijderen\n"
+"      -u BES.DES.  uit deze bestandsdescriptor lezen i.p.v. uit "
+"standaardinvoer\n"
 "      -C FUNCTIE   deze functie evalueren na elke HOEVEELHEID regels\n"
-"      -c HOEVEELHEID  het aantal te lezen regels voor elke aanroep van FUNCTIE\n"
+"      -c HOEVEELHEID  het aantal te lezen regels voor elke aanroep van "
+"FUNCTIE\n"
 "\n"
 "    Argument:\n"
-"      ARRAY        naam van array-variabele waarin regels ingelezen moeten worden\n"
+"      ARRAY        naam van array-variabele waarin regels ingelezen moeten "
+"worden\n"
 "\n"
 "    Als '-C' gegeven is zonder '-c', is de standaard-HOEVEELHEID 5000.\n"
 "    Wanneer FUNCTIE aangeroepen wordt, dan wordt hieraan de index van het\n"
@@ -5161,10 +5512,11 @@ msgstr ""
 "    Als geen expliciet BEGIN gegeven is, wordt het array gewist alvorens\n"
 "    met toekennen te beginnen.\n"
 "\n"
-"    De afsluitwaarde is 0, tenzij ARRAY alleen-lezen is of geen array is, of\n"
+"    De afsluitwaarde is 0, tenzij ARRAY alleen-lezen is of geen array is, "
+"of\n"
 "    een ongeldige optie gegeven werd."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index bf26b62623d0670eebc03e9d589cf215f05ae146..aff383d32c263e1f8fce663a25e45bd9cf46047d 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index b6c8838fec82dfc8d966f92342799bb8bc8700de..7a9cfcdc2d895c28b0f0bcaf0c83bfa64b84f985 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-03-20 12:53+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -16,53 +16,55 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "nieprawid³owy indeks tablicy"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: nie mo¿na przekszta³ciæ tablicy indeksowanej na asocjacyjn±"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: b³êdny klucz tablicy asocjacyjnej"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: nie mo¿na przypisaæ do nienumerycznego indeksu"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: przy przypisaniu do tablicy asocjacyjnej nale¿y u¿yæ nawiasów"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nie mo¿na utworzyæ: %s"
 
 # ???
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: nie mo¿na znale¼æ mapy klawiszy dla polecenia"
+msgstr ""
+"bash_execute_unix_command: nie mo¿na znale¼æ mapy klawiszy dla polecenia"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: pierwszym drukowalnym znakiem nie jest `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "brak zamykaj±cego `%c' w %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: brak separuj±cego dwukropka"
@@ -72,38 +74,38 @@ msgstr "%s: brak separuj
 msgid "`%s': invalid alias name"
 msgstr "`%s': b³êdna nazwa aliasu"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "edycja wiersza nie zosta³a w³±czona"
 
 # ???
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': nieprawid³owa nazwa mapy klawiszy"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nie mo¿na odczytaæ: %s"
 
 # ???
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': nie mo¿na usun±æ dowi±zania"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': nie znana nazwa funkcji"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s nie jest przypisany do ¿adnego klawisza.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s mo¿e byæ wywo³any przez "
@@ -126,11 +128,15 @@ msgstr ""
 "    \n"
 "    Bez WYRA¯ENIA zwraca "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "Nie ustawiono HOME"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "za du¿o argumentów"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "Nie ustawiono OLDPWD"
 
@@ -139,7 +145,7 @@ msgstr "Nie ustawiono OLDPWD"
 msgid "line %d: "
 msgstr "linia %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "uwaga: "
@@ -149,11 +155,7 @@ msgstr "uwaga: "
 msgid "%s: usage: "
 msgstr "%s: sk³adnia: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "za du¿o argumentów"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: opcja wymaga argumentu"
@@ -168,7 +170,7 @@ msgstr "%s: wymagany argument numeryczny"
 msgid "%s: not found"
 msgstr "%s: nie znaleziono"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: nieprawid³owa opcja"
@@ -178,7 +180,7 @@ msgstr "%s: nieprawid
 msgid "%s: invalid option name"
 msgstr "%s: nieprawid³owa nazwa opcji"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': nieprawid³owy identyfikator"
@@ -191,7 +193,7 @@ msgstr "b
 msgid "invalid hex number"
 msgstr "b³êdna liczba szesnastkowa"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "nieprawid³owa liczba"
 
@@ -205,7 +207,7 @@ msgstr "%s: nieprawid
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': nie jest to nr PID ani prawid³owe okre¶lenie zadania"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: zmienna tylko do odczytu"
@@ -277,26 +279,26 @@ msgstr "%s: b
 msgid "%s: ambiguous job spec"
 msgstr "%s: niejednoznaczne okre¶lenie zadania"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: nieprawid³owa nazwa akcji"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: brak definicji dla uzupe³nienia"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "uwaga: opcja -F mo¿e dzia³aæ inaczej ni¿ oczekiwano"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "uwaga: opcja -C mo¿e dzia³aæ inaczej ni¿ oczekiwano"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "aktualnie nie jest wykonywana funkcja dope³niania"
 
@@ -308,7 +310,7 @@ msgstr "mo
 msgid "cannot use `-f' to make functions"
 msgstr "nie mo¿na u¿ywaæ `-f' do tworzenia funkcji"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcja tylko do odczytu"
@@ -318,7 +320,7 @@ msgstr "%s: funkcja tylko do odczytu"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: nie mo¿na w ten sposób unicestwiæ zmiennej tablicowej"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: nie mo¿na przekszta³ciæ tablicy asocjacyjnej na indeksowan±"
@@ -347,8 +349,8 @@ msgstr "%s: nie jest 
 msgid "%s: cannot delete: %s"
 msgstr "%s: nie mo¿na usun±æ: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: jest katalogiem"
@@ -363,8 +365,7 @@ msgstr "%s: nie jest zwyk
 msgid "%s: file is too large"
 msgstr "%s: plik jest za du¿y"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nie mo¿na uruchomiæ pliku binarnego"
@@ -449,7 +450,8 @@ msgstr[2] "Polecenia pow
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
 "¿aden temat pomocy nie pasuje do `%s'. Spróbuj `help help', `man -k %s'\n"
 "lub `info %s'."
@@ -474,7 +476,8 @@ msgstr ""
 "zobaczyæ listê.\n"
 "Napisz `help nazwa', aby otrzymaæ wiêcej informacji o funkcji `nazwa'.\n"
 "U¿yj `info bash', aby otrzymaæ wiêcej informacji ogólnych o pow³oce.\n"
-"U¿yj `man -k' lub `info', aby otrzymaæ wiêcej informacji o poleceniach z tej\n"
+"U¿yj `man -k' lub `info', aby otrzymaæ wiêcej informacji o poleceniach z "
+"tej\n"
 "listy.\n"
 "\n"
 "Gwiazdka (*) po nazwie oznacza, ¿e dane polecenie jest wy³±czone.\n"
@@ -488,7 +491,7 @@ msgstr "nie mo
 msgid "history position"
 msgstr "pozycja historii"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: rozwiniêcie wg historii nie powiod³o siê"
@@ -511,7 +514,7 @@ msgstr "%s: argumentami musz
 msgid "Unknown error"
 msgstr "Nieznany b³±d"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "spodziewano siê wyra¿enia"
 
@@ -520,12 +523,12 @@ msgstr "spodziewano si
 msgid "%s: not an indexed array"
 msgstr "%s: nie jest tablic± indeksowan±"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: nieprawid³owo okre¶lony deskryptor pliku"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: nieprawid³owy deskryptor pliku: %s"
@@ -553,31 +556,31 @@ msgstr "pusta nazwa zmiennej tablicowej"
 msgid "array variable support required"
 msgstr "wymagana obs³uga zmiennych tablicowych"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': brak znaku formatuj±cego"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': b³êdne okre¶lenie formatu czasu"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': nieprawid³owy znak formatuj±cy"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "uwaga: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "brak cyfry szesnastkowej dla \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "brak cyfry unikodowej dla \\%c"
@@ -613,10 +616,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Wypisanie listy aktualnie pamiêtanych katalogów. Katalogi umieszczane s±\n"
@@ -624,7 +629,8 @@ msgstr ""
 "    za pomoc± polecenia `popd'.\n"
 "    \n"
 "    Opcje:\n"
-"      -c\twyczyszczenie stosu katalogów poprzez usuniêcie wszystkich elementów\n"
+"      -c\twyczyszczenie stosu katalogów poprzez usuniêcie wszystkich "
+"elementów\n"
 "      -l\tniewypisywanie katalogów wzglêdem kat. domowego u¿ytkownika\n"
 "    \tw postaci skróconej z tyld±\n"
 "      -p\twypisanie stosu katalogów po jednym wpisie w linii\n"
@@ -721,17 +727,17 @@ msgstr ""
 "    \n"
 "    Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: nieprawid³owo okre¶lony limit czasu"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "b³±d odczytu: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "wyj¶cie przez `return' mo¿liwe tylko z funkcji lub skryptu"
 
@@ -739,17 +745,17 @@ msgstr "wyj
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "nie mo¿na jednocze¶nie anulowaæ definicji funkcji i zmiennej"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: nie mo¿na anulowaæ definicji"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: nie mo¿na anulowaæ definicji: %s jest tylko do odczytu"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: nie jest zmienn± tablicow±"
@@ -763,11 +769,11 @@ msgstr "%s: nie jest funkcj
 msgid "shift count"
 msgstr "licznik przesuniêcia"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "nie mo¿na opcji pow³oki jednocze¶nie ustawiæ i uniewa¿niæ"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: nieprawid³owa nazwa opcji pow³oki"
@@ -809,7 +815,7 @@ msgstr "%s jest funkcj
 msgid "%s is a shell builtin\n"
 msgstr "%s jest wewnêtrznym poleceniem pow³oki\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s jest %s\n"
@@ -819,26 +825,26 @@ msgstr "%s jest %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "¶cie¿ka do %s jest zapamiêtana (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: nieprawid³owy argument stanowi±cy ograniczenie"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': z³e polecenie"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: nie mo¿na odczytaæ ograniczenia: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "ograniczenie"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: nie mo¿na zmieniæ ograniczenia: %s"
@@ -857,7 +863,7 @@ msgstr "`%c': nieprawid
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': nieprawid³owy znak trybu symbolicznego"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " linia "
 
@@ -871,23 +877,23 @@ msgstr "ostatnie polecenie: %s\n"
 msgid "Aborting..."
 msgstr "Przerywanie..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "nieznany b³±d polecenia"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "z³y rodzaj polecenia"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "z³y ³±cznik"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "z³y skok"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: nieustawiona zmienna"
@@ -902,103 +908,119 @@ msgstr "\aprzekroczony czas oczekiwania na dane wej
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "nie mo¿na przekierowaæ standardowego wej¶cia z /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': nieprawid³owy znak formatuj±cy"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "b³±d potoku"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: ograniczony: nie mo¿na podawaæ `/' w nazwach poleceñ"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: nie znaleziono polecenia"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: z³y interpreter"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: nie mo¿na uruchomiæ pliku binarnego"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s jest wewnêtrznym poleceniem pow³oki\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nie mo¿na skopiowaæ deskryptora pliku %d do %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "przekroczone ograniczenie poziomu rekursji dla wyra¿enia"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "niedomiar stosu rekursji"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "b³±d sk³adniowy w wyra¿eniu"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "próba przypisania do nie-zmiennej"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "dzielenie przez 0"
 
 # ???
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "b³±d: z³y prefiks operatora przypisuj±cego"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "spodziewano siê `:' w wyra¿eniu warunkowym"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "wyk³adnik mniejszy ni¿ 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr "spodziewany identyfikator po operatorze preinkrementacji lub predekrementacji"
+msgstr ""
+"spodziewany identyfikator po operatorze preinkrementacji lub predekrementacji"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "brakuj±cy `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "b³±d sk³adni: spodziewany argument"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "b³±d sk³adni: nieprawid³owy operator arytmetyczny"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (b³êdny znacznik to \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "nieprawid³owa podstawa arytmetyczna"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "warto¶æ za du¿a na podstawê"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: b³±d w wyra¿eniu\n"
@@ -1007,164 +1029,165 @@ msgstr "%s: b
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: niemo¿liwy dostêp do katalogów nadrzêdnych"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "nie mo¿na wy³±czyæ trybu nieblokuj±cego dla deskryptora %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "nie mo¿na przydzieliæ nowego deskryptora pliku dla wej¶cia basha z %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: bufor dla nowego deskryptora %d ju¿ istnieje"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
 # ???
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "proces o PID %d wystêpuje w dzia³aj±cym zadaniu %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "usuwanie zatrzymanego zadania %d z grup± procesów %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) w potoku"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) oznaczony jako nadal ¿ywy"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: brak takiego PID-u"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Sygna³ %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Zakoñczono"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Zatrzymano"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Zatrzymano(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Dzia³a"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Zakoñczono(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Kod wyj¶cia %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Stan nieznany"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(zrzut pamiêci) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (katalog: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid potomka (%ld na %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: PID %ld nie jest potomkiem tej pow³oki"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Brak rekordu dla procesu %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: zadanie %d jest zatrzymane"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: zadanie zosta³o przerwane"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: zadanie %d ju¿ pracuje w tle"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr "waitchld: wy³±czanie WNOHANG w celu unikniêcia nieskoñczonego oczekiwania"
+msgstr ""
+"waitchld: wy³±czanie WNOHANG w celu unikniêcia nieskoñczonego oczekiwania"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: linia %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (zrzut pamiêci)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(katalog: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp nie powiod³o siê"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: dyscyplina linii"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nie mo¿na ustawiæ grupy procesów terminala (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "w tej pow³oce nie ma kontroli zadañ"
 
@@ -1234,7 +1257,7 @@ msgstr "register_alloc: %p ju
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p ju¿ znajduje siê w tablicy jako wolny?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "nieprawid³owa podstawa"
 
@@ -1257,22 +1280,22 @@ msgstr "%s: 
 msgid "network operations not supported"
 msgstr "operacje sieciowe nie s± wspierane"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: nie mo¿na zmieniæ lokalizacji (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: nie mo¿na zmieniæ lokalizacji (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: nie mo¿na zmieniæ lokalizacji (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: nie mo¿na zmieniæ lokalizacji (%s): %s"
@@ -1303,118 +1326,119 @@ msgstr "b
 msgid "syntax error: `((%s))'"
 msgstr "b³±d sk³adni: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: z³y rodzaj instrukcji %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "dokument miejscowy w linii %d ograniczony koñcem pliku (oczekiwano `%s')"
+msgstr ""
+"dokument miejscowy w linii %d ograniczony koñcem pliku (oczekiwano `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: instrukcja przekierowania `%d' poza zakresem"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "nieoczekiwany EOF podczas poszukiwania `]]'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "b³±d sk³adni w wyra¿eniu warunkowym: nieoczekiwany znacznik `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "b³±d sk³adni w wyra¿eniu warunkowym"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "nieoczekiwany znacznik `%s', oczekiwano `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "oczekiwano `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "nieoczekiwany argument `%s' jednoargumentowego operatora warunkowego"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "nieoczekiwany argument jednoargumentowego operatora warunkowego"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "nieoczekiwany argument `%s', oczekiwano dwuarg. operatora warunkowego"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "oczekiwano dwuargumentowego operatora warunkowego"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "nieoczekiwany argument `%s' dwuargumentowego operatora warunkowego"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "nieoczekiwany argument dwuargumentowego operatora warunkowego"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "nieoczekiwany znacznik `%c' w poleceniu warunkowym"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "nieoczekiwany znacznik `%s' w poleceniu warunkowym"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "nieoczekiwany znacznik %d w poleceniu warunkowym"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "b³±d sk³adni przy nieoczekiwanym znaczniku `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "b³±d sk³adni przy `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "b³±d sk³adni: nieoczekiwany koniec pliku"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "b³±d sk³adni"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "U¿yj \"%s\", aby opu¶ciæ tê pow³okê.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `)'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "uzupe³nienie: nie znaleziono funkcji `%s'"
@@ -1424,26 +1448,26 @@ msgstr "uzupe
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: z³y ³±cznik `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: nieprawid³owy deskryptor pliku"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: pusty wska¼nik pliku"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': nieprawid³owy znak formatuj±cy"
@@ -1481,33 +1505,33 @@ msgstr "%s: nie mo
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port nie s± wspierane bez sieci"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "b³±d przekierowania: nie mo¿na powieliæ deskryptora pliku"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "nie mo¿na znale¼æ /tmp, proszê o utworzenie!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp musi byæ prawid³ow± nazw± katalogu"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: nieprawid³owa opcja"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Nie mam nazwy!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, wersja %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1516,41 +1540,43 @@ msgstr ""
 "U¿ycie:\t%s [d³uga opcja GNU] [opcja] ...\n"
 "\t%s [d³uga opcja GNU] [opcja] plik-skryptu ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "D³ugie opcje GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opcje pow³oki:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD lub -c polecenie lub -O shopt_option\t\t(tylko wywo³anie)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s lub -o opcja\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Aby uzyskaæ wiêcej informacji o opcjach pow³oki, napisz `%s -c \"help set\"'.\n"
+msgstr ""
+"Aby uzyskaæ wiêcej informacji o opcjach pow³oki, napisz `%s -c \"help set"
+"\"'.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Aby uzyskaæ wiêcej informacji o poleceniach wewnêtrznych pow³oki,\n"
 "napisz `%s -c help'.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Do zg³aszania b³êdów nale¿y u¿ywaæ polecenia `bashbug'.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: nieprawid³owa operacja"
@@ -1724,81 +1750,85 @@ msgstr "Nieznany sygna
 msgid "Unknown Signal #%d"
 msgstr "Nieznany sygna³ #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: nie mo¿na przypisaæ listy do elementu tablicy"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "nie mo¿na utworzyæ potoku dla podstawienia procesu"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia procesu"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "nie mo¿na otworzyæ nazwanego potoku %s do odczytu"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "nie mo¿na otworzyæ nazwanego potoku %s do zapisu"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "nie mo¿na powieliæ nazwanego potoku %s jako deskryptor %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "nie mo¿na utworzyæ potoku dla podstawienia polecenia"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia polecenia"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: nie mo¿na powieliæ potoku jako deskryptora 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametr pusty lub nieustawiony"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: wyra¿enie dla pod³añcucha < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: z³e podstawienie"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nie mo¿na przypisywaæ w ten sposób"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "przysz³e wersje pow³oki bêd± wymuszaæ obliczenie jako podstawienie arytmetyczne"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"przysz³e wersje pow³oki bêd± wymuszaæ obliczenie jako podstawienie "
+"arytmetyczne"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "z³e podstawienie: brak zamykaj±cego \"`\" w %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "brak pasuj±cego: %s"
@@ -1835,76 +1865,80 @@ msgstr "%s: oczekiwano operatora dwuargumentowego"
 msgid "missing `]'"
 msgstr "brakuj±cy `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "nieprawid³owy numer sygna³u"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: z³a warto¶æ trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: obs³uga sygna³u jest ustawiona na SIG_DFL, wysy³aj±c %d (%s) do siebie"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: obs³uga sygna³u jest ustawiona na SIG_DFL, wysy³aj±c %d "
+"(%s) do siebie"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: z³y sygna³ %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "b³±d importu definicji funkcji dla `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "poziom pow³oki (%d) jest za du¿y, ustawiono na 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: brak kontekstu funkcji w bie¿±cym zakresie"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: brak kontekstu funkcji w bie¿±cym zakresie"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s ma pusty exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "nieprawid³owy znak %d w exportstr dla %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "brak `=' w exportstr dla %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: nag³ówek shell_variables poza kontekstem funkcji"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: brak kontekstu global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope: nag³ówek shell_variables poza zakresem tymczasowego ¶rodowiska"
+msgstr ""
+"pop_scope: nag³ówek shell_variables poza zakresem tymczasowego ¶rodowiska"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: nie mo¿na otworzyæ jako PLIK"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: nieprawid³owa warto¶æ dla deskryptora pliku do ¶ledzenia"
@@ -1914,8 +1948,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licencja GPLv3+: GNU GPL wersja 3 lub pó¼niejsza <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licencja GPLv3+: GNU GPL wersja 3 lub pó¼niejsza <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1925,7 +1963,9 @@ msgstr "GNU bash, wersja %s (%s)\n"
 #: version.c:91 version2.c:88
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "To oprogramowanie jest wolnodostêpne; mo¿na je swobodnie zmieniaæ i rozpowszechniaæ.\n"
+msgstr ""
+"To oprogramowanie jest wolnodostêpne; mo¿na je swobodnie zmieniaæ i "
+"rozpowszechniaæ.\n"
 
 #: version.c:92 version2.c:89
 #, c-format
@@ -1939,8 +1979,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licencja GPLv2+: GNU GPL wersja 2 lub pó¼niejsza <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licencja GPLv2+: GNU GPL wersja 2 lub pó¼niejsza <http://gnu.org/licenses/"
+"gpl.html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1971,8 +2015,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] nazwa [nazwa ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m mapa] [-f plik] [-q nazwa] [-u nazwa] [-r sekwencja] [-x sekwencja:polecenie-pow³oki] [sekwencja:funkcja-readline lub polecenie-readline]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m mapa] [-f plik] [-q nazwa] [-u nazwa] [-r sekwencja] [-x "
+"sekwencja:polecenie-pow³oki] [sekwencja:funkcja-readline lub polecenie-"
+"readline]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2060,7 +2110,8 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e nazwa-ed] [-lnr] [pierwszy] [ostatni] lub fc -s [wz=zam] [polecenie]"
+msgstr ""
+"fc [-e nazwa-ed] [-lnr] [pierwszy] [ostatni] lub fc -s [wz=zam] [polecenie]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2079,8 +2130,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [wzorzec ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d offset] [n] lub history -anrw [plik] lub history -ps arg [arg ...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d offset] [n] lub history -anrw [plik] lub history -ps arg "
+"[arg ...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2091,16 +2146,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [zadanie ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s sygna³ | -n numer-sygna³u | -sygna³] pid | zadanie ... lub kill -l [sygna³]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s sygna³ | -n numer-sygna³u | -sygna³] pid | zadanie ... lub kill -l "
+"[sygna³]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a tablica] [-d separator] [-i tekst] [-n liczba] [-N liczba] [-p zachêta] [-t czas] [-u fd] [nazwa ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a tablica] [-d separator] [-i tekst] [-n liczba] [-N liczba] [-"
+"p zachêta] [-t czas] [-u fd] [nazwa ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2159,7 +2222,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] nazwa [nazwa ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [ograniczenie]"
 
 #: builtins.c:172
@@ -2167,7 +2231,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [uprawnienia]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2195,8 +2260,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case S£OWO in [WZORZEC [| WZORZEC]...) POLECENIA ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if POLECENIA; then POLECENIA; [ elif POLECENIA; then POLECENIA; ]... [ else POLECENIA; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if POLECENIA; then POLECENIA; [ elif POLECENIA; then POLECENIA; ]... [ else "
+"POLECENIA; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2255,24 +2324,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [argumenty]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opcja] [-A akcja] [-G wzorzec-glob] [-W lista-s³ów] [-F funkcja] [-C polecenie] [-X wzorzec-filtra] [-P przedrostek] [-S przyrostek] [nazwa ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o opcja] [-A akcja] [-G wzorzec-glob] "
+"[-W lista-s³ów] [-F funkcja] [-C polecenie] [-X wzorzec-filtra] [-P "
+"przedrostek] [-S przyrostek] [nazwa ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o opcja]  [-A akcja] [-G wzorzec-glob] [-W lista-s³ów]  [-F funkcja] [-C polecenie] [-X wzorzec-filtra] [-P przedrostek ] [-S przyrostek] [s³owo]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o opcja]  [-A akcja] [-G wzorzec-glob] [-W lista-"
+"s³ów]  [-F funkcja] [-C polecenie] [-X wzorzec-filtra] [-P przedrostek ] [-S "
+"przyrostek] [s³owo]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o opcja] [-DE] [nazwa ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n liczba] [-O pocz±tek] [-s liczba] [-t] [-u fd] [-C wywo³anie] [-c co-ile] [tablica]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n liczba] [-O pocz±tek] [-s liczba] [-t] [-u fd] [-C wywo³anie] [-"
+"c co-ile] [tablica]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n liczba] [-O pocz±tek] [-s liczba] [-t] [-u fd] [-C wywo³anie] [-c co-ile] [tablica]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n liczba] [-O pocz±tek] [-s liczba] [-t] [-u fd] [-C wywo³anie] "
+"[-c co-ile] [tablica]"
 
 #: builtins.c:254
 msgid ""
@@ -2289,7 +2377,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definiowanie i wy¶wietlanie aliasów.\n"
@@ -2297,8 +2386,10 @@ msgstr ""
 "    Bez argumentów `alias' wypisuje na standardowym wyj¶ciu listê aliasów\n"
 "    w postaci alias NAZWA=WARTO¦Æ.\n"
 "    \n"
-"    W przeciwnym przypadku definiowany jest alias dla ka¿dej NAZWY, dla której\n"
-"    podano WARTO¦Æ. Spacja na koñcu WARTO¦CI powoduje, ¿e podczas rozwijania\n"
+"    W przeciwnym przypadku definiowany jest alias dla ka¿dej NAZWY, dla "
+"której\n"
+"    podano WARTO¦Æ. Spacja na koñcu WARTO¦CI powoduje, ¿e podczas "
+"rozwijania\n"
 "    tego aliasu podstawienie aliasów bêdzie przeprowadzone tak¿e dla\n"
 "    nastêpnego s³owa.\n"
 "    \n"
@@ -2327,6 +2418,7 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e NAZWA nie jest istniej±cym aliasem."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2338,24 +2430,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2364,38 +2462,47 @@ msgstr ""
 "    \n"
 "    Przypisanie sekwencji klawiszy do funkcji Readline lub makra albo\n"
 "    ustawienie zmiennej Readline. Sk³adnia pozbawiona opcji jest równowa¿na\n"
-"    stosowanej w ~/.inputrc, ale musi byæ przekazana jako jeden argument, np.:\n"
+"    stosowanej w ~/.inputrc, ale musi byæ przekazana jako jeden argument, "
+"np.:\n"
 "    bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Opcje:\n"
 "      -m  MAPA           U¿ycie MAPY jako mapy klawiatury na czas tego\n"
-"                         polecenia. Dozwolone nazwy map klawiatury to emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         polecenia. Dozwolone nazwy map klawiatury to "
+"emacs,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command i vi-insert.\n"
 "      -l                 Wypisanie nazw funkcji.\n"
 "      -P                 Wypisanie nazw funkcji i dowi±zañ.\n"
-"      -p                 Wypisanie funkcji i dowi±zañ w postaci nadaj±cej siê\n"
+"      -p                 Wypisanie funkcji i dowi±zañ w postaci nadaj±cej "
+"siê\n"
 "                         do u¿ycia jako dane wej¶ciowe.\n"
-"      -S                 Wypisanie sekwencji klawiszy wywo³uj±cych makra oraz\n"
+"      -S                 Wypisanie sekwencji klawiszy wywo³uj±cych makra "
+"oraz\n"
 "                         ich warto¶ci.\n"
-"      -s                 Wypisanie sekwencji klawiszy wywo³uj±cych makra oraz\n"
-"                         ich warto¶ci w postaci nadaj±cej siê do u¿ycia jako\n"
+"      -s                 Wypisanie sekwencji klawiszy wywo³uj±cych makra "
+"oraz\n"
+"                         ich warto¶ci w postaci nadaj±cej siê do u¿ycia "
+"jako\n"
 "                         dane wej¶ciowe.\n"
 "      -V                 Wypisanie nazw zmiennych i ich warto¶ci.\n"
 "      -v                 Wypisanie nazw zmiennych i ich warto¶ci w postaci\n"
 "                         nadaj±cej siê do u¿ycia jako dane wej¶ciowe.\n"
-"      -q  nazwa-funkcji  Okre¶lenie, które klawisze wywo³uj± zadan± funkcjê.\n"
+"      -q  nazwa-funkcji  Okre¶lenie, które klawisze wywo³uj± zadan± "
+"funkcjê.\n"
 "      -u  nazwa-funkcji  Anulowanie wszystkich dowi±zañ dla klawiszy\n"
 "                         przypisanych do funkcji o podanej nazwie.\n"
 "      -r  sekwencja      Usuniêcie dowi±zania dla SEKWENCJI klawiszy.\n"
 "      -f  plik           Odczyt dowi±zañ dla klawiszy z podanego PLIKU.\n"
-"      -x  sekwencja:polecenie-pow³oki\tPowoduje uruchomienie POLECENIA-POW£OKI\n"
+"      -x  sekwencja:polecenie-pow³oki\tPowoduje uruchomienie POLECENIA-"
+"POW£OKI\n"
 "    \t\t\t\tgdy wprowadzona zostanie podana SEKWENCJA klawiszy.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    bind zwraca 0, chyba ¿e podano nieznan± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2407,13 +2514,14 @@ msgid ""
 msgstr ""
 "Wyj¶cie z pêtli for, while lub until.\n"
 "    \n"
-"    Wyj¶cie z pêtli FOR, WHILE lub UNTIL. Je¶li podano N, sterowanie wychodzi\n"
+"    Wyj¶cie z pêtli FOR, WHILE lub UNTIL. Je¶li podano N, sterowanie "
+"wychodzi\n"
 "    za N-t± zagnie¿d¿on± pêtlê.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Instrukcja zwraca prawdê, chyba ¿e N jest mniejsze ni¿ 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2431,13 +2539,14 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Instrukcja zwraca 0, chyba ¿e N jest mniejsze ni¿ 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2447,14 +2556,15 @@ msgstr ""
 "    \n"
 "    Wywo³anie POLECENIA-WBUDOWANEGO z argumentami ARG bez wykonywania\n"
 "    wyszukiwania polecenia. Jest to przydatne w przypadku ponownego\n"
-"    implementowania polecenia wbudowanego jako funkcji pow³oki i wywo³ywania\n"
+"    implementowania polecenia wbudowanego jako funkcji pow³oki i "
+"wywo³ywania\n"
 "    polecenia wbudowanego z wewn±trz tej funkcji.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Instrukcja zwraca stan wyj¶ciowy POLECENIA-WBUDOWANEGO lub fa³sz, je¶li\n"
 "    POLECENIE-WBUDOWANE nie jest poleceniem wbudowanym pow³oki."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2471,8 +2581,10 @@ msgid ""
 msgstr ""
 "Zwrócenie kontekstu wywo³ania bie¿±cej procedury.\n"
 "    \n"
-"    Bez WYRA¯ENIA zwracane jest \"$linia $plik\". Z WYRA¯ENIEM zwracane jest\n"
-"    \"$linia $procedura $plik\"; dodatkowe informacje s³u¿± do udostêpnienia\n"
+"    Bez WYRA¯ENIA zwracane jest \"$linia $plik\". Z WYRA¯ENIEM zwracane "
+"jest\n"
+"    \"$linia $procedura $plik\"; dodatkowe informacje s³u¿± do "
+"udostêpnienia\n"
 "    ¶ladu stosu.\n"
 "    \n"
 "    Warto¶æ WYRA¯ENIA okre¶la o ile ramek wywo³añ wzglêdem bie¿±cej ramki\n"
@@ -2482,33 +2594,46 @@ msgstr ""
 "    Polecenie zwraca 0, chyba ¿e pow³oka nie wykonuje funkcji lub WYRA¯ENIE\n"
 "    jest nieprawid³owe."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Zmiana bie¿±cego katalogu pow³oki.\n"
@@ -2517,13 +2642,15 @@ msgstr ""
 "    zmiennej pow³oki $HOME.\n"
 "    \n"
 "    Zmienna CDPATH okre¶la ¶cie¿kê przeszukiwania w poszukiwaniu katalogu\n"
-"    zawieraj±cego KATALOG. Alternatywne nazwy katalogów s± w CDPATH rozdzielone\n"
+"    zawieraj±cego KATALOG. Alternatywne nazwy katalogów s± w CDPATH "
+"rozdzielone\n"
 "    dwukropkami (:). Pusta nazwa katalogu oznacza to samo, co katalog\n"
 "    bie¿±cy. Je¶li KATALOG zaczyna siê od uko¶nika (/), to CDPATH nie\n"
 "    nie jest u¿ywane.\n"
 "    \n"
 "    Gdy katalog nie zostanie znaleziony, a ustawiona jest zmienna pow³oki\n"
-"    `cdable_vars', to nastêpuje próba u¿ycia podanej nazwy jako nazwy zmiennej.\n"
+"    `cdable_vars', to nastêpuje próba u¿ycia podanej nazwy jako nazwy "
+"zmiennej.\n"
 "    Je¶li zmienna ta ma warto¶æ, to jako KATALOG jest u¿ywana jej warto¶æ.\n"
 "    \n"
 "    Opcje:\n"
@@ -2540,7 +2667,7 @@ msgstr ""
 "    zmienione pomy¶lnie w przypadku u¿ycia -P; w przeciwnym razie zwraca\n"
 "    warto¶æ niezerow±."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2567,7 +2694,7 @@ msgstr ""
 "    Polecenie zwraca 0, chyba ¿e podano nieprawid³ow± opcjê lub katalog\n"
 "    bie¿±cy nie mo¿e byæ odczytany."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2583,7 +2710,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zawsze zwracana jest prawda."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2595,7 +2722,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zawsze zwracana jest prawda."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2607,12 +2734,13 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zawsze zwracany jest fa³sz."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2627,7 +2755,8 @@ msgstr ""
 "Wywo³anie prostego polecenia lub wy¶wietlenie informacji o poleceniach.\n"
 "    \n"
 "    Uruchomienie POLECENIA z ARGUMENTAMI z pominiêciem wyszukiwania funkcji\n"
-"    pow³oki lub wy¶wietlenie informacji o podanych POLECENIACH. Mo¿e byæ u¿yte\n"
+"    pow³oki lub wy¶wietlenie informacji o podanych POLECENIACH. Mo¿e byæ "
+"u¿yte\n"
 "    do wywo³ania poleceñ z dysku je¶li ju¿ istnieje funkcja o danej nazwie.\n"
 "    \n"
 "    Opcje:\n"
@@ -2640,7 +2769,7 @@ msgstr ""
 "    Polecenie zwraca stan POLECENIA lub fa³sz, je¶li POLECENIE nie zosta³o\n"
 "    znalezione."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2670,7 +2799,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2710,7 +2840,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Polecenie zwraca prawdê, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2720,7 +2850,7 @@ msgstr ""
 "    \n"
 "    Polecenie przestarza³e - p. `help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2746,11 +2876,14 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê, wyst±pi b³±d lub\n"
 "    pow³oka nie wykonuje ¿adnej funkcji."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2762,6 +2895,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2778,7 +2912,8 @@ msgid ""
 msgstr ""
 "Wypisanie argumentów na standardowym wyj¶ciu.\n"
 "    \n"
-"    Wypisanie na standardowym wyj¶ciu argumentów ARG oraz znaku koñca linii.\n"
+"    Wypisanie na standardowym wyj¶ciu argumentów ARG oraz znaku koñca "
+"linii.\n"
 "    \n"
 "    Opcje:\n"
 "      -n\tniedo³±czanie znaku koñca linii\n"
@@ -2806,7 +2941,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e wyst±pi b³±d zapisu."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2828,7 +2963,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e wyst±pi b³±d zapisu."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2861,13 +2996,16 @@ msgstr ""
 "    wbudowane bez u¿ywania pe³nej ¶cie¿ki.\n"
 "    \n"
 "    Opcje:\n"
-"      -a\twypisanie listy poleceñ wbudowanych z informacj±, które s± w³±czone\n"
+"      -a\twypisanie listy poleceñ wbudowanych z informacj±, które s± "
+"w³±czone\n"
 "      -n\twy³±czenie ka¿dej NAZWY lub wypisanie listy wy³±czonych poleceñ\n"
 "      -p\twypisanie listy poleceñ w formacie do ponownego u¿ycia\n"
-"      -s\twypisanie tylko nazw posiksowych \"specjalnych\" poleceñ wbudowanych\n"
+"      -s\twypisanie tylko nazw posiksowych \"specjalnych\" poleceñ "
+"wbudowanych\n"
 "    \n"
 "    Opcje steruj±ce dynamicznym ³adowaniem:\n"
-"      -f\tWczytanie polecenia wbudowanego NAZWA z obiektu wspó³dzielonego PLIK\n"
+"      -f\tWczytanie polecenia wbudowanego NAZWA z obiektu wspó³dzielonego "
+"PLIK\n"
 "      -d\tUsuniêcie polecenia wczytanego przez -f\n"
 "    \n"
 "    Bez opcji w³±czana jest ka¿da NAZWA.\n"
@@ -2879,11 +3017,12 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e NAZWA nie jest poleceniem wbudowanym lub\n"
 "    wyst±pi b³±d."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2898,7 +3037,7 @@ msgstr ""
 "    Zwracany jest stan wyj¶ciowy polecenia lub prawdê, je¶li polecenie jest\n"
 "    puste."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2940,14 +3079,16 @@ msgid ""
 msgstr ""
 "Analiza opcji z argumentów.\n"
 "    \n"
-"    Polecenie getopts jest u¿ywane przez procedury pow³oki przy analizowaniu\n"
+"    Polecenie getopts jest u¿ywane przez procedury pow³oki przy "
+"analizowaniu\n"
 "    parametrów pozycyjnych jako opcji.\n"
 "    \n"
 "    £AÑCUCH-OPCJI zawiera litery opcji, które maj± byæ rozpoznane; je¶li po\n"
 "    literze nastêpuje dwukropek, opcja wymaga argumentu, który powinien byæ\n"
 "    oddzielony od opcji spacj±.\n"
 "    \n"
-"    Przy ka¿dym wywo³aniu getopts umieszcza nastêpn± opcjê w zmiennej pow³oki\n"
+"    Przy ka¿dym wywo³aniu getopts umieszcza nastêpn± opcjê w zmiennej "
+"pow³oki\n"
 "    $nazwa, inicjuj±c j±, je¶li nie istnieje; natomiast indeks nastêpnego\n"
 "    argumentu do przetworzenia jest umieszczany w zmiennej pow³oki OPTIND\n"
 "    OPTIND jest inicjowany warto¶ci± 1 przy ka¿dym wywo³aniu pow³oki lub\n"
@@ -2956,32 +3097,39 @@ msgstr ""
 "    \n"
 "    getopts zg³asza b³êdy na jeden z dwóch sposobów. Je¶li pierwszy znak\n"
 "    £AÑCUCHA-OPCJI jest dwukropkiem, getopts wykorzystuje ciche zg³aszanie\n"
-"    b³êdów. W tym trybie komunikaty b³êdów nie s± wypisywane. Je¶li napotkana\n"
+"    b³êdów. W tym trybie komunikaty b³êdów nie s± wypisywane. Je¶li "
+"napotkana\n"
 "    zostanie b³êdna opcja, getopts umieszcza znak opcji w OPTARG. Je¶li\n"
-"    nie znaleziono wymaganego argumentu, getopts umieszcza znak ':' w NAZWIE\n"
-"    i ustawia OPTARG na napotkany znak opcji. Je¶li getopts nie jest w trybie\n"
+"    nie znaleziono wymaganego argumentu, getopts umieszcza znak ':' w "
+"NAZWIE\n"
+"    i ustawia OPTARG na napotkany znak opcji. Je¶li getopts nie jest w "
+"trybie\n"
 "    cichym i napotkana zostanie b³êdna opcja, getopts umieszcza znak '?'\n"
 "    w NAZWIE i anuluje OPTARG. Je¶li nie znaleziono wymaganego argumentu,\n"
 "    w NAZWIE umieszczany jest znak '?', OPTARG jest anulowany i wypisywany\n"
 "    jest komunikat diagnostyczny.\n"
 "    \n"
 "    Je¶li zmienna pow³oki OPTERR ma warto¶æ 0, getopts wy³±cza wypisywanie\n"
-"    komunikatów b³êdów, nawet je¶li pierwszym znakiem £AÑCUCHA-OPCJI nie jest\n"
+"    komunikatów b³êdów, nawet je¶li pierwszym znakiem £AÑCUCHA-OPCJI nie "
+"jest\n"
 "    dwukropek. OPTERR domy¶lnie ma warto¶æ 1.\n"
 "    \n"
-"    Polecenie getopts normalnie przetwarza parametry pozycyjne ($0 - $9), ale\n"
+"    Polecenie getopts normalnie przetwarza parametry pozycyjne ($0 - $9), "
+"ale\n"
 "    je¶li podano wiêcej argumentów, s± one przetwarzane zamiast nich.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, je¶li napotkano opcjê; fa³sz, je¶li wyst±pi koniec\n"
+"    Zwracana jest prawda, je¶li napotkano opcjê; fa³sz, je¶li wyst±pi "
+"koniec\n"
 "    opcji lub b³±d."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2989,11 +3137,13 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Zast±pienie pow³oki podanym poleceniem.\n"
 "    \n"
@@ -3010,10 +3160,11 @@ msgstr ""
 "    chyba ¿e ustawiona jest opcja pow³oki `execfail'.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e nie uda siê znale¼æ POLECENIA lub wyst±pi\n"
+"    Zwracana jest prawda, chyba ¿e nie uda siê znale¼æ POLECENIA lub "
+"wyst±pi\n"
 "    b³±d przekierowania."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3025,11 +3176,12 @@ msgstr ""
 "    Opuszczenie pow³oki z kodem zakoñczenia N. Je¶li N pominiêto, kodem\n"
 "    zakoñczenia bêdzie kod zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Opuszczenie pow³oki logowania.\n"
@@ -3037,17 +3189,19 @@ msgstr ""
 "    Opuszczenie pow³oki logowania z kodem zakoñczenia N. Zwraca b³±d, je¶li\n"
 "    pow³oka nie jest pow³ok± logowania."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3061,13 +3215,16 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Wy¶wietlanie lub wykonywanie poleceñ z listy historii.\n"
 "    \n"
-"    fc s³u¿y do wypisywania, edycji i ponownego uruchamiania poleceñ z listy\n"
+"    fc s³u¿y do wypisywania, edycji i ponownego uruchamiania poleceñ z "
+"listy\n"
 "    historii. PIERWSZY i OSTATNI jako liczby okre¶laj± zakres lub PIERWSZY\n"
-"    jako napis oznacza najpó¼niej wykonywane polecenie zaczynaj±ce siê od tego\n"
+"    jako napis oznacza najpó¼niej wykonywane polecenie zaczynaj±ce siê od "
+"tego\n"
 "    napisu.\n"
 "    \n"
 "    Opcje:\n"
@@ -3081,15 +3238,17 @@ msgstr ""
 "    Przy wywo³aniu polecenia w postaci `fc -s [wz=zam ...] [polecenie]',\n"
 "    jest ono wywo³ywane ponownie po wykonaniu podstawienia WZ=ZAM.\n"
 "    \n"
-"    Przydatnym aliasem korzystaj±cym z tego jest r='fc -s' tak, ¿e napisanie\n"
-"    `r cc' uruchamia ostatnie polecenie zaczynaj±ce siê od `cc', a napisanie\n"
+"    Przydatnym aliasem korzystaj±cym z tego jest r='fc -s' tak, ¿e "
+"napisanie\n"
+"    `r cc' uruchamia ostatnie polecenie zaczynaj±ce siê od `cc', a "
+"napisanie\n"
 "    `r' uruchamia ponownie ostatnie polecenie.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda lub stan wykonanego polecenia; warto¶æ niezerowa\n"
 "    w przypadku b³êdu."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3110,12 +3269,14 @@ msgstr ""
 "    Stan zadania umieszczonego na pierwszym planie lub fa³sz, je¶li wyst±pi\n"
 "    b³±d."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3131,12 +3292,13 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e sterowanie zadaniami nie jest w³±czone\n"
 "    lub wyst±pi b³±d."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3174,7 +3336,7 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e nie znaleziono NAZWY lub podano b³êdn±\n"
 "    opcjê."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3192,12 +3354,14 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Wy¶wietlenie informacji o poleceniach wbudowanych.\n"
 "    \n"
 "    Wy¶wietlenie krótkiego przegl±du poleceñ wbudowanych. Je¶li podano\n"
-"    WZORZEC, wypisywany jest szczegó³owy opis wszystkich poleceñ pasuj±cych do\n"
+"    WZORZEC, wypisywany jest szczegó³owy opis wszystkich poleceñ pasuj±cych "
+"do\n"
 "    WZORCA, w przeciwnym wypadku - lista tematów.\n"
 "    \n"
 "    Opcje:\n"
@@ -3213,7 +3377,7 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e WZORCA nie znaleziono lub podano b³êdn±\n"
 "    opcjê."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3240,7 +3404,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3266,19 +3431,22 @@ msgstr ""
 "      -s\tdo³±czenie wszystkich ARG do listy historii jako pojedynczych\n"
 "    \twpisów\n"
 "    \n"
-"    Je¶li podano PLIK, jest u¿ywany jako plik historii. W przeciwnym wypadku\n"
+"    Je¶li podano PLIK, jest u¿ywany jako plik historii. W przeciwnym "
+"wypadku\n"
 "    u¿ywany jest $HISTFILE, a je¶li ta zmienna nie jest ustawiona -\n"
 "    ~/.bash_history.\n"
 "    \n"
-"    Je¶li zmienna $HISTTIMEFORMAT jest ustawiona i niepusta, jej warto¶æ jest\n"
+"    Je¶li zmienna $HISTTIMEFORMAT jest ustawiona i niepusta, jej warto¶æ "
+"jest\n"
 "    u¿ywana jako ³añcuch formatuj±cy dla strftime(3) do wypisywania momentu\n"
-"    czasu powi±zanego z ka¿dym wypisywanym wpisem. W przeciwnym wypadku czas\n"
+"    czasu powi±zanego z ka¿dym wypisywanym wpisem. W przeciwnym wypadku "
+"czas\n"
 "    nie jest wypisywany.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3303,7 +3471,8 @@ msgid ""
 msgstr ""
 "Wy¶wietlenie stanu zadañ.\n"
 "    \n"
-"    Wypisanie aktywnych zadañ. ZADANIE ogranicza wyj¶cie tylko do tego zadania.\n"
+"    Wypisanie aktywnych zadañ. ZADANIE ogranicza wyj¶cie tylko do tego "
+"zadania.\n"
 "    Bez opcji wypisywany jest stan wszystkich aktywnych zadañ.\n"
 "    \n"
 "    Opcje:\n"
@@ -3314,7 +3483,8 @@ msgstr ""
 "      -r\tograniczenie wyj¶cia do zadañ dzia³aj±cych\n"
 "      -s\tograniczenie wyj¶cia do zadañ zatrzymanych\n"
 "    \n"
-"    Przy podaniu -x, uruchamiane jet polecenie podane POLECENIE po zast±pieniu\n"
+"    Przy podaniu -x, uruchamiane jet polecenie podane POLECENIE po "
+"zast±pieniu\n"
 "    ka¿dej z wystêpuj±cych w argumentach ARG specyfikacji zadañ numerem PID\n"
 "    procesu wiod±cego danego zadania.\n"
 "    \n"
@@ -3322,7 +3492,7 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d.\n"
 "    Je¶li u¿yto -x, zwracany jest stan wyj¶ciowy POLECENIA."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3352,7 +3522,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub ZADANIE."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3376,7 +3546,8 @@ msgstr ""
 "Wys³anie sygna³u do zadania.\n"
 "    \n"
 "    Wys³anie do procesów okre¶lonych przez PID lub ZADANIE sygna³u o nazwie\n"
-"    SYGNA£ lub NUMERZE-SYGNA£U. Je¶li nie podano SYGNA£U ani NUMERU-SYGNA£U,\n"
+"    SYGNA£ lub NUMERZE-SYGNA£U. Je¶li nie podano SYGNA£U ani NUMERU-"
+"SYGNA£U,\n"
 "    przyjmowany jest SIGTERM.\n"
 "    \n"
 "    Opcje:\n"
@@ -3386,21 +3557,23 @@ msgstr ""
 "    \ttraktowane jako numery sygna³ów, dla których maj± byæ wypisane nazwy\n"
 "    \n"
 "    Kill jest poleceniem wewnêtrznym z dwóch powodów: umo¿liwia korzystanie\n"
-"    z identyfikatorów zadañ zamiast numerów PID oraz, w przypadku osi±gniêcia\n"
+"    z identyfikatorów zadañ zamiast numerów PID oraz, w przypadku "
+"osi±gniêcia\n"
 "    ograniczenia na liczbê procesów, nie powoduje potrzeby uruchamiania\n"
 "    dodatkowego procesu, aby jaki¶ zabiæ.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest sukces, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3438,9 +3611,11 @@ msgid ""
 msgstr ""
 "Obliczanie wyra¿eñ arytmetycznych.\n"
 "    \n"
-"    Obliczenie ka¿dego argumentu ARG jako wyra¿enia arytmetycznego. Obliczenia\n"
+"    Obliczenie ka¿dego argumentu ARG jako wyra¿enia arytmetycznego. "
+"Obliczenia\n"
 "    s± wykonywane dla liczb ca³kowitych o sta³ej d³ugo¶ci bez sprawdzania\n"
-"    przepe³nienia, jednak¿e dzielenie przez 0 jest przechwytywane i oznaczane\n"
+"    przepe³nienia, jednak¿e dzielenie przez 0 jest przechwytywane i "
+"oznaczane\n"
 "    jako b³±d. Poni¿sza lista operatorów jest pogrupowana na poziomy\n"
 "    operatorów o jednakowym priorytecie. Poziomy s± wypisane w kolejno¶ci\n"
 "    malej±cego priorytetu.\n"
@@ -3479,18 +3654,22 @@ msgstr ""
 "    Je¶li warto¶ci± ostatniego argumentu jest 0, let zwraca 1;\n"
 "    w pozosta³ych przypadkach zwracane jest 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3502,66 +3681,82 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Odczyt wiersza ze standardowego wej¶cia i podzia³ go na pola.\n"
 "    \n"
 "    Odczytanie wiersza ze standardowego wej¶cia lub deskryptora FD (je¶li\n"
-"    podano opcjê -u). Wiersz jest dzielony na pola wg regu³ podzia³u na s³owa,\n"
-"    pierwsze s³owo jest przypisywane pierwszej NAZWIE, drugie - drugiej NAZWIE\n"
+"    podano opcjê -u). Wiersz jest dzielony na pola wg regu³ podzia³u na "
+"s³owa,\n"
+"    pierwsze s³owo jest przypisywane pierwszej NAZWIE, drugie - drugiej "
+"NAZWIE\n"
 "    itd.; wszystkie pozosta³e s³owa s± przypisywane ostatniej NAZWIE. Jako\n"
 "    ograniczniki s³ów s± rozpoznawane tylko znaki ze zmiennej $IFS.\n"
 "    \n"
-"    Je¶li nie podano NAZW, odczytany wiersz jest zapisywany w zmiennej REPLY.\n"
+"    Je¶li nie podano NAZW, odczytany wiersz jest zapisywany w zmiennej "
+"REPLY.\n"
 "    \n"
 "    Opcje:\n"
 "      -a tablica\tprzypisanie odczytanych s³ów do indeksów sekwencyjnych\n"
 "    \t\tzmiennej tablicowej TABLICA, pocz±wszy od zera\n"
-"      -d ogr\tkontynuacja do odczytu pierwszego znaku OGR zamiast znaku nowej\n"
+"      -d ogr\tkontynuacja do odczytu pierwszego znaku OGR zamiast znaku "
+"nowej\n"
 "    \t\tlinii\n"
 "      -e\t\tu¿ycie Readline'a do odczytania wiersza w pow³oce interaktywnej\n"
 "      -o tekst\tu¿ycie TEKSTU jako pocz±tkowego tekstu dla Readline'a\n"
 "      -n liczba\tpowrót po odczycie LICZBY znaków zamiast oczekiwania na\n"
-"    \t\tznak nowej linii; ogranicznik jest honorowany, je¶li odczytano mniej\n"
+"    \t\tznak nowej linii; ogranicznik jest honorowany, je¶li odczytano "
+"mniej\n"
 "    \t\tni¿ podana LICZBA znaków przed ogranicznikiem\n"
 "      -N liczba\tpowrót tylko po odczycie dok³adnie podanej LICZBY znaków,\n"
 "    \t\tchyba ¿e zostanie napotkany EOF lub op³ynie czas; ograniczniki s±\n"
 "    \t\tignorowane\n"
-"      -p zachêta\twypisanie ³añcucha ZACHÊTY bez koñcowego znaku nowej linii\n"
+"      -p zachêta\twypisanie ³añcucha ZACHÊTY bez koñcowego znaku nowej "
+"linii\n"
 "    \t\tprzed prób± odczytu\n"
-"      -r\t\twy³±czenie interpretowania odwrotnych uko¶ników jako przedrostka\n"
+"      -r\t\twy³±czenie interpretowania odwrotnych uko¶ników jako "
+"przedrostka\n"
 "    \t\tznaków specjalnych\n"
 "      -s\t\tbez wypisywania wej¶cia pochodz±cego z terminala\n"
 "      -t czas\tzakoñczenie i zwrócenie niepowodzenia, je¶li nie zostanie\n"
-"    \t\todczytany ca³y wiersz przed up³yniêciem podanego CZASU (w sekundach).\n"
+"    \t\todczytany ca³y wiersz przed up³yniêciem podanego CZASU (w "
+"sekundach).\n"
 "    \t\tWarto¶æ zmiennej TMOUT jest domy¶lnym limitem czasu. CZAS mo¿e byæ\n"
 "    \t\tu³amkowy. Przy warto¶ci 0 odczyt powiedzie siê tylko wtedy, gdy\n"
 "    \t\twej¶cie jest dostêpne na podanym deskryptorze. Kod (stan) wyj¶ciowy\n"
 "    \t\tw przypadku osi±gniêcia limitu czasu jest wiêkszy ni¿ 128\n"
-"      -u fd\t\todczyt z deskryptora pliku FD zamiast ze standardowego wej¶cia\n"
+"      -u fd\t\todczyt z deskryptora pliku FD zamiast ze standardowego "
+"wej¶cia\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e zostanie napotkany koniec pliku lub\n"
-"    osi±gniêty limit czasu albo podano nieprawid³owy deskryptor dla argumentu\n"
+"    osi±gniêty limit czasu albo podano nieprawid³owy deskryptor dla "
+"argumentu\n"
 "    -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3582,7 +3777,8 @@ msgstr ""
 "    Zwracane jest N lub niepowodzenie, je¶li pow³oka nie wykonuje ¿adnej\n"
 "    funkcji ani skryptu."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3625,7 +3821,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3647,7 +3844,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3718,10 +3915,12 @@ msgstr ""
 "                           POSIX na zgodne ze standardem\n"
 "              privileged   to samo, co -p\n"
 "              verbose      to samo, co -v\n"
-"              vi           korzystanie z interfejsu edycji wiersza w stylu vi\n"
+"              vi           korzystanie z interfejsu edycji wiersza w stylu "
+"vi\n"
 "              xtrace       to samo, co -x\n"
 "      -p  W³±czone, gdy nie zgadzaj± siê rzeczywisty i efektywny ID\n"
-"            u¿ytkownika. Wy³±cza przetwarzanie pliku $ENV oraz import funkcji\n"
+"            u¿ytkownika. Wy³±cza przetwarzanie pliku $ENV oraz import "
+"funkcji\n"
 "            pow³oki. Wy³±czenie tej opcji powoduje, ¿e efektywne UID i GID\n"
 "            zostan± ustawione na rzeczywiste UID i GID.\n"
 "      -t  Zakoñczenie po przeczytaniu i uruchomieniu jednego polecenia.\n"
@@ -3744,7 +3943,8 @@ msgstr ""
 "      -   Przypisanie pozosta³ych argumentów do argumentów pozycyjnych.\n"
 "          Wy³±czenie opcji -x i -v.\n"
 "    \n"
-"    U¿ycie + zamiast - powoduje wy³±czenie powy¿szych znaczników. Mo¿na z nich\n"
+"    U¿ycie + zamiast - powoduje wy³±czenie powy¿szych znaczników. Mo¿na z "
+"nich\n"
 "    tak¿e korzystaæ przy uruchomieniu pow³oki. Aktualny zestaw opcji mo¿na\n"
 "    znale¼æ w $-. Pozosta³e n argumentów staje siê parametrami pozycyjnymi\n"
 "    i s± one przypisane, kolejno, do $1, $2, .. $n. Gdy nie zostan± podane\n"
@@ -3753,7 +3953,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano nieprawid³ow± opcjê."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3763,7 +3963,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3779,21 +3980,24 @@ msgstr ""
 "      -f\tpotraktowanie wszystkich NAZW jako funkcji pow³oki\n"
 "      -v\tpotraktowanie wszystkich NAZW jako zmiennych pow³oki\n"
 "    \n"
-"    Bez opcji unset próbuje najpierw anulowaæ definicjê zmiennej, a je¶li to\n"
+"    Bez opcji unset próbuje najpierw anulowaæ definicjê zmiennej, a je¶li "
+"to\n"
 "    siê nie powiedzie, próbuje anulowaæ definicjê funkcji.\n"
 "    \n"
 "    Niektórych zmiennych nie mo¿na usun±æ - p. `readonly'.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub NAZWA jest tylko do\n"
+"    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub NAZWA jest tylko "
+"do\n"
 "    odczytu."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3808,7 +4012,8 @@ msgstr ""
 "Ustawienie atrybutu eksportowania dla zmiennych pow³oki.\n"
 "    \n"
 "    Zaznaczenie ka¿dej NAZWY do automatycznego eksportowania do ¶rodowiska\n"
-"    pó¼niej wywo³ywanych poleceñ. Je¶li podano WARTO¦Æ, jest ona przypisywana\n"
+"    pó¼niej wywo³ywanych poleceñ. Je¶li podano WARTO¦Æ, jest ona "
+"przypisywana\n"
 "    przed eksportowaniem.\n"
 "    \n"
 "    Opcje:\n"
@@ -3821,7 +4026,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano nieprawid³ow± opcjê lub NAZWÊ."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3842,7 +4047,8 @@ msgid ""
 msgstr ""
 "Oznaczenie zmiennych pow³oki jako niezmiennych.\n"
 "    \n"
-"    Oznaczenie ka¿dej NAZWY jako tylko do odczytu; warto¶ci tych NAZW nie mog±\n"
+"    Oznaczenie ka¿dej NAZWY jako tylko do odczytu; warto¶ci tych NAZW nie "
+"mog±\n"
 "    byæ zmieniane przez pó¼niejsze podstawienia. Je¶li podano WARTO¦Æ, jest\n"
 "    ona przypisywana przed oznaczeniem jako tylko do odczytu.\n"
 "    \n"
@@ -3850,14 +4056,15 @@ msgstr ""
 "      -a\tdzia³anie na zmiennych tablicowych indeksowanych\n"
 "      -A\tdzia³anie na zmiennych tablicowych asocjacyjnych\n"
 "      -f\tdzia³anie na funkcjach pow³oki\n"
-"      -p\twy¶wietlenie listy wszystkich zmiennych i funkcji tylko do odczytu\n"
+"      -p\twy¶wietlenie listy wszystkich zmiennych i funkcji tylko do "
+"odczytu\n"
 "    \n"
 "    Argument `--' wy³±cza dalsze przetwarzanie opcji.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano nieprawid³ow± opcjê lub NAZWÊ."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3875,7 +4082,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e N jest ujemne lub wiêksze ni¿ $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3896,10 +4103,11 @@ msgstr ""
 "    parametrami pozycyjnymi podczas uruchomienia PLIKU.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracany jest stan ostatnio wykonanego polecenia z PLIKU lub b³±d, je¶li\n"
+"    Zwracany jest stan ostatnio wykonanego polecenia z PLIKU lub b³±d, "
+"je¶li\n"
 "    PLIKU nie uda³o siê odczytaæ."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3919,13 +4127,15 @@ msgstr ""
 "    wstrzymaæ.\n"
 "    \n"
 "    Opcje:\n"
-"      -f\twymuszenie wstrzymania, nawet je¶li pow³oka jest pow³ok± logowania\n"
+"      -f\twymuszenie wstrzymania, nawet je¶li pow³oka jest pow³ok± "
+"logowania\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e kontrola zadañ jest wy³±czona lub wyst±pi\n"
+"    Zwracana jest prawda, chyba ¿e kontrola zadañ jest wy³±czona lub "
+"wyst±pi\n"
 "    b³±d."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3959,7 +4169,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3980,7 +4191,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4005,13 +4217,18 @@ msgid ""
 msgstr ""
 "Obliczenie wyra¿enia warunkowego.\n"
 "    \n"
-"    Polecenie zwracaj±ce kod 0 (prawda) lub 1 (fa³sz) w zale¿no¶ci od wyniku\n"
-"    obliczenia WYRA¯ENIA. Wyra¿enia mog± mieæ postaæ jedno- lub dwuargumentow±.\n"
-"    Jednoargumentowe wyra¿enia s³u¿± zwykle do badania stanu pliku. Istniej±\n"
-"    równie¿ operatory dzia³aj±ce na ³añcuchach tekstowych, jak te¿ operatory\n"
+"    Polecenie zwracaj±ce kod 0 (prawda) lub 1 (fa³sz) w zale¿no¶ci od "
+"wyniku\n"
+"    obliczenia WYRA¯ENIA. Wyra¿enia mog± mieæ postaæ jedno- lub "
+"dwuargumentow±.\n"
+"    Jednoargumentowe wyra¿enia s³u¿± zwykle do badania stanu pliku. "
+"Istniej±\n"
+"    równie¿ operatory dzia³aj±ce na ³añcuchach tekstowych, jak te¿ "
+"operatory\n"
 "    numerycznego porównania.\n"
 "    \n"
-"    Zachowanie polecenia test zale¿y od liczby argumentów. Pe³n± specyfikacjê\n"
+"    Zachowanie polecenia test zale¿y od liczby argumentów. Pe³n± "
+"specyfikacjê\n"
 "    mo¿na znale¼æ w podrêczniku man do basha.\n"
 "    \n"
 "    Operatory plikowe:\n"
@@ -4036,7 +4253,8 @@ msgstr ""
 "      -u FILE        Prawda, gdy PLIK ma ustawiony bit SUID.\n"
 "      -w FILE        Prawda, gdy PLIK jest zapisywalny przez u¿ytkownika.\n"
 "      -x FILE        Prawda, gdy PLIK jest uruchamialny przez u¿ytkownika.\n"
-"      -O FILE        Prawda, gdy u¿ytkownik jest efektywnym w³a¶cicielem PLIKU.\n"
+"      -O FILE        Prawda, gdy u¿ytkownik jest efektywnym w³a¶cicielem "
+"PLIKU.\n"
 "      -G FILE        Prawda, grupa u¿ytkownika jest efektywnym w³a¶cicielem\n"
 "                     PLIKU.\n"
 "      -N FILE        Prawda, gdy PLIK zosta³ zmodyfikowany po ostatnim\n"
@@ -4085,7 +4303,7 @@ msgstr ""
 "    Zwracana jest prawda, je¶li warto¶ci± WYRA¯ENIA jest prawda; fa³sz, gdy\n"
 "    warto¶ci± WYRA¯ENIA jest fa³sz lub podano b³êdny argument."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4097,11 +4315,12 @@ msgstr ""
 "    Jest to synonim dla wbudowanego polecenia \"test\", ale wymagaj±cy, by\n"
 "    ostatnim argumentem by³ `]' pasuj±cy do pocz±tkowego `['."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4109,17 +4328,19 @@ msgid ""
 msgstr ""
 "Wy¶wietlenie czasów procesu.\n"
 "    \n"
-"    Wypisanie ³±cznych czasów w przestrzeni u¿ytkownika i systemu dla pow³oki\n"
+"    Wypisanie ³±cznych czasów w przestrzeni u¿ytkownika i systemu dla "
+"pow³oki\n"
 "    i wszystkich procesów potomnych.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zawsze prawda."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4128,48 +4349,63 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Przechwytywanie sygna³ów i innych zdarzeñ.\n"
 "    \n"
-"    Polecenie definiuj±ce i w³±czaj±ce dan± akcjê w przypadku, kiedy pow³oka\n"
+"    Polecenie definiuj±ce i w³±czaj±ce dan± akcjê w przypadku, kiedy "
+"pow³oka\n"
 "    otrzyma sygna³ lub pod innymi warunkami.\n"
 "    \n"
-"    Gdy pow³oka otrzyma podany SYGNA£ (lub sygna³y), odczytywane i uruchamiane\n"
-"    jest polecenie podane jako argument ARG. W razie braku argumentu (i podaniu\n"
+"    Gdy pow³oka otrzyma podany SYGNA£ (lub sygna³y), odczytywane i "
+"uruchamiane\n"
+"    jest polecenie podane jako argument ARG. W razie braku argumentu (i "
+"podaniu\n"
 "    pojedynczego SYGNA£U) lub gdy argumentem jest `-', ka¿demu z podanych\n"
 "    sygna³ów jest przywracane pierwotne zachowanie. Je¶li ARG jest pustym\n"
-"    ³añcuchem, ka¿dy SYGNA£ jest ignorowany przez pow³okê i wywo³ane przez ni±\n"
+"    ³añcuchem, ka¿dy SYGNA£ jest ignorowany przez pow³okê i wywo³ane przez "
+"ni±\n"
 "    polecenia.\n"
 "    \n"
 "    Je¿eli jako SYGNA£ podano EXIT (0), polecenie ARG jest uruchamiane przy\n"
-"    opuszczaniu pow³oki. Je¶li jako SYGNA£ podano DEBUG, ARG jest uruchamiane\n"
+"    opuszczaniu pow³oki. Je¶li jako SYGNA£ podano DEBUG, ARG jest "
+"uruchamiane\n"
 "    po ka¿dym poleceniu prostym. Je¶li jako SYGNA£ podano RETURN, ARG jest\n"
 "    uruchamiane przy ka¿dym zakoñczeniu funkcji pow³oki lub skryptu\n"
 "    uruchamianego przez polecenia wbudowane . lub source. Je¶li jako SYGNA£\n"
 "    podano ERR, ARG jest uruchamiane za ka¿dym razem, kiedy niepowodzenie\n"
-"    polecenia spowodowa³oby zakoñczenie pow³oki w przypadku w³±czenia opcji -e.\n"
+"    polecenia spowodowa³oby zakoñczenie pow³oki w przypadku w³±czenia opcji -"
+"e.\n"
 "    \n"
-"    Je¶li nie podano argumentów, trap wypisuje listê poleceñ przypisanych do\n"
+"    Je¶li nie podano argumentów, trap wypisuje listê poleceñ przypisanych "
+"do\n"
 "    ka¿dego sygna³u.\n"
 "    \n"
 "    Opcje:\n"
@@ -4184,7 +4420,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdny SYGNA£ lub b³êdn± opcjê."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4210,7 +4446,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Wy¶wietlenie informacji o rodzaju polecenia.\n"
 "    \n"
@@ -4219,7 +4456,8 @@ msgstr ""
 "    \n"
 "    Opcje:\n"
 "      -a\twy¶wietlenie wszystkich po³o¿eñ zawieraj±cych program wykonywalny\n"
-"    \to podanej NAZWIE; obejmuje aliasy, polecenia wbudowane i funkcje tylko\n"
+"    \to podanej NAZWIE; obejmuje aliasy, polecenia wbudowane i funkcje "
+"tylko\n"
 "    \tje¶li nie podano dodatkowo opcji `-p'\n"
 "      -f\tpominiêcie wyszukiwania funkcji pow³oki\n"
 "      -P\twymuszenie wyszukiwania w PATH ka¿dej nazwy, nawet je¶li jest\n"
@@ -4236,14 +4474,17 @@ msgstr ""
 "      NAZWA\tNazwa polecenia do zinterpretowania.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, je¶li ka¿da NAZWA zostanie znaleziona; fa³sz, je¶li\n"
+"    Zwracana jest prawda, je¶li ka¿da NAZWA zostanie znaleziona; fa³sz, "
+"je¶li\n"
 "    którakolwiek nie zostanie znaleziona."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4267,6 +4508,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4283,7 +4527,8 @@ msgid ""
 msgstr ""
 "Modyfikowanie limitów zasobów pow³oki.\n"
 "    \n"
-"    Ulimit zapewnia kontrolê ilo¶ci zasobów udostêpnionych pow³oce i procesom\n"
+"    Ulimit zapewnia kontrolê ilo¶ci zasobów udostêpnionych pow³oce i "
+"procesom\n"
 "    w systemach, które tak± kontrolê umo¿liwiaj±.\n"
 "    \n"
 "    Opcje:\n"
@@ -4294,14 +4539,16 @@ msgstr ""
 "      -c\tmaksymalny rozmiar tworzonych plików core\n"
 "      -d\tmaksymalny rozmiar segmentu danych procesu\n"
 "      -e\tmaksymalny priorytet szeregowania procesów (`nice')\n"
-"      -f\tmaksymalny rozmiar plików zapisywanych przez pow³okê i jej potomków\n"
+"      -f\tmaksymalny rozmiar plików zapisywanych przez pow³okê i jej "
+"potomków\n"
 "      -i\tmaksymalna liczba oczekuj±cych sygna³ów\n"
 "      -l\tmaksymalny rozmiar pamiêci, któr± proces mo¿e zablokowaæ\n"
 "      -m\tmaksymalny rozmiar obszaru rezydentnego procesu\n"
 "      -n\tmaksymalna liczba otwartych deskryptorów plików\n"
 "      -p\trozmiar bufora potoku\n"
 "      -q\tmaksymalna liczba bajtów w POSIX-owych kolejkach komunikatów\n"
-"      -r\tmaksymalny priorytet szeregowania dla procesów czasu rzeczywistego\n"
+"      -r\tmaksymalny priorytet szeregowania dla procesów czasu "
+"rzeczywistego\n"
 "      -s\tmaksymalny rozmiar stosu\n"
 "      -t\tmaksymalna ilo¶æ czasu procesora w sekundach\n"
 "      -u\tmaksymalna liczba procesów u¿ytkownika\n"
@@ -4312,15 +4559,18 @@ msgstr ""
 "    danego zasobu; specjalne warto¶ci LIMITU: `soft', `hard' i `unlimited'\n"
 "    oznaczaj±, odpowiednio, aktualne ograniczenie miêkkie, sztywne i brak\n"
 "    ograniczenia. W przeciwnym przypadku wypisywana jest aktualna warto¶æ\n"
-"    podanego ograniczenia. Gdy nie podano opcji, przyjmuje siê, ¿e podano -f.\n"
+"    podanego ograniczenia. Gdy nie podano opcji, przyjmuje siê, ¿e podano -"
+"f.\n"
 "    \n"
-"    Warto¶ci s± podawane w jednostkach 1024-bajtowych, za wyj±tkiem -t, które\n"
-"    jest w sekundach, -p, które jest w jednostkach 512-bajtowych oraz -u, które\n"
+"    Warto¶ci s± podawane w jednostkach 1024-bajtowych, za wyj±tkiem -t, "
+"które\n"
+"    jest w sekundach, -p, które jest w jednostkach 512-bajtowych oraz -u, "
+"które\n"
 "    jest bezwymiarow± liczb± procesów.    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4352,21 +4602,25 @@ msgstr ""
 "      -S\twyj¶cie w postaci symbolicznej; bez tej opcji jest ósemkowe\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e podano b³êdne uprawnienia lub b³êdn± opcjê."
+"    Zwracana jest prawda, chyba ¿e podano b³êdne uprawnienia lub b³êdn± "
+"opcjê."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Oczekiwanie na zakoñczenie zadania i zwrócenie stanu (kodu) wyj¶cia.\n"
 "    \n"
@@ -4380,7 +4634,7 @@ msgstr ""
 "    Zwracany jest stan zakoñczenia ID; niepowodzenie, je¶li ID jest\n"
 "    nieprawid³owe lub podano b³êdn± opcjê."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4389,20 +4643,24 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Oczekiwanie na zakoñczenie procesu i zwrócenie stanu (kodu) wyj¶cia.\n"
 "    \n"
-"    Oczekiwanie na podany proces i zg³oszenie jego statusu zakoñczenia. Gdy nie\n"
+"    Oczekiwanie na podany proces i zg³oszenie jego statusu zakoñczenia. Gdy "
+"nie\n"
 "    zostanie podany PID, oczekiwanie dotyczy wszystkich aktualnie aktywnych\n"
-"    procesów potomnych, a kodem powrotu jest zero. PID musi byæ identyfikatorem\n"
+"    procesów potomnych, a kodem powrotu jest zero. PID musi byæ "
+"identyfikatorem\n"
 "    procesu.\n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracany jest status ID lub niepowodzenie, je¶li ID jest b³êdny lub podano\n"
+"    Zwracany jest status ID lub niepowodzenie, je¶li ID jest b³êdny lub "
+"podano\n"
 "    nieprawid³ow± opcjê."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4416,14 +4674,16 @@ msgid ""
 msgstr ""
 "Wykonanie poleceñ dla ka¿dego elementu z listy.\n"
 "    \n"
-"    Pêtla `for' uruchamia ci±g poleceñ dla ka¿dego elementu podanej listy. Gdy\n"
-"    nie zostanie podane `in S£OWA ...;', zak³ada siê, ¿e podano `in \"$@\"'.\n"
+"    Pêtla `for' uruchamia ci±g poleceñ dla ka¿dego elementu podanej listy. "
+"Gdy\n"
+"    nie zostanie podane `in S£OWA ...;', zak³ada siê, ¿e podano `in \"$@"
+"\"'.\n"
 "    Dla ka¿dego elementu S£ÓW, NAZWA jest ustawiana na ten element\n"
 "    i uruchamiane s± POLECENIA.    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4448,11 +4708,12 @@ msgstr ""
 "    \t\t(( WYR3 ))\n"
 "    \tdone\n"
 "    WYR1, WYR2 i WYR3 s± wyra¿eniami arytmetycznymi. Je¶li które¶ z wyra¿eñ\n"
-"    zostanie pominiête, zachowanie jest takie, jakby mia³o ono warto¶æ 1.    \n"
+"    zostanie pominiête, zachowanie jest takie, jakby mia³o ono warto¶æ "
+"1.    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4473,20 +4734,23 @@ msgid ""
 msgstr ""
 "Wybór s³ów z listy i wykonanie poleceñ.\n"
 "    S£OWA s± rozwijane, co tworzy listê s³ów. Zbiór rozwiniêtych s³ów\n"
-"    wypisywany jest na standardowym wyj¶ciu diagnostycznym, a ka¿de s³owo jest\n"
+"    wypisywany jest na standardowym wyj¶ciu diagnostycznym, a ka¿de s³owo "
+"jest\n"
 "    poprzedzone przez liczbê. Gdy nie zostanie podane `in S£OWA', zak³ada\n"
 "    siê, ¿e podano `in \"$@\"'. Wy¶wietlany jest wówczas tekst zachêty PS3\n"
-"    i odczytywany jest wiersz ze standardowego wej¶cia. Gdy wiersz ten sk³ada\n"
+"    i odczytywany jest wiersz ze standardowego wej¶cia. Gdy wiersz ten "
+"sk³ada\n"
 "    siê z liczby przypisanej do jednego z wypisanych s³ów, to NAZWA jest\n"
 "    ustawiana na to s³owo. Gdy wiersz jest pusty, S£OWA i tekst zachêty s±\n"
 "    wy¶wietlane ponownie. Gdy odczytany zostanie EOF, polecenie siê koñczy.\n"
-"    Ka¿da inna warto¶æ powoduje przypisanie NAZWIE warto¶ci pustej. Odczytany\n"
+"    Ka¿da inna warto¶æ powoduje przypisanie NAZWIE warto¶ci pustej. "
+"Odczytany\n"
 "    wiersz jest zachowywany w zmiennej REPLY. Po ka¿dym wyborze uruchamiane\n"
 "    s± POLECENIA a¿ do polecenia break.    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4510,12 +4774,13 @@ msgstr ""
 "    Opcje:\n"
 "      -p\twypisanie podsumowania czasów w przeno¶nym formacie POSIX\n"
 "    \n"
-"    Jako format danych wyj¶ciowych u¿ywana jest warto¶æ zmiennej TIMEFORMAT.\n"
+"    Jako format danych wyj¶ciowych u¿ywana jest warto¶æ zmiennej "
+"TIMEFORMAT.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Polecenie zwraca status zakoñczenia POTOKU poleceñ."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4533,16 +4798,21 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4554,7 +4824,8 @@ msgstr ""
 "    uruchamiana jest lista `then POLECENIA'. W przeciwnym przypadku\n"
 "    uruchamiane s± poszczególne listy `elif POLECENIA' i, je¶li kod powrotu\n"
 "    takiej listy jest zerem, uruchamiana jest odpowiednia lista\n"
-"    `then POLECENIA', po czym polecenie if siê koñczy. W przeciwnym przypadku\n"
+"    `then POLECENIA', po czym polecenie if siê koñczy. W przeciwnym "
+"przypadku\n"
 "    uruchamiana jest lista `else POLECENIA', je¶li taka istnieje. Kodem\n"
 "    zakoñczenia ca³ej konstrukcji jest kod zakoñczenia ostatniego\n"
 "    uruchomionego polecenia lub zero, gdy ¿aden ze sprawdzanych warunków\n"
@@ -4563,7 +4834,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4581,7 +4852,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4599,7 +4870,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4613,19 +4884,21 @@ msgid ""
 msgstr ""
 "Utworzenie koprocesu o podanej NAZWIE.\n"
 "    \n"
-"    Asynchroniczne wykonanie POLECENIA ze standardowym wyj¶ciem i standardowym\n"
+"    Asynchroniczne wykonanie POLECENIA ze standardowym wyj¶ciem i "
+"standardowym\n"
 "    wej¶ciem polecenia po³±czonych potokiem z deskryptorami plików\n"
 "    przypisanymi do indeksów 0 i 1 zmiennej tablicowej NAZWA w pow³oce.\n"
 "    Domy¶ln± NAZW¡ jest \"COPROC\".\n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia POLECENIA."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4634,15 +4907,17 @@ msgid ""
 msgstr ""
 "Zdefiniowanie funkcji pow³oki.\n"
 "    \n"
-"    Utworzenie funkcji pow³oki o podanej NAZWIE. Przy wywo³aniu jako zwyk³ego\n"
+"    Utworzenie funkcji pow³oki o podanej NAZWIE. Przy wywo³aniu jako "
+"zwyk³ego\n"
 "    polecenia NAZWA uruchamia POLECENIA w kontek¶cie pow³oki wywo³uj±cej.\n"
-"    Przy wywo³ywaniu NAZWY, argumenty s± przekazywane do funkcji jako $1...$n,\n"
+"    Przy wywo³ywaniu NAZWY, argumenty s± przekazywane do funkcji jako $1..."
+"$n,\n"
 "    a nazwa funkcji w $FUNCNAME.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest sukces, chyba ¿e NAZWA jest tylko do odczytu."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4660,7 +4935,7 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest status zakoñczenia ostatniego wykonanego polecenia."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4675,15 +4950,18 @@ msgid ""
 msgstr ""
 "Wznowienie zadania jako pierwszoplanowego.\n"
 "    \n"
-"    Równowa¿ne argumentowi ZADANIE polecenia `fg'. Wznowienie zatrzymanego lub\n"
-"    dzia³aj±cego w tle zadania. ZADANIE mo¿e okre¶laæ nazwê zadania albo jego\n"
-"    numer. Umieszczenie `&' po ZADANIU umieszcza zadanie w tle tak, jak to siê\n"
+"    Równowa¿ne argumentowi ZADANIE polecenia `fg'. Wznowienie zatrzymanego "
+"lub\n"
+"    dzia³aj±cego w tle zadania. ZADANIE mo¿e okre¶laæ nazwê zadania albo "
+"jego\n"
+"    numer. Umieszczenie `&' po ZADANIU umieszcza zadanie w tle tak, jak to "
+"siê\n"
 "    dzieje po podaniu specyfikacji zadania jako argumentu dla `bg'.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracany jest stan wznowionego zadania."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4695,19 +4973,24 @@ msgid ""
 msgstr ""
 "Obliczenie wyra¿enia arytmetycznego.\n"
 "    \n"
-"    Obliczenie WYRA¯ENIA zgodnie z zasadami obliczania wyra¿eñ arytmetycznych.\n"
+"    Obliczenie WYRA¯ENIA zgodnie z zasadami obliczania wyra¿eñ "
+"arytmetycznych.\n"
 "    Równowa¿ne \"let WYRA¯ENIE\".\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracane jest 1, je¶li warto¶ci± WYRA¯ENIA jest 0; 0 w przeciwnym wypadku."
+"    Zwracane jest 1, je¶li warto¶ci± WYRA¯ENIA jest 0; 0 w przeciwnym "
+"wypadku."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4728,7 +5011,8 @@ msgstr ""
 "Wykonanie polecenia warunkowego.\n"
 "    \n"
 "    Zwracany jest status wynosz±cy 0 lub 1 w zale¿no¶ci od wyniku WYRA¯ENIA\n"
-"    warunkowego. Wyra¿enia s± tworzone na tych samych zasadach, co w poleceniu\n"
+"    warunkowego. Wyra¿enia s± tworzone na tych samych zasadach, co w "
+"poleceniu\n"
 "    `test' i mog± byæ ³±czone za pomoc± nastêpuj±cych operatorów:\n"
 "    \n"
 "      ( WYRA¯ENIE )\tzwraca warto¶æ WYRA¯ENIA\n"
@@ -4740,17 +5024,19 @@ msgstr ""
 "    \t\t\tfa³szywe w innym przypadku\n"
 "    \n"
 "    W przypadku u¿ycia operatorów `==' lub `!=' napis po prawej stronie\n"
-"    operatora jest traktowany jak wzorzec i wykonywane jest dopasowywanie do\n"
+"    operatora jest traktowany jak wzorzec i wykonywane jest dopasowywanie "
+"do\n"
 "    wzorca. W przypadku u¿ycia operatora `=~' ³añcuch po prawej stronie\n"
 "    operatora jest dopasowywany jako wyra¿enie regularne.\n"
 "    \n"
-"    Operatory && i || nie obliczaj± WYR2, je¶li obliczenie WYR1 wystarcza do\n"
+"    Operatory && i || nie obliczaj± WYR2, je¶li obliczenie WYR1 wystarcza "
+"do\n"
 "    okre¶lenia warto¶ci wyra¿enia.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    0 lub 1 w zale¿no¶ci od warto¶ci WYRA¯ENIA."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4850,14 +5136,15 @@ msgstr ""
 "    \t\tzadania.\n"
 "    histchars\tZnaki steruj±ce rozwijaniem wg historii i szybkim\n"
 "    \t\tpodstawianiem. Pierwszy znak jest znakiem podstawiania\n"
-"    \t\thistorii, zwykle `!'. Drugi jest znakiem \"szybkiego podstawienia\",\n"
+"    \t\thistorii, zwykle `!'. Drugi jest znakiem \"szybkiego podstawienia"
+"\",\n"
 "    \t\tzwykle `^'. Trzeci znak jest znakiem \"komentarza historii\",\n"
 "    \t\tzwykle `#'.\n"
 "    HISTIGNORE\tRozdzielona dwukropkami lista wzorców u¿ywanych przy\n"
 "    \t\tdecydowaniu, które polecenia powinny byæ zapisywane na li¶cie\n"
 "    \t\thistorii.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4910,10 +5197,11 @@ msgstr ""
 "    Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e podano b³êdny argument lub zmiana katalogu\n"
+"    Zwracana jest prawda, chyba ¿e podano b³êdny argument lub zmiana "
+"katalogu\n"
 "    siê nie powiedzie."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4961,10 +5249,11 @@ msgstr ""
 "    Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e podano b³êdny argument lub zmiana katalogu\n"
+"    Zwracana jest prawda, chyba ¿e podano b³êdny argument lub zmiana "
+"katalogu\n"
 "    siê nie powiedzie."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4981,10 +5270,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4992,7 +5283,8 @@ msgid ""
 msgstr ""
 "Wypisanie stosu katalogów.\n"
 "    \n"
-"    Wypisanie listy aktualnie pamiêtanych katalogów. Katalogi umieszczane s±\n"
+"    Wypisanie listy aktualnie pamiêtanych katalogów. Katalogi umieszczane "
+"s±\n"
 "    na li¶cie za pomoc± polecenia `pushd'; mo¿na cofaæ siê w obrêbie listy\n"
 "    za pomoc± polecenia `popd'.\n"
 "    \n"
@@ -5015,12 +5307,13 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5036,7 +5329,8 @@ msgid ""
 msgstr ""
 "Ustawianie i anulowanie opcji pow³oki.\n"
 "    \n"
-"    Zmiana ustawienia ka¿dej z NAZWY-OPCJI. Bez argumentów bêd±cych opcjami,\n"
+"    Zmiana ustawienia ka¿dej z NAZWY-OPCJI. Bez argumentów bêd±cych "
+"opcjami,\n"
 "    wypisywane s± wszystkie opcje pow³oki z zaznaczeniem w³±czonych.\n"
 "    \n"
 "    Opcje:\n"
@@ -5047,10 +5341,12 @@ msgstr ""
 "      -u\twy³±czenie (anulowanie) ka¿dej NAZWY-OPCJI\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda je¶li NAZWA-OPCJI jest w³±czona; niepowodzenie, je¶li\n"
+"    Zwracana jest prawda je¶li NAZWA-OPCJI jest w³±czona; niepowodzenie, "
+"je¶li\n"
 "    podano b³êdn± opcjê lub NAZWA-OPCJI jest wy³±czona."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5058,22 +5354,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Formatowanie i wypisanie ARGUMENTÓW zgodnie z FORMATEM.\n"
@@ -5083,9 +5385,12 @@ msgstr ""
 "    \t\twypisywania na standardowym wyj¶ciu\n"
 "    \n"
 "    FORMAT jest ³añcuchem znakowym zawieraj±cym trzy rodzaje obiektów:\n"
-"    zwyk³e znaki, które s± kopiowane na standardowe wyj¶cie; znaki sekwencji\n"
-"    steruj±cych, które s± przekszta³cane i kopiowane na standardowe wyj¶cie;\n"
-"    oraz sekwencje formatuj±ce, z których ka¿da powoduje wypisanie kolejnego\n"
+"    zwyk³e znaki, które s± kopiowane na standardowe wyj¶cie; znaki "
+"sekwencji\n"
+"    steruj±cych, które s± przekszta³cane i kopiowane na standardowe "
+"wyj¶cie;\n"
+"    oraz sekwencje formatuj±ce, z których ka¿da powoduje wypisanie "
+"kolejnego\n"
 "    argumentu.\n"
 "    \n"
 "    Poza standardowymi sekwencjami formatuj±cymi opisanymi w printf(1) oraz\n"
@@ -5102,12 +5407,14 @@ msgstr ""
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub zapis albo\n"
 "    przypisanie zakoñczy siê niepowodzeniem."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5129,7 +5436,8 @@ msgstr ""
 "Okre¶lenie sposobu dope³niania argumentów przez Readline.\n"
 "    \n"
 "    Okre¶lenie dla ka¿dej NAZWY sposobu dope³niania argumentów. Je¶li nie\n"
-"    podano opcji, wypisywane s± istniej±ce specyfikacje dope³niania w sposób\n"
+"    podano opcji, wypisywane s± istniej±ce specyfikacje dope³niania w "
+"sposób\n"
 "    pozwalaj±cy na ich ponowne u¿ycie jako wej¶cie.\n"
 "    \n"
 "    Opcje:\n"
@@ -5147,12 +5455,13 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5167,13 +5476,16 @@ msgstr ""
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5198,7 +5510,8 @@ msgstr ""
 "    \n"
 "    Zmiana opcji dope³niania dla ka¿dej NAZWY lub, je¶li nie podano NAZW,\n"
 "    aktualnie wykonywanego dope³niania. Je¶li nie podano OPCJI, wypisanie\n"
-"    opcji dope³niania dla ka¿dej NAZWY lub bie¿±cej specyfikacji dope³niania.\n"
+"    opcji dope³niania dla ka¿dej NAZWY lub bie¿±cej specyfikacji "
+"dope³niania.\n"
 "    \n"
 "    Opcje:\n"
 "    \t-o opcja\tUstawienie podanej OPCJI dope³niania dla ka¿dej NAZWY\n"
@@ -5209,32 +5522,40 @@ msgstr ""
 "    \n"
 "    Argumenty:\n"
 "    \n"
-"    Ka¿da NAZWA odnosi siê do polecenia, dla którego specyfikacja dope³niania\n"
+"    Ka¿da NAZWA odnosi siê do polecenia, dla którego specyfikacja "
+"dope³niania\n"
 "    musi byæ wcze¶niej zdefiniowana przy u¿yciu polecenia wbudowanego\n"
 "    `complete'. Je¶li nie podano NAZW, compopt musi byæ wywo³ane z funkcji\n"
-"    aktualnie generuj±cej dope³nienia, wtedy zmieniane s± opcje dla aktualnie\n"
+"    aktualnie generuj±cej dope³nienia, wtedy zmieniane s± opcje dla "
+"aktualnie\n"
 "    wykonywanego generatora dope³nieñ.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
 "    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub NAZWA nie ma\n"
 "    zdefiniowanej specyfikacji dope³niania."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5244,11 +5565,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Odczyt linii ze standardowego wej¶cia do zmiennej tablicowej indeksowanej.\n"
@@ -5272,17 +5595,19 @@ msgstr ""
 "      TABLICA\t\tNazwa zmiennej tablicowej do u¿ycia na dane z pliku.\n"
 "    \n"
 "    Je¶li podano -C bez -c, domy¶lnym krokiem jest 5000. Podczas obliczania\n"
-"    WYWO£ANIA jest przekazywany indeks do nastêpnego elementu tablicy, który\n"
+"    WYWO£ANIA jest przekazywany indeks do nastêpnego elementu tablicy, "
+"który\n"
 "    ma byæ przypisany oraz - jako kolejne argumenty - linia do przypisania.\n"
 "    \n"
 "    Je¶li nie podano jawnie pocz±tku, mapfile czy¶ci TABLICÊ przed\n"
 "    przypisywaniem.\n"
 "    \n"
 "    Stan wyj¶ciowy:\n"
-"    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub TABLICA jest tylko\n"
+"    Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub TABLICA jest "
+"tylko\n"
 "    do odczytu, lub nie jest tablic± indeksowan±."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 1d1f8677409d9e42affd19b45695d845f9b66992..b03496aca96622b87562af0018fb0ab806cd2b50 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index 6c0e3f6b0bb170bbae2ae0f7d55d0904e2a6a69e..d2c48d25e57ee6702aaf273ae34b5b42b14fcba1 100644 (file)
@@ -6,59 +6,60 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2002-05-08 13:50GMT -3\n"
 "Last-Translator: Halley Pacheco de Oliveira <halleypo@ig.com.br>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 0.9.5\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "índice da matriz (array) incorreto"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%c%c: opção incorreta"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: impossível atribuir a índice não numérico"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: impossível criar: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -68,36 +69,36 @@ msgstr ""
 msgid "`%s': invalid alias name"
 msgstr "%c%c: opção incorreta"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, fuzzy, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: impossível criar: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, fuzzy, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: comando não encontrado"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, fuzzy, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: função somente para leitura"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr ""
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr ""
@@ -118,11 +119,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "número excessivo de argumentos"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr ""
 
@@ -131,7 +136,7 @@ msgstr ""
 msgid "line %d: "
 msgstr "encaixe (slot) %3d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "escrevendo"
@@ -141,11 +146,7 @@ msgstr "escrevendo"
 msgid "%s: usage: "
 msgstr ""
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "número excessivo de argumentos"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, fuzzy, c-format
 msgid "%s: option requires an argument"
 msgstr "a opção requer um argumento: -"
@@ -160,7 +161,7 @@ msgstr ""
 msgid "%s: not found"
 msgstr "%s: comando não encontrado"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, fuzzy, c-format
 msgid "%s: invalid option"
 msgstr "%c%c: opção incorreta"
@@ -170,7 +171,7 @@ msgstr "%c%c: op
 msgid "%s: invalid option name"
 msgstr "%c%c: opção incorreta"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, fuzzy, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s' não é um identificador válido"
@@ -185,7 +186,7 @@ msgstr "n
 msgid "invalid hex number"
 msgstr "número do sinal incorreto"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 #, fuzzy
 msgid "invalid number"
 msgstr "número do sinal incorreto"
@@ -200,7 +201,7 @@ msgstr ""
 msgid "`%s': not a pid or valid job spec"
 msgstr ""
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: a variável permite somente leitura"
@@ -275,26 +276,26 @@ msgstr ""
 msgid "%s: ambiguous job spec"
 msgstr "%s: Redirecionamento ambíguo"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -307,7 +308,7 @@ msgstr "somente pode ser usado dentro de fun
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: função somente para leitura"
@@ -317,7 +318,7 @@ msgstr "%s: fun
 msgid "%s: cannot destroy array variables in this way"
 msgstr "$%s: impossível atribuir desta maneira"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -346,8 +347,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: impossível criar: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: é um diretório"
@@ -362,8 +363,7 @@ msgstr "%s: imposs
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: impossível executar o arquivo binário"
@@ -477,7 +477,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, fuzzy, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: esperado expressão de número inteiro"
@@ -501,7 +501,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr "Erro desconhecido %d"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "esperado uma expressão"
 
@@ -510,12 +510,12 @@ msgstr "esperado uma express
 msgid "%s: not an indexed array"
 msgstr "%s: variável não vinculada"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -544,31 +544,31 @@ msgstr "%s: vari
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%c%c: opção incorreta"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr ""
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -662,17 +662,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, fuzzy, c-format
 msgid "read error: %d: %s"
 msgstr "erro de `pipe': %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -681,17 +681,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "somente pode ser usado dentro de funções; faz com que o escopo visível"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, fuzzy, c-format
 msgid "%s: cannot unset"
 msgstr "%s: impossível criar: %s"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, fuzzy, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: impossível criar: %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, fuzzy, c-format
 msgid "%s: not an array variable"
 msgstr "%s: variável não vinculada"
@@ -706,11 +706,11 @@ msgstr "%s: fun
 msgid "shift count"
 msgstr "shift [n]"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -753,7 +753,7 @@ msgstr "%s: fun
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -763,27 +763,27 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, fuzzy, c-format
 msgid "`%c': bad command"
 msgstr "%c%c: opção incorreta"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, fuzzy, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: impossível criar: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 #, fuzzy
 msgid "limit"
 msgstr "Tempo limite de CPU excedido"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, fuzzy, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: impossível criar: %s"
@@ -803,7 +803,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -817,27 +817,27 @@ msgstr "`r', o 
 msgid "Aborting..."
 msgstr ""
 
-#: error.c:406
+#: error.c:410
 #, fuzzy
 msgid "unknown command error"
 msgstr "Erro desconhecido %d"
 
-#: error.c:407
+#: error.c:411
 #, fuzzy
 msgid "bad command type"
 msgstr "usado como nome de um comando."
 
-#: error.c:408
+#: error.c:412
 #, fuzzy
 msgid "bad connector"
 msgstr "conector incorreto `%d'"
 
-#: error.c:409
+#: error.c:413
 #, fuzzy
 msgid "bad jump"
 msgstr "Desvio incorreto %d"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variável não vinculada"
@@ -854,106 +854,121 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "erro de `pipe': %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comando não encontrado"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: é um diretório"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: impossível executar o arquivo binário"
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5296
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "excedido o nível de recursividade da expressão"
 
-#: expr.c:280
+#: expr.c:282
 #, fuzzy
 msgid "recursion stack underflow"
 msgstr "Estouro na base da pilha de recursividade"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "erro de sintaxe na expressão"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "tentativa de atribuição para algo que não é uma variável"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "divisão por 0"
 
-#: expr.c:517
+#: expr.c:540
 #, fuzzy
 msgid "bug: bad expassign token"
 msgstr "Erro de programação: `token' inválido `%d' passado para expassign()"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "`:' esperado para expressão condicional"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "faltando `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 #, fuzzy
 msgid "syntax error: operand expected"
 msgstr "erro de sintaxe: fim prematuro do arquivo"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, fuzzy, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s: %s: %s (erro: o `token' é \"%s\")\n"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valor muito grande para esta base de numeração"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "%s: esperado expressão de número inteiro"
@@ -963,170 +978,170 @@ msgstr "%s: esperado express
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd: impossível acessar os diretórios pais (anteriores)"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, fuzzy, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s"
 
-#: input.c:260
+#: input.c:265
 #, fuzzy, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "impossível alocar novo descritor de arquivo (fd) para a entrada\n"
 "do `bash'  a partir do descritor de arquivo (fd) %d: %s"
 
-#: input.c:268
+#: input.c:273
 #, fuzzy, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 "check_bash_input: já existe o espaço intermediário (buffer)\n"
 "para o novo descritor de arquivo (fd) %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: o identificador do processo (pid) não existe (%d)!\n"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Sinal desconhecido #%d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Concluído"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Parado"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Parado"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Executando"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Concluído(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Fim da execução com status %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Status desconhecido"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(imagem do núcleo gravada)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd agora: %s)\n"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "`setpgid' filho (%d para %d) erro %d: %s\n"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: o pid %d não é um filho deste `shell'"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: o trabalho terminou"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "encaixe (slot) %3d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (imagem do núcleo gravada)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd agora: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp falhou: %s"
 
-#: jobs.c:3669
+#: jobs.c:3703
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplina da linha: %s"
 
-#: jobs.c:3679
+#: jobs.c:3713
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp falhou: %s"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "nenhum controle de trabalho nesta `shell'"
 
@@ -1194,7 +1209,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1217,22 +1232,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)"
@@ -1265,123 +1280,123 @@ msgstr "erro de sintaxe: fim prematuro do arquivo"
 msgid "syntax error: `((%s))'"
 msgstr "erro de sintaxe"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: o tipo da instrução está incorreto %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, fuzzy, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 #, fuzzy
 msgid "unexpected EOF while looking for `]]'"
 msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, fuzzy, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "erro de sintaxe próximo do `token' não esperado `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 #, fuzzy
 msgid "syntax error in conditional expression"
 msgstr "erro de sintaxe na expressão"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 #, fuzzy
 msgid "expected `)'"
 msgstr "esperado `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, fuzzy, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "%s: esperado operador binário"
 
-#: parse.y:4198
+#: parse.y:4211
 #, fuzzy
 msgid "conditional binary operator expected"
 msgstr "%s: esperado operador binário"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, fuzzy, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "`:' esperado para expressão condicional"
 
-#: parse.y:4238
+#: parse.y:4251
 #, fuzzy, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "`:' esperado para expressão condicional"
 
-#: parse.y:4242
+#: parse.y:4255
 #, fuzzy, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "`:' esperado para expressão condicional"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "erro de sintaxe próximo do `token' não esperado `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, fuzzy, c-format
 msgid "syntax error near `%s'"
 msgstr "erro de sintaxe próximo do `token' não esperado `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "erro de sintaxe: fim prematuro do arquivo"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "erro de sintaxe"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Use \"%s\" para sair da `shell'.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 #, fuzzy
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "encontrado EOF não esperado enquanto procurava por `%c'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1391,26 +1406,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector incorreto `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1448,34 +1463,34 @@ msgstr "%s: imposs
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 #, fuzzy
 msgid "redirection error: cannot duplicate fd"
 msgstr "erro de redirecionamento"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr ""
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr ""
 
-#: shell.c:884
+#: shell.c:888
 #, fuzzy, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opção incorreta"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Eu não tenho nome!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, fuzzy, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU %s, versão %s\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1484,44 +1499,44 @@ msgstr ""
 "Utilização:\t%s [opção-longa-GNU] [opção] ...\n"
 "\t%s [opção-longa-GNU] [opção] arquivo-de-script ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "opções-longas-GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opções da `shell':\n"
 
-#: shell.c:1803
+#: shell.c:1815
 #, fuzzy
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD ou -c comando\t\t(somente para chamada)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ou -o opção\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Digite `%s -c \"help set\"' para mais informações sobre as opções da "
 "`shell'.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Digite `%s -c help' para mais informações sobre os comandos internos do "
 "`shell'.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1696,92 +1711,92 @@ msgstr "Sinal desconhecido #"
 msgid "Unknown Signal #%d"
 msgstr "Sinal desconhecido #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, fuzzy, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "substituição incorreta: nenhum `%s' em %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: impossível atribuir uma lista a um membro de uma matriz (array)"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 #, fuzzy
 msgid "cannot make pipe for process substitution"
 msgstr "impossível criar `pipe' para a substituição do processo: %s"
 
-#: subst.c:5027
+#: subst.c:5039
 #, fuzzy
 msgid "cannot make child for process substitution"
 msgstr "impossível criar um processo filho para a substituição do processo: %s"
 
-#: subst.c:5072
+#: subst.c:5084
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "impossível abrir o `named pipe' %s para %s: %s"
 
-#: subst.c:5074
+#: subst.c:5086
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "impossível abrir o `named pipe' %s para %s: %s"
 
-#: subst.c:5092
+#: subst.c:5104
 #, fuzzy, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 "impossível duplicar o `named pipe' %s\n"
 "como descritor de arquivo (fd) %d: %s"
 
-#: subst.c:5284
+#: subst.c:5296
 #, fuzzy
 msgid "cannot make pipe for command substitution"
 msgstr "impossível construir `pipes' para substituição do comando: %s"
 
-#: subst.c:5322
+#: subst.c:5334
 #, fuzzy
 msgid "cannot make child for command substitution"
 msgstr "impossível criar um processo filho para substituição do comando: %s"
 
-#: subst.c:5339
+#: subst.c:5351
 #, fuzzy
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 "command_substitute: impossível duplicar o `pipe' como\n"
 "descritor de arquivo (fd) 1: %s"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parâmetro nulo ou não inicializado"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expressão de substring < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: substituição incorreta"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: impossível atribuir desta maneira"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituição incorreta: nenhum `%s' em %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1818,78 +1833,78 @@ msgstr "%s: esperado operador bin
 msgid "missing `]'"
 msgstr "faltando `]'"
 
-#: trap.c:207
+#: trap.c:209
 #, fuzzy
 msgid "invalid signal number"
 msgstr "número do sinal incorreto"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, fuzzy, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Sinal incorreto %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "erro ao importar a definição da função para `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parâmetro nulo ou não inicializado"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: impossível criar: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1963,7 +1978,7 @@ msgstr "unalias [-a] [NOME ...]"
 #: builtins.c:51
 #, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m MAPA-TECLAS] [-f ARQUIVO] [-q NOME-FUNÇÃO] [-r SEQ-"
@@ -2188,7 +2203,7 @@ msgstr "type [-apt] NOME [NOME ...]"
 
 #: builtins.c:169
 #, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdfmstpnuv] [LIMITE]"
 
 #: builtins.c:172
@@ -2198,7 +2213,7 @@ msgstr "umask [-S] [MODO]"
 
 #: builtins.c:175
 #, fuzzy
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr "wait [n]"
 
 #: builtins.c:179
@@ -2397,12 +2412,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2414,7 +2431,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Prossegue no próximo ciclo do laço FOR, WHILE ou UNTIL envolvente."
 
-#: builtins.c:338
+#: builtins.c:340
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2426,7 +2443,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr "Prossegue no próximo ciclo do laço FOR, WHILE ou UNTIL envolvente."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2440,7 +2457,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2456,7 +2473,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2479,13 +2496,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2493,7 +2515,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2509,7 +2531,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2521,7 +2543,7 @@ msgid ""
 msgstr ""
 "Nenhum efeito; o comando não faz nada.  Retorna zero no código de saída."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2529,7 +2551,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2537,7 +2559,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2556,7 +2578,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2594,14 +2616,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2616,11 +2638,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2632,6 +2656,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2647,7 +2672,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2660,7 +2685,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2687,7 +2712,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2699,7 +2724,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2740,7 +2765,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2763,7 +2788,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2772,7 +2797,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Sair da `shell' com status igual a N.  Se N for omitido, o status"
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2781,7 +2806,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2811,7 +2836,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -2825,7 +2850,7 @@ msgid ""
 msgstr ""
 "Colocar JOB-ESPECIFICADO no primeiro plano, e torná-lo o trabalho atual."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2839,7 +2864,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2863,7 +2888,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2885,7 +2910,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2919,7 +2944,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2943,7 +2968,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2960,7 +2985,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2982,7 +3007,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3027,7 +3052,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3064,18 +3089,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3087,7 +3115,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3153,7 +3181,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3172,7 +3200,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3192,7 +3220,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3211,7 +3239,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3231,7 +3259,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3242,7 +3270,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3256,7 +3284,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3270,7 +3298,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3351,7 +3379,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3360,7 +3388,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr "argumento deve ser o literal `]', para fechar o `[' de abertura."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3372,7 +3400,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3416,7 +3444,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3446,7 +3474,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3475,6 +3503,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3490,7 +3521,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3508,24 +3539,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3539,7 +3570,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3552,7 +3583,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3569,7 +3600,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3589,7 +3620,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3605,7 +3636,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -3618,7 +3649,7 @@ msgid ""
 msgstr ""
 "Executar seletivamente COMANDOS tomando por base a correspondência entre"
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3639,7 +3670,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -3651,7 +3682,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Expande e executa COMANDOS enquanto o comando final nos"
 
-#: builtins.c:1608
+#: builtins.c:1621
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -3663,7 +3694,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Expande e executa COMANDOS enquanto o comando final nos"
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3676,7 +3707,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3690,7 +3721,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -3702,7 +3733,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr "Executa um conjunto de comandos agrupando-os.  Esta é uma forma de"
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3716,7 +3747,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3727,7 +3758,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3755,7 +3786,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3809,7 +3840,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3840,7 +3871,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3867,7 +3898,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3896,7 +3927,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3917,7 +3948,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3935,8 +3966,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3950,7 +3981,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3977,7 +4008,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3990,7 +4021,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4021,7 +4052,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4062,7 +4093,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index d19197aecb26063997ca97fade1159047bd99c7c..e1290c52c6527a3e5f78178140623515ca41efe3 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index 5b699980a4255b22da8fc7d35ed7f8d6d2549bb9..b6583b783418699eb846060e522a1ec9306cebdb 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -6,58 +6,59 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 1997-08-17 18:42+0300\n"
 "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"Language: ro\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "incluziune greºitã în interval"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%c%c: opþiune invalidã"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: nu se poate atribui cãtre index ne-numeric"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -67,36 +68,36 @@ msgstr ""
 msgid "`%s': invalid alias name"
 msgstr "%c%c: opþiune invalidã"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, fuzzy, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, fuzzy, c-format
 msgid "`%s': cannot unbind"
 msgstr "%s: comandã negãsitã"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, fuzzy, c-format
 msgid "`%s': unknown function name"
 msgstr "%s: funcþie doar în citire (readonly)"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr ""
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr ""
@@ -117,11 +118,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr ""
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "prea mulþi parametri"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr ""
 
@@ -130,7 +135,7 @@ msgstr ""
 msgid "line %d: "
 msgstr "slot %3d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "în scriere"
@@ -140,11 +145,7 @@ msgstr "
 msgid "%s: usage: "
 msgstr ""
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "prea mulþi parametri"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, fuzzy, c-format
 msgid "%s: option requires an argument"
 msgstr "opþiunea necesitã un parametru: -"
@@ -159,7 +160,7 @@ msgstr ""
 msgid "%s: not found"
 msgstr "%s: comandã negãsitã"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, fuzzy, c-format
 msgid "%s: invalid option"
 msgstr "%c%c: opþiune invalidã"
@@ -169,7 +170,7 @@ msgstr "%c%c: op
 msgid "%s: invalid option name"
 msgstr "%c%c: opþiune invalidã"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, fuzzy, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s' nu este un identificator valid"
@@ -184,7 +185,7 @@ msgstr "num
 msgid "invalid hex number"
 msgstr "numãr de semnal invalid"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 #, fuzzy
 msgid "invalid number"
 msgstr "numãr de semnal invalid"
@@ -199,7 +200,7 @@ msgstr ""
 msgid "`%s': not a pid or valid job spec"
 msgstr ""
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: variabilã doar în citire"
@@ -274,26 +275,26 @@ msgstr ""
 msgid "%s: ambiguous job spec"
 msgstr "%s: Redirectare ambiguã"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -306,7 +307,7 @@ msgstr "poate fi folosit doar 
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funcþie doar în citire (readonly)"
@@ -316,7 +317,7 @@ msgstr "%s: func
 msgid "%s: cannot destroy array variables in this way"
 msgstr "$%s: nu se poate asigna în acest mod"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -345,8 +346,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: este director"
@@ -361,8 +362,7 @@ msgstr "%s: nu se poate executa fi
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nu se poate executa fiºierul binar"
@@ -476,7 +476,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, fuzzy, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: se aºteaptã expresie întreagã (integer)"
@@ -500,7 +500,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr "Eroare necunoscutã %d"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "se aºteaptã expresie"
 
@@ -509,12 +509,12 @@ msgstr "se a
 msgid "%s: not an indexed array"
 msgstr "%s: variabilã fãrã limitã"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -543,31 +543,31 @@ msgstr "%s: variabil
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%c%c: opþiune invalidã"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr ""
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -660,17 +660,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, fuzzy, c-format
 msgid "read error: %d: %s"
 msgstr "eroare de legãturã (pipe): %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -679,17 +679,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "poate fi folosit doar într-o funcþie, ºi face ca variabila NUME"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, fuzzy, c-format
 msgid "%s: cannot unset"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, fuzzy, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, fuzzy, c-format
 msgid "%s: not an array variable"
 msgstr "%s: variabilã fãrã limitã"
@@ -704,11 +704,11 @@ msgstr "%s: func
 msgid "shift count"
 msgstr "shift [n]"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -751,7 +751,7 @@ msgstr "%s: func
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -761,27 +761,27 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, fuzzy, c-format
 msgid "`%c': bad command"
 msgstr "%c%c: opþiune invalidã"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, fuzzy, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 #, fuzzy
 msgid "limit"
 msgstr "limitã CPU"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, fuzzy, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: nu s-a putut crea: %s"
@@ -801,7 +801,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -815,27 +815,27 @@ msgstr "ultima comand
 msgid "Aborting..."
 msgstr ""
 
-#: error.c:406
+#: error.c:410
 #, fuzzy
 msgid "unknown command error"
 msgstr "Eroare necunoscutã %d"
 
-#: error.c:407
+#: error.c:411
 #, fuzzy
 msgid "bad command type"
 msgstr "ºi nume de comandã."
 
-#: error.c:408
+#: error.c:412
 #, fuzzy
 msgid "bad connector"
 msgstr "conector greºit `%d'"
 
-#: error.c:409
+#: error.c:413
 #, fuzzy
 msgid "bad jump"
 msgstr "Salt invalid %d"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: variabilã fãrã limitã"
@@ -850,106 +850,121 @@ msgstr "%ca expirat a
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "eroare de legãturã (pipe): %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: comandã negãsitã"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, fuzzy, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: este director"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: nu se poate executa fiºierul binar"
+
+#: execute_cmd.c:5244
+#, c-format
+msgid "`%s': is a special builtin"
+msgstr ""
+
+#: execute_cmd.c:5296
 #, fuzzy, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nu se poate duplica fd %d în fd 0: %s"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "nivel de recursivitate al expresiei depãºit"
 
-#: expr.c:280
+#: expr.c:282
 #, fuzzy
 msgid "recursion stack underflow"
 msgstr "Stivã recursivitate prea puþin folositã(underflow)"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "eroare de sintaxã în expresie "
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "s-a încercat asignare cãtre non-variabilã"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "împãrþire la 0"
 
-#: expr.c:517
+#: expr.c:540
 #, fuzzy
 msgid "bug: bad expassign token"
 msgstr "bug: identificator(token) expassign greºit %d"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "`:' aºteptat dupã expresie condiþionalã"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "`)' lipsã"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 #, fuzzy
 msgid "syntax error: operand expected"
 msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, fuzzy, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s: %s: %s (identificatorul erorii este \"%s\")\n"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "valoare prea mare pentru bazã"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "eroare de redirectare"
@@ -959,167 +974,167 @@ msgstr "eroare de redirectare"
 msgid "getcwd: cannot access parent directories"
 msgstr "getwd: nu s-au putut accesa directoarele pãrinte"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 
-#: input.c:260
+#: input.c:265
 #, fuzzy, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "nu se poate aloca descriptor de fiºier nou pentru inputul bash din fd %d: %s"
 
-#: input.c:268
+#: input.c:273
 #, fuzzy, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "check_bash_input: buffer deja existent pentru fd nou %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, fuzzy, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: Nu existã pid-ul (%d)!\n"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, fuzzy, c-format
 msgid "Signal %d"
 msgstr "Semnal Necunoscut #%d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Finalizat"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stopat"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, fuzzy, c-format
 msgid "Stopped(%s)"
 msgstr "Stopat"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "În rulare"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Finalizat(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Ieºire %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Stare necunoscutã"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(core dumped) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, fuzzy, c-format
 msgid "  (wd: %s)"
 msgstr "(wd actual: %s)\n"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, fuzzy, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid copil (de la %d la %d) a întâlnit o eroare %d: %s\n"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, fuzzy, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "aºteptaþi: pid-ul %d nu este rezultat(child) al acestui shell"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: jobul a fost terminat"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "slot %3d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (core dumped)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd actual: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 #, fuzzy
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_jobs: getpgrp eºuat: %s"
 
-#: jobs.c:3669
+#: jobs.c:3703
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_jobs: disciplinã linie: %s"
 
-#: jobs.c:3679
+#: jobs.c:3713
 #, fuzzy
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_jobs: getpgrp eºuat: %s"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "nici un control de job în acest shell"
 
@@ -1186,7 +1201,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1209,22 +1224,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)"
@@ -1257,123 +1272,123 @@ msgstr "eroare de sintax
 msgid "syntax error: `((%s))'"
 msgstr "eroare de sintaxã"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: tip de instrucþiune greºit %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, fuzzy, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "EOF brusc în cãutare dupã `%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 #, fuzzy
 msgid "unexpected EOF while looking for `]]'"
 msgstr "EOF brusc în cãutare dupã `%c'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, fuzzy, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "eroare de sintaxã neaºteptatã lângã `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 #, fuzzy
 msgid "syntax error in conditional expression"
 msgstr "eroare de sintaxã în expresie "
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 #, fuzzy
 msgid "expected `)'"
 msgstr "se aºteaptã `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, fuzzy, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "%s: se aºteaptã operator binar"
 
-#: parse.y:4198
+#: parse.y:4211
 #, fuzzy
 msgid "conditional binary operator expected"
 msgstr "%s: se aºteaptã operator binar"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, fuzzy, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "`:' aºteptat dupã expresie condiþionalã"
 
-#: parse.y:4238
+#: parse.y:4251
 #, fuzzy, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "`:' aºteptat dupã expresie condiþionalã"
 
-#: parse.y:4242
+#: parse.y:4255
 #, fuzzy, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "`:' aºteptat dupã expresie condiþionalã"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "eroare de sintaxã neaºteptatã lângã `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, fuzzy, c-format
 msgid "syntax error near `%s'"
 msgstr "eroare de sintaxã neaºteptatã lângã `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "eroare de sintaxã"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Folosiþi \"%s\" pentru a pãrãsi shellul.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 #, fuzzy
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "EOF brusc în cãutare dupã `%c'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1383,26 +1398,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: conector greºitr `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1440,34 +1455,34 @@ msgstr "%s: nu pot asigna list
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 #, fuzzy
 msgid "redirection error: cannot duplicate fd"
 msgstr "eroare de redirectare"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr ""
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr ""
 
-#: shell.c:884
+#: shell.c:888
 #, fuzzy, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: opþiune invalidã"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Nu am nici un nume!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, fuzzy, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU %s, versiunea %s\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1476,44 +1491,44 @@ msgstr ""
 "Folosire:\t%s [GNU opþiune lungã] [opþiune] ...\n"
 "\t%s [GNU opþiune lungã] [opþiune] fiºier script ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "opþiuni lungi GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Opþiuni ale shell-ului:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 #, fuzzy
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD sau -c comandã\t\t(doar invocaþie)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s sau -o opþiune\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Apãsaþi `%s -c \"set-ajutor\"' pentru mai multe informaþii despre opþiunile "
 "shell-ului.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Apãsaþi `%s -c ajutor' pentru mai multe informaþii despre comenzile interne "
 "ale shell-ului.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1687,88 +1702,88 @@ msgstr "Semnal Necunoscut #"
 msgid "Unknown Signal #%d"
 msgstr "Semnal Necunoscut #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, fuzzy, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "substituþie invalidã: nu existã '%s' în %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: nu pot asigna listã membrului intervalului"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 #, fuzzy
 msgid "cannot make pipe for process substitution"
 msgstr "nu pot face legãturã (pipe) pentru substituþia procesului: %s"
 
-#: subst.c:5027
+#: subst.c:5039
 #, fuzzy
 msgid "cannot make child for process substitution"
 msgstr "nu pot crea un proces copil pentru substituirea procesului: %s"
 
-#: subst.c:5072
+#: subst.c:5084
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "nu pot deschide legãtura numitã %s pentru %s: %s"
 
-#: subst.c:5074
+#: subst.c:5086
 #, fuzzy, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "nu pot deschide legãtura numitã %s pentru %s: %s"
 
-#: subst.c:5092
+#: subst.c:5104
 #, fuzzy, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "nu se poate duplica legãtura numitã %s ca fd %d: %s "
 
-#: subst.c:5284
+#: subst.c:5296
 #, fuzzy
 msgid "cannot make pipe for command substitution"
 msgstr "nu pot face legãturi(pipes) pentru substituþia de comenzi: %s"
 
-#: subst.c:5322
+#: subst.c:5334
 #, fuzzy
 msgid "cannot make child for command substitution"
 msgstr "nu pot crea un copil pentru substituþia de comenzi: %s"
 
-#: subst.c:5339
+#: subst.c:5351
 #, fuzzy
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: nu se poate duplica legãtura (pipe) ca fd 1: %s"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametru null sau nesetat"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: expresie subºir < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: substituþie invalidã"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nu se poate asigna în acest mod"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "substituþie invalidã: nu existã ')' de final în %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1805,78 +1820,78 @@ msgstr "%s: se a
 msgid "missing `]'"
 msgstr "lipseºte ']'"
 
-#: trap.c:207
+#: trap.c:209
 #, fuzzy
 msgid "invalid signal number"
 msgstr "numãr de semnal invalid"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, fuzzy, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Semnal invalid %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "eroare în importarea definiþiei funcþiei pentru '%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parametru null sau nesetat"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: nu s-a putut crea: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1950,7 +1965,7 @@ msgstr "unalias [-a] [nume ...]"
 #: builtins.c:51
 #, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m keymap] [-f nume_fiºier] [-q nume] [-r keyseq] [keyseq:"
@@ -2173,7 +2188,7 @@ msgstr "type [-apt] nume [nume ...]"
 
 #: builtins.c:169
 #, fuzzy
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdfmstpnuv] [limitã]"
 
 #: builtins.c:172
@@ -2183,7 +2198,7 @@ msgstr "umask [-S] [mod]"
 
 #: builtins.c:175
 #, fuzzy
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr "wait [n]"
 
 #: builtins.c:179
@@ -2380,12 +2395,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2396,7 +2413,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2407,7 +2424,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2421,7 +2438,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2437,7 +2454,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2460,13 +2477,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2474,7 +2496,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2490,7 +2512,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2502,7 +2524,7 @@ msgid ""
 msgstr ""
 "Nici un efect, comanda nu face nimic.  Un cod de ieºire zero este returnat."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2510,7 +2532,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2518,7 +2540,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2537,7 +2559,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2575,14 +2597,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2597,11 +2619,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2613,6 +2637,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2628,7 +2653,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2641,7 +2666,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2668,7 +2693,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2680,7 +2705,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2721,7 +2746,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2744,7 +2769,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2753,7 +2778,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr "Iese din shell cu starea lui N. Dacã N este omis, starea de ieºire"
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2762,7 +2787,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2792,7 +2817,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2804,7 +2829,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2818,7 +2843,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2842,7 +2867,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2864,7 +2889,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2898,7 +2923,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2922,7 +2947,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2939,7 +2964,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2961,7 +2986,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3006,7 +3031,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3043,18 +3068,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3066,7 +3094,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3132,7 +3160,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3151,7 +3179,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3171,7 +3199,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3190,7 +3218,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3210,7 +3238,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3221,7 +3249,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3235,7 +3263,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3249,7 +3277,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3330,7 +3358,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3338,7 +3366,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3350,7 +3378,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3394,7 +3422,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3424,7 +3452,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3453,6 +3481,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3468,7 +3499,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3486,24 +3517,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3517,7 +3548,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3530,7 +3561,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3547,7 +3578,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3567,7 +3598,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3583,7 +3614,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3594,7 +3625,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3615,7 +3646,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3626,7 +3657,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3637,7 +3668,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3650,7 +3681,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3664,7 +3695,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3675,7 +3706,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3689,7 +3720,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3700,7 +3731,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3728,7 +3759,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3782,7 +3813,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3813,7 +3844,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3840,7 +3871,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3869,7 +3900,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3890,7 +3921,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3908,8 +3939,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3923,7 +3954,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3950,7 +3981,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3963,7 +3994,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3994,7 +4025,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4035,7 +4066,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -4167,8 +4198,8 @@ msgstr ""
 
 #~ msgid "Can't reopen pipe to command substitution (fd %d): %s"
 #~ msgstr ""
-#~ "Nu se poate redeschide legãtura (pipe) cãtre substituþia de comenzi (fd %"
-#~ "d): %s"
+#~ "Nu se poate redeschide legãtura (pipe) cãtre substituþia de comenzi (fd "
+#~ "%d): %s"
 
 #~ msgid "$%c: unbound variable"
 #~ msgstr "$%c: variabilã fãrã limitã"
index c43e01cb648c9e04d3f5dc263321eea14733f46a..c50e689980e39ead1b4d2085d2c9bdeaab478c89 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index fb4ca297c0da5d32a7b6f86872e70f741b86e168..b863d1d272c5a0db11836c1c26361a2374fff48f 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,60 +8,61 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU bash 3.1-release\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2006-01-05 21:28+0300\n"
 "Last-Translator: Evgeniy Dushistov <dushistov@mail.ru>\n"
 "Language-Team: Russian <ru@li.org>\n"
+"Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=KOI8-R\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s; ÎÅ ÍÏÇÕ ÐÒÉÐÉÓÁÔØ ÎÅ ÞÉÓÌÏ×ÏÊ ÉÎÄÅËÓ"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: ÐÅÒ×ÙÊ ÎÅÐÒÏÂÅÌØÎÙÊ ÓÉÍ×ÏÌ ÎÅ `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: ÐÒÏÐÕÝÅΠÒÁÚÄÅÌÉÔÅÌØ Ä×ÏÅÔÏÞÉÅ"
@@ -71,36 +72,36 @@ msgstr "%s: 
 msgid "`%s': invalid alias name"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: ÎÅ ÍÏÇÕ ÐÒÏÞÉÔÁÔØ: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr ""
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': ÉÍÑ ÆÕÎËÃÉÉ ÎÅÉÚ×ÅÓÔÎÏ"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s ÎÅ ÐÒÉ×ÑÚÁÎÁ ÎÅ Ë ÏÄÎÏÊ ÉÚ ËÌÁ×ÉÛ.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁΠӠÐÏÍÏÝØÀ"
@@ -120,11 +121,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "ÐÅÒÅÍÅÎÎÁÑ HOME ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "ÐÅÒÅÍÅÎÎÁÑ OLDPWD ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ"
 
@@ -133,7 +138,7 @@ msgstr "
 msgid "line %d: "
 msgstr ""
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
@@ -143,11 +148,7 @@ msgstr "%s: 
 msgid "%s: usage: "
 msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: ÏÐÃÉÑ ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔÁ"
@@ -162,7 +163,7 @@ msgstr "%s: 
 msgid "%s: not found"
 msgstr "%s: ÎÅ ÎÁÊÄÅÎ"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ"
@@ -172,7 +173,7 @@ msgstr "%s: 
 msgid "%s: invalid option name"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ"
@@ -187,7 +188,7 @@ msgstr "
 msgid "invalid hex number"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ"
 
@@ -201,7 +202,7 @@ msgstr "%s: 
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': ÎÅ ÉÄÅÎÔÉÆÉËÁÔÏÒ  ÐÒÏÃÅÓÓÁ ÉÌÉ ÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÚÁÄÁÞÉ"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÐÅÒÅÍÅÎÎÁÑ"
@@ -273,26 +274,26 @@ msgstr "%s: 
 msgid "%s: ambiguous job spec"
 msgstr ""
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr ""
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr ""
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr ""
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -304,7 +305,7 @@ msgstr "
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÆÕÎËÃÉÑ"
@@ -314,7 +315,7 @@ msgstr "%s: 
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ-ÍÁÓÓÉ× ÔÁËÉÍ ÓÐÏÓÏÂÏÍ"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -343,8 +344,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ:  %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: Ñ×ÌÑÅÔÓÑ ÄÉÒÅËÔÏÒÉÅÊ"
@@ -359,8 +360,7 @@ msgstr "%s: 
 msgid "%s: file is too large"
 msgstr "%s: ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÆÁÊÌ"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ"
@@ -475,7 +475,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr ""
@@ -498,7 +498,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
 
@@ -507,12 +507,12 @@ msgstr "
 msgid "%s: not an indexed array"
 msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
@@ -541,31 +541,31 @@ msgstr "%s: 
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': ÐÒÏÐÕÝÅΠÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ ÓÉÇÎÁÌÁ"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "%c': ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, fuzzy, c-format
 msgid "warning: %s: %s"
 msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -656,17 +656,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -674,17 +674,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ: ÄÏÓÔÕÐÎÏ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×"
@@ -698,11 +698,11 @@ msgstr "%s: 
 msgid "shift count"
 msgstr ""
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ ÏÂÏÌÏÞËÉ"
@@ -744,7 +744,7 @@ msgstr "%s 
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -754,26 +754,26 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': ÐÌÏÈÁÑ ËÏÍÁÎÄÁ"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr ""
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr ""
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr ""
@@ -792,7 +792,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -806,23 +806,23 @@ msgstr "
 msgid "Aborting..."
 msgstr "úÁ×ÅÒÛÁÀ ÒÁÂÏÔÕ..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ ËÏÍÁÎÄÙ"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr ""
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr ""
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr ""
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr ""
@@ -837,103 +837,118 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: ÐÌÏÈÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s: ÎÅ ×ÓÔÒÏÅÎÎÁ × ÏÂÏÌÏÞËÕ"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr ""
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr ""
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ×ÙÒÁÖÅÎÉÅ"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "ÐÏÐÙÔËÁ ÐÒÉÓ×ÏÅÎÉÑ ÎÅ-ÐÅÒÅÍÅÎÎÏÊ"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "ÄÅÌÅÎÉÅ ÎÁ 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr ""
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "ÐÒÏÐÕÝÅΠ`)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÏÖÉÄÁÅÔÓÑ ÏÐÅÒÁÎÄ"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr ""
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ"
@@ -942,163 +957,163 @@ msgstr "
 msgid "getcwd: cannot access parent directories"
 msgstr ""
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, fuzzy, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:"
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1166,7 +1181,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1189,22 +1204,22 @@ msgstr ""
 msgid "network operations not supported"
 msgstr ""
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr ""
@@ -1235,118 +1250,118 @@ msgstr "
 msgid "syntax error: `((%s))'"
 msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr ""
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr ""
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "ÏÖÉÄÁÌÓÑ `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ ÏËÏÌÏ `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅàÆÁÊÌÁ"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "éÓÐÏÌØÚÕÊÔÅ \"%s\", ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØÓÑ ÒÁÂÏÔÕ Ó  ÏÂÏÌÏÞËÏÊ.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1356,26 +1371,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1413,33 +1428,33 @@ msgstr "%s: 
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "ÏÛÉÂËÁ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ: ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ /tmp, ÐÏÖÁÌÕÊÓÔÁ ÓÏÚÄÁÊÔÅ!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp ÄÏÌÖÎÁ ÂÙÔØ ÄÅÊÓÔ×ÉÔÅÌØÎÙÍ ÉÍÅÎÅÍ ÄÉÒÅËÔÏÒÉÉ"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "õ ÍÅÎÑ ÎÅÔ ÉÍÅÎÉ!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr ""
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1449,39 +1464,39 @@ msgstr ""
 "%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ...\n"
 "\t%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ÆÁÊÌ_ÓÏ_ÓËÒÉÐÔÏÍ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "äÌÉÎÎÙÅ ÏÐÃÉÉ × ÓÔÅÌÅ GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "ïÐÃÉÉ ÏÂÏÌÏÞËÉ:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr ""
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ÉÌÉ ÏÐÃÉÑ -o\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr ""
@@ -1656,83 +1671,83 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÞÔÅÎÉÑ"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÚÁÐÉÓÉ"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr ""
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "ÎÅÔ ÓÏ×ÐÁÄÅÎÉÑ Ó: %s"
@@ -1769,77 +1784,77 @@ msgstr "%s: 
 msgid "missing `]'"
 msgstr "ÐÒÏÐÕÝÅΠ`]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr ""
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s"
@@ -1911,7 +1926,7 @@ msgstr ""
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2108,7 +2123,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2116,7 +2131,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2300,12 +2315,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2316,7 +2333,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2327,7 +2344,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2341,7 +2358,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2357,7 +2374,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2380,13 +2397,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2394,7 +2416,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2410,7 +2432,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2423,7 +2445,7 @@ msgstr ""
 " îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × "
 "ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2431,7 +2453,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2440,7 +2462,7 @@ msgid ""
 "    Always fails."
 msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ÎÅÕÄÁÞÁ."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2459,7 +2481,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2497,14 +2519,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2519,11 +2541,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2535,6 +2559,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2550,7 +2575,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2563,7 +2588,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2590,7 +2615,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2602,7 +2627,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2643,7 +2668,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2666,7 +2691,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2674,7 +2699,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2683,7 +2708,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2713,7 +2738,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2725,7 +2750,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2739,7 +2764,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2763,7 +2788,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2785,7 +2810,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2819,7 +2844,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2843,7 +2868,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2860,7 +2885,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2882,7 +2907,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2927,7 +2952,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2964,18 +2989,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2987,7 +3015,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3053,7 +3081,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3072,7 +3100,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3092,7 +3120,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3111,7 +3139,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3131,7 +3159,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3142,7 +3170,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3156,7 +3184,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3170,7 +3198,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3251,7 +3279,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3259,7 +3287,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3271,7 +3299,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3315,7 +3343,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3345,7 +3373,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3374,6 +3402,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3389,7 +3420,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3407,24 +3438,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3438,7 +3469,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3451,7 +3482,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3468,7 +3499,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3488,7 +3519,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3504,7 +3535,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3515,7 +3546,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3536,7 +3567,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3547,7 +3578,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3558,7 +3589,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3571,7 +3602,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3585,7 +3616,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3596,7 +3627,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3610,7 +3641,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3621,7 +3652,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3649,7 +3680,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3703,7 +3734,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3734,7 +3765,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3761,7 +3792,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3790,7 +3821,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3811,7 +3842,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3829,8 +3860,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3844,7 +3875,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3871,7 +3902,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -3890,7 +3921,7 @@ msgstr ""
 "    åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ "
 "ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3921,7 +3952,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -3962,7 +3993,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 6d4b62059603a959da3442cfb69497f7eb0729c1..edcfb53fb3aee2f01c27acc47bb4c839c56045d4 100644 (file)
Binary files a/po/sk.gmo and b/po/sk.gmo differ
index 56fdd3cc3cb4030e7d28558e4b5df5d0d9148bd7..64c02d5d558bde7ca23015818fb3dbd18610ef7d 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-03-16 21:22+0100\n"
 "Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -17,50 +17,51 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "chybný index poľa"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: nie je možné previesť indexované pole na asociatívne"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: neplatný kľúč asociatívneho poľa"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: nie je možné priradiť nenumerickému indexu"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: pri priraďovaní asociatívnemu poľu je potrebné použiť index"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: nie je možné vytvoriť: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: nie je možné nájsť klávesovú mapu pre príkaz"
+msgstr ""
+"bash_execute_unix_command: nie je možné nájsť klávesovú mapu pre príkaz"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: prvý znak (okrem bielych znakov) nie je „\"“"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "chýba zatvárajúca „%c“ v %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: chýba oddeľovač dvojbodka"
@@ -70,36 +71,36 @@ msgstr "%s: chýba oddeľovač dvojbodka"
 msgid "`%s': invalid alias name"
 msgstr "„%s“: neplatný názov aliasu"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "úpravy riadka nie sú zapnuté"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "„%s“: neplatný názov klávesovej mapy"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: nie je možné prečítať: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "„%s“: nie je možné zrušiť väzbu (unbind)"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "„%s“: neznámy názov funkcie"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s nie je zviazaný (bind) s žiadnymi klávesmi.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s je možné vyvolať ako "
@@ -122,11 +123,15 @@ msgstr ""
 "    \n"
 "    Bez EXPR, vracia "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME nebola nastavená"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "príliš veľa argumentov"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD nebola nastavená"
 
@@ -135,7 +140,7 @@ msgstr "OLDPWD nebola nastavená"
 msgid "line %d: "
 msgstr "riadok %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "upozornenie: "
@@ -145,11 +150,7 @@ msgstr "upozornenie: "
 msgid "%s: usage: "
 msgstr "%s: použitie "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "príliš veľa argumentov"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: voľba vyžaduje argument"
@@ -164,7 +165,7 @@ msgstr "%s: vyžaduje sa numerický argument"
 msgid "%s: not found"
 msgstr "%s: nenájdené"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: neplatná voľba"
@@ -174,7 +175,7 @@ msgstr "%s: neplatná voľba"
 msgid "%s: invalid option name"
 msgstr "%s: neplatný názov voľby"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "„%s“: nie je platný identifikátor"
@@ -187,7 +188,7 @@ msgstr "neplatné osmičkové číslo"
 msgid "invalid hex number"
 msgstr "neplatné šestnástkové číslo"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "neplatné číslo"
 
@@ -201,7 +202,7 @@ msgstr "%s: neplatné určenie signálu"
 msgid "`%s': not a pid or valid job spec"
 msgstr "„%s“: nie je pid ani platný špecifikátor úlohy"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: premenná len na čítanie"
@@ -273,26 +274,26 @@ msgstr "%s: chyba pri zisťovaní aktuálneho adresára: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: nejednoznačné určenie úlohy"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: neplatný názov akcie"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: chýba špecifikácia dokončovania"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "upozornenie: voľba -F nemusí fungovať tak ako očakávate"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "upozornenie: voľba -C nemusí fungovať tak ako očakávate"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "momentálne sa nevykonáva funkcia doplňovania"
 
@@ -304,7 +305,7 @@ msgstr "je možné použiť iba vo funkcii"
 msgid "cannot use `-f' to make functions"
 msgstr "nie je možné použiť „-f“ pre tvorbu funkcií"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcia iba na čítanie"
@@ -314,7 +315,7 @@ msgstr "%s: funkcia iba na čítanie"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: nie je možné takto robiť deštrukciu premenných polí"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: nie je možné previesť asociatívne pole na indexované"
@@ -343,8 +344,8 @@ msgstr "%s: nie je dynamicky načítané"
 msgid "%s: cannot delete: %s"
 msgstr "%s: nie je možné zmazať: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: je adresár"
@@ -359,8 +360,7 @@ msgstr "%s: nie je obyčajný súbor"
 msgid "%s: file is too large"
 msgstr "%s: súbor je príliš veľký"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: nie je možné vykonať binárny súbor"
@@ -445,7 +445,8 @@ msgstr[2] "Príkazy shellu zodpovedajúce kľúčovým slovám „"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
 "pre „%s“ neboli nájdené zodpovedajúce témy pomocníka.\n"
 "Skúste „help help“ alebo „man -k %s“ alebo „info %s“."
@@ -466,10 +467,12 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Tieto príkazy shellu sú definované interne. Napísaním „help“ zobrazíte tento zoznam.\n"
+"Tieto príkazy shellu sú definované interne. Napísaním „help“ zobrazíte tento "
+"zoznam.\n"
 "Napísaním „help názov“ zistíte viac o funkcii „názov“.\n"
 "Napísaním „info bash“ zistíte viac o shelli vo všeobecnosti.\n"
-"Napísaním „man -k“ alebo „info“ zistíte viac príkazoch, ktoré nie sú v zozname.\n"
+"Napísaním „man -k“ alebo „info“ zistíte viac príkazoch, ktoré nie sú v "
+"zozname.\n"
 "\n"
 "Hviezdička (*) vedľa názvu znamená, že príkaz je vypnutý.\n"
 "\n"
@@ -482,7 +485,7 @@ msgstr "nie je možné použiť viac ako jednu z volieb -anrw"
 msgid "history position"
 msgstr "poloha histórie"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: rozšírenie histórie zlyhalo"
@@ -505,7 +508,7 @@ msgstr "%s: argumenty musia byť ID procesov alebo úloh"
 msgid "Unknown error"
 msgstr "Neznáma chyba"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "očakával sa výraz"
 
@@ -514,12 +517,12 @@ msgstr "očakával sa výraz"
 msgid "%s: not an indexed array"
 msgstr "%s: nie je indexované pole"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: neplatná špecifikácia popisovača súboru"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: neplatný popisovač súboru: %s"
@@ -547,31 +550,31 @@ msgstr "názov prázdnej premennej poľa"
 msgid "array variable support required"
 msgstr "vyžaduje sa podpora premennej poľa"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "„%s“: chýba formátovací znak"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "„%c“: neplatná špecifikácia formátu času"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "„%c“: neplatný formátovací znak"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "upozornenie: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "chýba hexadecimálna číslica v \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "chýba číslica Unicode pre \\%c"
@@ -607,10 +610,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Zobrazí zoznam momentálne zapamätaných adresárov. Adresáre\n"
@@ -715,35 +720,37 @@ msgstr ""
 "    \n"
 "    Zásobník adresárov môžete zobraziť vstavaným príkazom „dirs“."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: neplatná špecifikácia expirácie (timeout)"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "chyba pri čítaní: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "návrat („return“) je možné vykonať iba z funkcie alebo skriptu vyvolaného pomocou „source“"
+msgstr ""
+"návrat („return“) je možné vykonať iba z funkcie alebo skriptu vyvolaného "
+"pomocou „source“"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "nie je možné zároveň zrušiť funkciu a premennú"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: nie je možné zrušiť"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: nie je možné zrušiť: len na čítanie %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: nie je premenná poľa"
@@ -757,11 +764,11 @@ msgstr "%s: nie je funkcia"
 msgid "shift count"
 msgstr "posun o"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "nie je možné zároveň nastaviť aj zrušiť voľby shellu"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: neplatný názov voľby shellu"
@@ -803,7 +810,7 @@ msgstr "%s je funkcia\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s je vstavaný príkaz (builtin) shellu\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s je %s\n"
@@ -813,26 +820,26 @@ msgstr "%s je %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s je hašovaný (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: neplatný argument limitu"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "„%c“: chybný príkaz"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: nie je možné zistiť limit: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "obmedzenie"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: nie je možné zmeniť limit: %s"
@@ -851,7 +858,7 @@ msgstr "„%c“: neplatný operátor symbolického režimu"
 msgid "`%c': invalid symbolic mode character"
 msgstr "„%c“: neplatný znak symbolického režimu"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " riadok "
 
@@ -865,23 +872,23 @@ msgstr "posledný príkaz: %s\n"
 msgid "Aborting..."
 msgstr "Ruší sa..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "chyba neznámeho príkazu"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "chybný typ príkazu"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "chybný konektor"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "chybný skok"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: neviazaná premenná"
@@ -896,102 +903,117 @@ msgstr "\ačas vypršal pri čakaní na vstup: automatické odhlásenie\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "nie je možné presmerovať štandardný vstup z /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: „%c“: neplatný formátovácí znak"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "chyba rúry"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: obmedzené: nie jemožné uviesť „/“ v názvoch príkazov"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: príkaz nenájdený"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: chybný interpreter"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: nie je možné vykonať binárny súbor"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s je vstavaný príkaz (builtin) shellu\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "nie je možné duplikovať fd %d na fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "bola prekročená úroveň rekurzie výrazu"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "podtečenie zásobníka rekurzie"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "chyba syntaxe vo výraze"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "pokus o priradenie mimo premennej"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "delenie nulou"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "chyba: chybný expassign token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "pre podmienený výraz sa očakáva „:“"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exponent menší ako 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "po pre-inkrementácii alebo pre-dekrementácii sa očakáva identifikátor"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "chýba „)“"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "chyba syntaxe: očakáva sa operand"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "chyba syntaxe: neplatný aritmetický operátor"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (chybný token je „%s”)"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "neplatný aritmetický základ"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "hodnota je ako základ príliš veľká"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: chyba výrazu\n"
@@ -1000,163 +1022,163 @@ msgstr "%s: chyba výrazu\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: nie je možné pristupovať k rodičovským adresárom"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "nie j emožné resetovať nodelay režim fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "nie je možné alokovať nový popisovač súboru pre vstup bashu z fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: bufer už existuje pre nový fd %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp rúra"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "pid %d získaný pomocou fork sa vyskytuje v bežiacej úlohe %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "mažem zastavenú úlohu %d so skupinou procesu %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: proces %5ld (%s) v the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) je stále označený ako živý"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: taký pid neexistuje"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signál %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Hotovo"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Zastavené"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Zastavené(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Beží"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Hotovo(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Ukončenie %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Neznámy stav"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(bol uložený výpis pamäte) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid detského procesu (%ld to %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld nie je dieťa tohto shellu"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Neexistuje záznam o procese %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: úloha %d je zastavená"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: úloha skončila"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: úloha %d už je v pozadí"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: zapína sa WNOHANG aby sme sa vyhli neurčitému blokovaniu"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: riadok %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (bol uložený výpis pamäte)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd teraz: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: funkcia getpgrp zlyhala"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: riadkový systém"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "nie je možné nastaviť skupinu procesu terminálu (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "v tomto shelli nie je riadenie úloh"
 
@@ -1225,7 +1247,7 @@ msgstr "register_alloc: %p už je v tabuľke ako alokovaný?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p už je v tabuľke ako voľný?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "neplatný základ"
 
@@ -1248,22 +1270,22 @@ msgstr "%s: chybná špecifikácia sieťovej cesty"
 msgid "network operations not supported"
 msgstr "sieťové operácie nie sú podporované"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: nemožno zmeniť locale (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: nemožno zmeniť locale (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: nie je možné zmeniť locale (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: nie je možné zmeniť locale (%s): %s"
@@ -1294,118 +1316,119 @@ msgstr "chyba syntaxe: neočakávaná „;“"
 msgid "syntax error: `((%s))'"
 msgstr "chyba syntaxe: „((%s))“"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: chybný typ inštrukcie %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr "here-document na riadku %d oddelený znakom konca riadku (očakávalo sa „%s”)"
+msgstr ""
+"here-document na riadku %d oddelený znakom konca riadku (očakávalo sa „%s”)"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: inštrukcia presmerovania „%d“ mimo rozsahu"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „%c“"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "neočakávaný koniec súboru počas hľadania „]]“"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "chyba syntaxe v podmienečnom príkaze: neočakávaný token „%s“"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "chyba syntaxe v podmienečnom príkaze"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "neočakávaný token „%s“, očakávalo sa `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "očakávalo sa `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "neočakávaný argument „%s“ podmienečného unárneho operátora"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "neočakávaný argument podmienečného unárneho operátora"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "neočakávaný token „%s“, očakáva sa podmienečný binárny operátor"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "očakáva sa podmienečný binárny operátor"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "neočakávaný argument „%s“ v podmienečnom binárnom operátore"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "neočakávaný argument v podmienečnom binárnom operátore"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "neočakávaný token „%c“ v podmienečnom príkaze"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "neočakávaný token „%s“ v podmienečnom príkaze"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "neočakávaný token %d v podmienečnom príkaze"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "chyba syntaxe neďaleko neočakávaného tokenu „%s“"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "chyba syntaxe neďaleko „%s“"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "chyba syntaxe: neočakávaný koniec súboru"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "chyba syntaxe"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Na opustenie shellu použite „%s“.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „)“"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "dokončovanie: funkcia „%s“ nebola nájdená"
@@ -1415,26 +1438,26 @@ msgstr "dokončovanie: funkcia „%s“ nebola nájdená"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: chybný konektor `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: neplatný popisovač súboru"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: ukazovateľ súboru je NULL"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: „%c“: neplatný formátovací znak"
@@ -1472,33 +1495,33 @@ msgstr "%s: nie je možné priradiť popisovač súboru premennej"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port nie je podporovaný bez podpory sietí"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "chyba presmerovania: nie je možné duplikovať fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "nenašiel sa /tmp, vytvorte ho prosím!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp musí byť platný názov adresára"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: neplatná voľba"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Nemám meno!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, verzia %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1507,39 +1530,42 @@ msgstr ""
 "Použitie:\t%s [GNU dlhá voľba] [voľba] ...\n"
 "\t%s [GNU dlhá voľba] [voľba] súbor-skriptu ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU dlhé voľby:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Voľby shellu:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD alebo -c príkaz alebo -O krátka_voľba\t\t(iba vyvolanie)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s alebo -o voľba\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Napísaním „%s -c \"help set\"“ získate viac informácií o voľbách shellu.\n"
+msgstr ""
+"Napísaním „%s -c \"help set\"“ získate viac informácií o voľbách shellu.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr "Napísaním „%s -c help“ získate viac informácií o vstavaných príkazoch (builtins) shellu.\n"
+msgstr ""
+"Napísaním „%s -c help“ získate viac informácií o vstavaných príkazoch "
+"(builtins) shellu.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Na ohlasovanie chýb použite príkaz „bashbug“.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: neplatná operácia"
@@ -1713,81 +1739,85 @@ msgstr "Neznáme číslo signálu"
 msgid "Unknown Signal #%d"
 msgstr "Neznámy signál #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "chybná substitúcia: chýba „%s“ v %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: nie je možné priradiť zoznam položke poľa"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "nie je možné vytvoriť rúru pre substitúciu procesov"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "nie je možné vytvoriť potomka pre substitúciu procesov"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "nie je možné otvoriť pomenovanú rúru %s na čítanie"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "nie je možné otvoriť pomenovanú rúru %s na zápis"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "nie je možné duplikovať pomenovanú rúru %s ako fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "nie je možné vytvoriť rúru pre substitúciu príkazov"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "nie je možné vytvoriť potomka pre substitúciu príkazov"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: nie je možné duplikovať rúru ako fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameter je null alebo nenastavený"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: výraz podreťazca < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: chybná substitúcia"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: nie je možné vykonať priradenie takýmto spôsobom"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "budúce verzie shellu budú vynucovať vyhodnocovanie ako aritmetickú substitúciu"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"budúce verzie shellu budú vynucovať vyhodnocovanie ako aritmetickú "
+"substitúciu"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "chybná substitúcia: : v reťazci %s chýba uzatvárajúci „`”"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "bez zhody: %s"
@@ -1824,76 +1854,78 @@ msgstr "%s: očakával sa binárny operátor"
 msgid "missing `]'"
 msgstr "chýba „]“"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "neplatné číslo signálu"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: obsluha signálu je SIG_DFL, znovu posielam %d (%s) sebe"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: obsluha signálu je SIG_DFL, znovu posielam %d (%s) sebe"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: chybný signál %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "chyba pri importe definície funkcie „%s“"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "úroveň shellu (%d) je príliš vysoká, nastavujem späť na 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: v aktuálnom rozsahu sa nenachádza kontext funkcie"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: v aktuálnom rozsahu sa nenachádza kontext funkcie"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s má null exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "neplatný znak %d v exportstr %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "žiadne „=“ v exportstr %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: hlavička shell_variables nie je kontext funkcie"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: chýba kontext global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: hlavička shell_variables nie je dočasný rozsah prostredia"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: nemožno otvoriť ako SÚBOR"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: neplatná hodnota popisovača trasovacieho súboru"
@@ -1903,8 +1935,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright (C) 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licencia GPLv3+: GNU GPL verzie 3 alebo novšia http://gnu.org/licenses/gpl.html\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licencia GPLv3+: GNU GPL verzie 3 alebo novšia http://gnu.org/licenses/gpl."
+"html\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1930,8 +1966,12 @@ msgstr "Copyright (C) 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licencia GPLv2+: GNU GPL verzie 2 alebo novšia http://gnu.org/licenses/gpl.html\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licencia GPLv2+: GNU GPL verzie 2 alebo novšia http://gnu.org/licenses/gpl."
+"html\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1962,8 +2002,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] názov [názov ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m kláv_mapa] [-f názov_súboru] [-q názov] [-u názov] [-r postup_kláv] [-x postup_kláv:príkaz_shellu] [postup_kláv:funkcia_readline alebo príkaz-readline]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m kláv_mapa] [-f názov_súboru] [-q názov] [-u názov] [-r "
+"postup_kláv] [-x postup_kláv:príkaz_shellu] [postup_kláv:funkcia_readline "
+"alebo príkaz-readline]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2051,7 +2097,8 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e enázov] [-lnr] [prvý] [posledný] alebo fc -s [vzor=opak] [príkaz]"
+msgstr ""
+"fc [-e enázov] [-lnr] [prvý] [posledný] alebo fc -s [vzor=opak] [príkaz]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2070,8 +2117,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [vzor ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d ofset] [n] alebo history -anrw [názov_súboru] alebo history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d ofset] [n] alebo history -anrw [názov_súboru] alebo history "
+"-ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2082,16 +2133,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [špec_úlohy ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s špec_signálu | -n číslo_signálu | -špec_signálu] pid | špec_úlohy ... alebo kill -l [špec_signálu]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s špec_signálu | -n číslo_signálu | -špec_signálu] pid | "
+"špec_úlohy ... alebo kill -l [špec_signálu]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a pole] [-d oddeľovač] [-i text] [-n nznakov] [-N nznakov] [-p výzva] [-t zdržadnie] [-u fd] [názov ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a pole] [-d oddeľovač] [-i text] [-n nznakov] [-N nznakov] [-p "
+"výzva] [-t zdržadnie] [-u fd] [názov ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2150,7 +2209,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] názov [názov ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [obmedzenie]"
 
 #: builtins.c:172
@@ -2158,7 +2218,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [režim]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2186,8 +2247,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case SLOVO in [VZOR [| VZOR]...) PRÍKAZY ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if PRÍKAZY; then PRÍKAZY; [ elif PRÍKAZY; then PRÍKAZY; ]... [ else PRÍKAZY; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if PRÍKAZY; then PRÍKAZY; [ elif PRÍKAZY; then PRÍKAZY; ]... [ else "
+"PRÍKAZY; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2203,7 +2268,8 @@ msgstr "coproc [NÁZOV] príkaz [presmerovania]"
 
 #: builtins.c:200
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr "function názov_funkcie { PRÍKAZY ; } alebo názov_funkcie () { PRÍKAZY ; }"
+msgstr ""
+"function názov_funkcie { PRÍKAZY ; } alebo názov_funkcie () { PRÍKAZY ; }"
 
 #: builtins.c:202
 msgid "{ COMMANDS ; }"
@@ -2246,24 +2312,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] formát [argumenty]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o voľba] [-A operácia] [-G glob_vzor] [-W zoznam_slov] [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S prípona] [názov ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o voľba] [-A operácia] [-G glob_vzor] "
+"[-W zoznam_slov] [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S "
+"prípona] [názov ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o voľba]  [-A operácia] [-G glob_vzor] [-W zoznam_slov]  [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S prípona] [slovo]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o voľba]  [-A operácia] [-G glob_vzor] [-W "
+"zoznam_slov]  [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S "
+"prípona] [slovo]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o voľba] [-DE] [názov ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] [-c kvantum] [pole]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] "
+"[-c kvantum] [pole]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] [-c kvantum] [pole]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C "
+"spätné_volanie] [-c kvantum] [pole]"
 
 #: builtins.c:254
 msgid ""
@@ -2280,7 +2365,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definovať alebo zobraziť aliasy.\n"
@@ -2297,7 +2383,8 @@ msgstr ""
 "        \tznova použiť\n"
 "    \n"
 "    Návratová hodnota:\n"
-"    Vráti vždy pravdu ak nebol zadaný NÁZOV, pre ktorý nie je definovaný alias."
+"    Vráti vždy pravdu ak nebol zadaný NÁZOV, pre ktorý nie je definovaný "
+"alias."
 
 #: builtins.c:276
 msgid ""
@@ -2317,6 +2404,7 @@ msgstr ""
 "    Vráti 0 ak nebol zadaný NÁZOV, pre ktorý nie je definovaný alias."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2328,24 +2416,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2366,15 +2460,19 @@ msgstr ""
 "      -P                 Vypíše názvy funkcií a väzby.\n"
 "      -p                 Vypíše názvy funkcií a väzby v tvare, ktorý je\n"
 "                         možné znova použiť ako vstup.\n"
-"      -S                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá a\n"
+"      -S                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá "
+"a\n"
 "                         ich hodnoty\n"
-"      -s                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá a\n"
+"      -s                 Vypíše klávesové sekvencie, ktoré vyvolávajú makrá "
+"a\n"
 "                         ich hodnoty\n"
 "                         v tvare, ktorý je možné znova použiť ako vstup.\n"
 "      -V                 Vypíše názvy premenných a hodnoty\n"
-"      -v                 Vypíše názvy premenných a hodnoty v tvare, ktorý je\n"
+"      -v                 Vypíše názvy premenných a hodnoty v tvare, ktorý "
+"je\n"
 "      -q  názov-funkcie  Zistí, ktoré klávesy vyvolávajú túto funkciu.\n"
-"      -u  názov-funkcie  Zruší väzby všetkých kláves naviazaných na túto funkciu\n"
+"      -u  názov-funkcie  Zruší väzby všetkých kláves naviazaných na túto "
+"funkciu\n"
 "                         možné znova použiť ako vstup.\n"
 "      -r  kláv_sek       Odstráni väzbu pre kláv_sek.\n"
 "      -f  súboru         Načíta klávesové väzby z SÚBORU.\n"
@@ -2384,7 +2482,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2402,7 +2500,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Návratová hodnota je 0 ak N nie je väčšie alebo rovné 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2420,13 +2518,14 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak N nie je väčšie alebo rovné 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2436,14 +2535,16 @@ msgstr ""
 "    \n"
 "    Vykoná vstavenú funkciu shellu s argumentami ARG bez vykonania\n"
 "    vyhľadania príkazu. To sa hodí, keď chcete reimplementovať vstavanú\n"
-"    funkciu shellu ako funkciu shellu, ale potrebujete vstavanú funkciu volať\n"
+"    funkciu shellu ako funkciu shellu, ale potrebujete vstavanú funkciu "
+"volať\n"
 "    v rámci vašej funkcie.\n"
 "    \n"
 "    Návratová hodnota:\n"
-"    Vracia návratový kód vstavanej funkcie shellu alebo 0 ak argument nie je\n"
+"    Vracia návratový kód vstavanej funkcie shellu alebo 0 ak argument nie "
+"je\n"
 "    vstavaná funkcia shellu."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2470,33 +2571,46 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak shell nevykonáva funkciu shellu a EXPR nie je neplatný."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Zmeniť aktuálny adresár shellu.\n"
@@ -2504,7 +2618,8 @@ msgstr ""
 "    Zmení aktuálny adresár na ADR. Predvolený aktuálny adresár je hodnota\n"
 "    premennej shellu HOME.\n"
 "    \n"
-"    Premenná CDPATH definuje cesty, v ktorých sa hľadá adresár obsahujúci ADR.\n"
+"    Premenná CDPATH definuje cesty, v ktorých sa hľadá adresár obsahujúci "
+"ADR.\n"
 "    Alternatívne názvy adresárov v CDPATH sú oddelené dvojbodkou (:).\n"
 "    Prázdny (null) názov adresára zodpovedá aktuálnemu adresáru, t.j. „.“.\n"
 "    Ak ADR začína lomkou (/), CDPATH sa nepoužije.\n"
@@ -2527,7 +2642,7 @@ msgstr ""
 "    Vráti 0 ak bol aktuálny adresár zmenený a ak sa pri použití voľby -P\n"
 "    úspešne nastaví $PWD, inak nenulovú hodnotu."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2555,7 +2670,7 @@ msgstr ""
 "    Vracia 0 ak nie je zadaná neplatná voľba alebo nie je možné\n"
 "    prečítať aktuálny adresár."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2571,7 +2686,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vždy vráti pravda."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2583,7 +2698,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vždy vráti 0."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2597,12 +2712,13 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vždy vráti nepravda."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2629,7 +2745,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu PRÍKAZu alebo zlyhá ak nenájde PRÍKAZ."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2659,7 +2775,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2699,7 +2816,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2709,7 +2826,7 @@ msgstr ""
 "    \n"
 "    Zastaralé. Pozri „help declare“."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2735,11 +2852,14 @@ msgstr ""
 "    Vráti 0 ak nebola zadaná neplatná voľba, nevyskytla sa chyba a\n"
 "    shell práve nevykonáva funkciu."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2751,6 +2871,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2793,7 +2914,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak sa nevyskytla sa chyba pri zápise."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2815,7 +2936,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak sa nevyskytla sa chyba pri zápise."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2869,11 +2990,12 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak NÁZOV nie je vstavaná funkcia shellu a nevyskytla sa chyba."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2887,7 +3009,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu príkazu alebo 0 ak je príkaz prázdny."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2963,12 +3085,13 @@ msgstr ""
 "    Vráti 0 ak je voľba nájdená; zlyhá po dosiahnutí konca reťazca volieb\n"
 "    alebo ak sa vyskytne chyba."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2976,11 +3099,13 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Nahradiť shell zadaným príkazom.\n"
 "    \n"
@@ -3000,7 +3125,7 @@ msgstr ""
 "    Vráti 0 ak sa nestane, že PRÍKAZ nebol nájdený a nevyskytne sa chyba\n"
 "    presmerovania."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3012,11 +3137,12 @@ msgstr ""
 "    Ukončí shell s návratovou hodnotou N. Ak sa N vynechá, návratová\n"
 "    hodnota  sa nastaví podľa stavu posledného vykonaného príkazu."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Ukončiť login shell.\n"
@@ -3024,17 +3150,19 @@ msgstr ""
 "    Ukončí login shell s návratovou hodnotou N. Vráti chybu ak nie je\n"
 "    spustený v login shelli."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3048,7 +3176,8 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Zobraziť alebo vykonať príkazy z histórie.\n"
 "    \n"
@@ -3067,15 +3196,17 @@ msgstr ""
 "    S formátom „fc -s [pat=rep ...] [príkaz]“ sa znova vykoná uvedený\n"
 "    príkaz po vykonaní náhrady OLD=NEW.\n"
 "    \n"
-"    Užitočný alias, ktorý sa dá s týmto použiť, je r='fc -s', takže napísaním\n"
-"    „r cc“ spustíte posledný príkaz začínajúci „cc“ a napísaním „r“ opätovne\n"
+"    Užitočný alias, ktorý sa dá s týmto použiť, je r='fc -s', takže "
+"napísaním\n"
+"    „r cc“ spustíte posledný príkaz začínajúci „cc“ a napísaním „r“ "
+"opätovne\n"
 "    vykonáte posledný príkaz.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vráti 0 alebo stav vykonaného príkazu; nenulovú hodnotu ak sa vyskytne\n"
 "    chyba."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3095,12 +3226,14 @@ msgstr ""
 "    Stav príkazu umiestneného do popredia; nenulovú hodnotu ak sa vyskytne\n"
 "    chyba."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3114,12 +3247,13 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nie je riadenie úloh vypnuté a nevyskytne sa chyba."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3144,7 +3278,8 @@ msgstr ""
 "    \n"
 "    Voľby:\n"
 "      -d\tzabudnúť zapamätanné umiestnenia každého NÁZVU\n"
-"      -l\tzobraziť vo formáte, ktoré je možné znova použiť ako      \t\tvstup\n"
+"      -l\tzobraziť vo formáte, ktoré je možné znova použiť ako      \t"
+"\tvstup\n"
 "      -p cesta\tpoužiť CESTU ako plnú cestu k NÁZVU\n"
 "      -r\tzabudnúť všetky zapamätané umiestnenia\n"
 "      -t\tvypísať zapamätané umiestnenia každého NÁZVU, pred\n"
@@ -3159,7 +3294,7 @@ msgstr ""
 "    Vráti 0 ak sa nestalo, že NÁZOV nebol nájdený a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3177,7 +3312,8 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Zobraziť informácie o vstavaných príkazoch.\n"
 "    \n"
@@ -3198,7 +3334,7 @@ msgstr ""
 "    Vráti 0 ak sa nestalo, že VZOR nebol nájdený a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3225,7 +3361,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3260,7 +3397,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3303,7 +3440,7 @@ msgstr ""
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba.\n"
 "    Ak je použitá voľba -x, vráti sa návratová hodnota PRÍKAZu."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3333,7 +3470,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná JOBSPEC."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3373,14 +3510,15 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3457,18 +3595,22 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Ak sa posledný ARG vyhodnotí na 0, let vráti 1; 0 inak sa vráti 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3480,22 +3622,28 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Načítať riadok zo štandardného vstupu a rozdeliť ho do polí.\n"
@@ -3515,10 +3663,13 @@ msgstr ""
 "    \t\tpočínajúc nulou.\n"
 "     -d\tpokračovanie čítania až kým sa nevyskytne prvý znak znak DELIM\n"
 "    \t\tnamiesto znaku nového riadka.\n"
-"     -e\t\tna načítanie riadka sa použije Readline ak je shell interaktívny.\n"
+"     -e\t\tna načítanie riadka sa použije Readline ak je shell "
+"interaktívny.\n"
 "     -i text\tpoužije TEXT ako prvotný text pre Readline\n"
-"      -n nznakov\tčítanie vstupu skončí po načítaní NZNAKOV znakov bez čakania\n"
-"    \t\tna nový riadok, ale rešpektovať oddeľovač v prípade menej ako NZNAKOV\n"
+"      -n nznakov\tčítanie vstupu skončí po načítaní NZNAKOV znakov bez "
+"čakania\n"
+"    \t\tna nový riadok, ale rešpektovať oddeľovač v prípade menej ako "
+"NZNAKOV\n"
 "      -N nchars\tčítanie vstupu skončí presne po načítaní ZNAKOV znakov,\n"
 "    \t\tiba ak by sa skôr vyskytol koniec súboru alebo časový interval na\n"
 "    \t\tčítanie vypršal, ignorujúc oddeľovače\n"
@@ -3538,7 +3689,7 @@ msgstr ""
 "    Vráti 0 ak sa nenarazí pri čítaní nakoniec súboru, nevyprší čas na\n"
 "    čítanie a ako argument -u nebol je zadaný neplatný popisovač."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3559,7 +3710,8 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti N alebo zlyhá ak shell nevykonáva funkciu či skript."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3602,7 +3754,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3624,7 +3777,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3672,7 +3825,8 @@ msgstr ""
 "              history      zapnúť históriu príkazov\n"
 "              ignoreeof    shell sa neukončí po načítaní znaku EOF\n"
 "              interactive-comments\n"
-"                           umožní výskyt komentárov v interaktívnych príkazoch\n"
+"                           umožní výskyt komentárov v interaktívnych "
+"príkazoch\n"
 "              keyword      rovnaké ako -k\n"
 "              monitor      rovnaké ako -m\n"
 "              noclobber    rovnaké ako -C\n"
@@ -3687,7 +3841,8 @@ msgstr ""
 "                           posledného príkazu, ktorý skončil s nenulovou\n"
 "                           hodnotou, alebo nula ak žiadny príkaz nevrátil\n"
 "                           nenulovú hodnotu\n"
-"              posix        zmeniť správanie bash, kde sa štandardné správanie\n"
+"              posix        zmeniť správanie bash, kde sa štandardné "
+"správanie\n"
 "                           líši od štandardu 1003.2 tak, aby mu zodpovedalo\n"
 "              privileged   rovnaké ako -p\n"
 "              verbose      rovnaké ako -v\n"
@@ -3726,7 +3881,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3736,7 +3891,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3762,12 +3918,13 @@ msgstr ""
 "    Vráti 0 ak sa nestalo, že je NÁZOV iba na čítanie a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3796,7 +3953,7 @@ msgstr ""
 "    Vráti 0 ak sa nestalo, že je NÁZOV neplatný a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3817,7 +3974,8 @@ msgid ""
 msgstr ""
 "Označiť premenné shellu ako nemeniteľné.\n"
 "    \n"
-"    Označí každý NÁZOV ako len na čítanie (atribút readonly); hodnoty týchto\n"
+"    Označí každý NÁZOV ako len na čítanie (atribút readonly); hodnoty "
+"týchto\n"
 "    NÁZVOV nie je možné ďalej meniť priradením. Ak je zadaná HODNOTA,\n"
 "    pred označením ako readonly priradiť premenej HODNOTU.\n"
 "    \n"
@@ -3833,7 +3991,7 @@ msgstr ""
 "    Vráti 0 ak sa nestalo, že je NÁZOV neplatný a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3851,7 +4009,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak sa nestalo, že je N záporné alebo väčšie ako $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3875,7 +4033,7 @@ msgstr ""
 "    Vráti návratovú hodnotu posledného príkazu v SÚBORe; zlyhá ak nie je\n"
 "    možné SÚBOR načítať."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3899,7 +4057,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak sa nestalo, že je vypnuté riadenie úloh a nevyskytla sa chyba."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3933,7 +4091,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3954,7 +4113,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4031,9 +4191,11 @@ msgstr ""
 "      REŤAZEC1 != REŤAZEC2\n"
 "                     Pravda ak sa reťazce nerovnajú.\n"
 "      REŤAZEC1 < REŤAZEC2\n"
-"                     Pravda ak je REŤAZEC1 pre REŤAZCOM2 v lexikografickom poradí.\n"
+"                     Pravda ak je REŤAZEC1 pre REŤAZCOM2 v lexikografickom "
+"poradí.\n"
 "      REŤAZEC1 > REŤAZEC2\n"
-"                     Pravda ak je REŤAZEC1 po REŤAZCI2 v lexikografickom poradí.\n"
+"                     Pravda ak je REŤAZEC1 po REŤAZCI2 v lexikografickom "
+"poradí.\n"
 "    \n"
 "    Iné operátory:\n"
 "    \n"
@@ -4054,7 +4216,7 @@ msgstr ""
 "    Vráti 0 ak VÝR vyhodnotí ako pravdivý; zlyhá ako sa VÝR vyhodnotí\n"
 "    ako nepravdivý alebo je zadaný neplatný argument."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4066,11 +4228,12 @@ msgstr ""
 "    Toto je synonymum vsatavanej funkcie „test“, ale posledný\n"
 "    argument musí byť literál „]“, ktorý uzatvára otvárajúcu „[“."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4084,11 +4247,12 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vždy vráti 0."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4097,30 +4261,39 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Zachytiť signály a iné udalosti.\n"
 "    \n"
-"    Definuje a aktivuje spustenie obsluhy udalosti, keď shell dostane signál\n"
+"    Definuje a aktivuje spustenie obsluhy udalosti, keď shell dostane "
+"signál\n"
 "    SIGNAL_SPEC alebo iných podmienok.\n"
 "    \n"
 "    Príkaz ARG sa načíta a vykoná, keď shell dostane signál(y) SIGNAL_SPEC.\n"
@@ -4131,9 +4304,11 @@ msgstr ""
 "    \n"
 "    Ak SIGNAL_SPEC je EXIT (0), príkaz ARG sa vykoná pri ukončení shellu.\n"
 "    Ak je SIGNAL_SPEC DEBUG, ARG sa vykoná po každom jednoduchom príkaze.\n"
-"    Ak je SIGNAL_SPEC RETURN, ARG sa vykoná po každom vykonaní funkcie shellu\n"
+"    Ak je SIGNAL_SPEC RETURN, ARG sa vykoná po každom vykonaní funkcie "
+"shellu\n"
 "    alebo dokončení skriptu spusteného pomocou „.“ alebo „source“.\n"
-"    Ak je SIGNAL_SPEC ERR, ARG sa vykoná po každom ukončení shellu spôsobenom\n"
+"    Ak je SIGNAL_SPEC ERR, ARG sa vykoná po každom ukončení shellu "
+"spôsobenom\n"
 "    chybou príkazu, keď je zapnutá voľba -e.\n"
 "    \n"
 "    Ak nie sú uvedené žiadne argumenty, trap vypíše zoznam príkazov\n"
@@ -4145,13 +4320,14 @@ msgstr ""
 "    \n"
 "    Každý SIGNAL_SPEC je buď názov signálu ako v <signal.h> alebo číslo\n"
 "    signálu. V názvoch signálov sa nerozlišuje veľkosť písmen a predpona\n"
-"    SIG je nepovinná. Signál je možné shellu poslať príkazom „kill -signal $$“.\n"
+"    SIG je nepovinná. Signál je možné shellu poslať príkazom „kill -signal $"
+"$“.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vráti 0 ak sa nestalo, že je SIGSPEC neplatný a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4177,7 +4353,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Zobraziť informácie o type príkazu.\n"
 "    \n"
@@ -4205,11 +4382,13 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak boli nájdené všetky NÁZVY; zlyhá ak nie."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4233,6 +4412,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4275,7 +4457,8 @@ msgstr ""
 "    \n"
 "    Ak je zadaný LIMIT, je to nová hodnota zadaného prostriedku;\n"
 "    špeciálne hodnoty LIMIT sú „soft“, „hard“ a „unlimited“, ktoré\n"
-"    znamenajú aktuálny mäkký limit, aktuálny tvrdý limit resp. žiadny limit.\n"
+"    znamenajú aktuálny mäkký limit, aktuálny tvrdý limit resp. žiadny "
+"limit.\n"
 "    Inak sa vypíše aktuálna hodnota zadaného prostriedku.\n"
 "    Ak nie je zadaná žiada voľba, predpokladá sa -f.\n"
 "    \n"
@@ -4287,7 +4470,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4321,31 +4504,36 @@ msgstr ""
 "    Vráti 0 ak sa nestalo, že je REŽIM neplatný a nebola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Čakať na dokončenie úlohy a vrátiť návratovú hodnotu.\n"
 "    \n"
-"    Počká na proces s identifikátorom ID, čo môže byť PID alebo špecifikácia\n"
-"    úlohy a oznámi stav jeho ukončenia. Ak nie je ID zadaný, počká na všetky\n"
+"    Počká na proces s identifikátorom ID, čo môže byť PID alebo "
+"špecifikácia\n"
+"    úlohy a oznámi stav jeho ukončenia. Ak nie je ID zadaný, počká na "
+"všetky\n"
 "    momentálne aktívne detské procesy vo fronte úloh.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná\n"
 "    neplatná voľba."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4354,7 +4542,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Čakať na ukončenie zadaného procesu a vypísať jeho návratovú hodnotu.\n"
@@ -4368,7 +4557,7 @@ msgstr ""
 "    Vráti stav ID; zlyhá ak je ID neplatný alebo bola zadaná neplatná\n"
 "    voľba."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4390,7 +4579,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4420,7 +4609,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4455,7 +4644,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4483,7 +4672,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Návratová hodnota je návratová hodnota RÚRY."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4501,16 +4690,21 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4518,18 +4712,22 @@ msgid ""
 msgstr ""
 "Vykonať príkazy na základe podmienky.\n"
 "    \n"
-"    Vykoná sa zoznam „if PRÍKAZY“. Ak je jeho návratová hodnota nula, vykoná\n"
+"    Vykoná sa zoznam „if PRÍKAZY“. Ak je jeho návratová hodnota nula, "
+"vykoná\n"
 "    sa zoznam „then PRÍKAZY“. Inak sa postupne vykoná každý zoznam\n"
-"    „elif PRÍKAZY“ a ak je jeho návratová hodnota nula, vykoná sa zodpovedajúci\n"
-"    zoznam „then PRÍKAZY“ a príkaz if skončí. Inak sa vykoná „else PRÍKAZY“,\n"
-"    ak je prítomný. Návratová hodnota celej konštrukcie je návratová hodnota\n"
+"    „elif PRÍKAZY“ a ak je jeho návratová hodnota nula, vykoná sa "
+"zodpovedajúci\n"
+"    zoznam „then PRÍKAZY“ a príkaz if skončí. Inak sa vykoná „else "
+"PRÍKAZY“,\n"
+"    ak je prítomný. Návratová hodnota celej konštrukcie je návratová "
+"hodnota\n"
 "    posledného vykonaného príkazu alebo nula ak sa žiadna podmienka\n"
 "    nevyhodnotila na pravdu.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4547,7 +4745,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4565,7 +4763,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4587,12 +4785,13 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu PRÍKAZu."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4601,14 +4800,17 @@ msgid ""
 msgstr ""
 "Definovať funkciu shellu.\n"
 "    \n"
-"    Vytvorí funkciu shellu NÁZOV. Keď sa spustí ako jednoduchý príkaz, NÁZOV\n"
-"    spustí PRÍKAZy v kontexte vulajúceho shellu. Keď sa spustí v tvare NÁZOV,\n"
-"    argumenty sa odovzdajú funkcii ako $1...$n a názov funkcie je $FUNCNAME.\n"
+"    Vytvorí funkciu shellu NÁZOV. Keď sa spustí ako jednoduchý príkaz, "
+"NÁZOV\n"
+"    spustí PRÍKAZy v kontexte vulajúceho shellu. Keď sa spustí v tvare "
+"NÁZOV,\n"
+"    argumenty sa odovzdajú funkcii ako $1...$n a názov funkcie je "
+"$FUNCNAME.\n"
 "    \n"
 "    Návratová hodnota:\n"
 "    Vráti 0 ak sa nestalo, že je NÁZOV iba na čítanie."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4626,7 +4828,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu posledného vykonaného príkazu."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4650,7 +4852,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti návratovú hodnotu obnovenej úlohy."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4668,13 +4870,16 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 1 ak sa VÝRAZ vyhodnotí na 0; inak vráti 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4700,8 +4905,10 @@ msgstr ""
 "    \n"
 "    \t( VÝRAZ )\tVracia hodnoru výrazu VÝRAZ\n"
 "    \t! VÝRAZ\tPravdivý, ak je VÝRAZ nepravdivý; inak pravdivý\n"
-"    \tVÝR1 && VÝR2\tPravdivý ak je VÝR1 a zároveň VÝR2 pravdivý; inak nepravdivý\n"
-"    \tVÝR1 || VÝR2\tPravdivý ak je VÝR1 alebo VÝR2 pravdivý; inak nepravdivý\n"
+"    \tVÝR1 && VÝR2\tPravdivý ak je VÝR1 a zároveň VÝR2 pravdivý; inak "
+"nepravdivý\n"
+"    \tVÝR1 || VÝR2\tPravdivý ak je VÝR1 alebo VÝR2 pravdivý; inak "
+"nepravdivý\n"
 "    \n"
 "    Ak sú použité operátory „==“ a „!=“, reťazec napravo od operátora\n"
 "    sa použije ako vzor a vykoná sa hľadanie zhody reťazcov. Operátory\n"
@@ -4711,7 +4918,7 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 alebo 1 v závislosti na hodnote VÝRAZu."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4815,7 +5022,7 @@ msgstr ""
 "    HISTIGNORE\tBodkočiarkami oddelený zoznam vzoriek, ktoré\n"
 "    \t\tsa používajú na rozhodovanie, či sa príkaz uloží do histórie.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4871,7 +5078,7 @@ msgstr ""
 "    Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n"
 "    chyba pri zmene adresára."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4921,7 +5128,7 @@ msgstr ""
 "    Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n"
 "    chyba pri zmene adresára."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4938,10 +5145,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4970,12 +5179,13 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa chyba."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5007,7 +5217,8 @@ msgstr ""
 "    Vráti 0 ak je OPTNAME zapnuté; zlyhá ak bola zadaná\n"
 "    neplatná voľba alebo OPTNAME je vypnuté."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5015,22 +5226,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Formátuje a vypisuje ARGUMENTY podľa FORMÁTu.\n"
@@ -5039,7 +5256,8 @@ msgstr ""
 "      -v PREM\tpriradiť výstup premennej shellu PREM namiesto\n"
 "    \t\tzobrazenia na štandarný výstup\n"
 "    \n"
-"    FORMÁT je reťazec znakov, ktorý obsahuje tri typy objektov: čisté znaky,\n"
+"    FORMÁT je reťazec znakov, ktorý obsahuje tri typy objektov: čisté "
+"znaky,\n"
 "    ktoré sa jednoducho skopírujú na štandardný výstup, únikové klauzuly,\n"
 "    ktoré sa nahradia zodpovedajúcim výstupom a skopírujú na štandardný\n"
 "    výstup a špecifikácie formátu, z ktorých každá spôsobí vypísanie\n"
@@ -5058,12 +5276,14 @@ msgstr ""
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba pri\n"
 "    zápise či priradení."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5104,12 +5324,13 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5123,13 +5344,16 @@ msgstr ""
 "    Návratová hodnota:\n"
 "    Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5176,22 +5400,28 @@ msgstr ""
 "    Vráti 0 ak nebola zadaná neplatná voľba a NÁZOV nemá definovanú\n"
 "    špecifikáciu dopĺňania."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5201,11 +5431,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Načítať riadky zo štandardného vstupu do premennej indexovaného poľa.\n"
@@ -5215,13 +5447,15 @@ msgstr ""
 "    MAPFILE.\n"
 "    \n"
 "    Voľby:\n"
-"      -n počet\tSkopírovať najviac POČET riadkov. Ak je POČET 0, všetky riadky.\n"
+"      -n počet\tSkopírovať najviac POČET riadkov. Ak je POČET 0, všetky "
+"riadky.\n"
 "      -O začiatok\tZačať priraďovanie položiek POĽA na indexe ZAČIATOK.\n"
 "      \t\tPredvolený index je 0.\n"
 "      -s počet\tIgnorovať prvých prečítaných POČET riadkov.\n"
 "      -t\t\tOdstrániť znak nového riadka z konca každého načítaného riadka.\n"
 "      -u fd\t\tNačítať riadky z popisovača FD namiesto štandardného vstupu.\n"
-"      -C callback\tVyhodnotiť CALLBACK po prečítaní každých QUANTUM riadkov.\n"
+"      -C callback\tVyhodnotiť CALLBACK po prečítaní každých QUANTUM "
+"riadkov.\n"
 "      -c quantum\tUrčuje počet riadkov, ktoré sa majú prečítať pred každým\n"
 "      \t\tvolaním CALLBACK.\n"
 "    \n"
@@ -5239,7 +5473,7 @@ msgstr ""
 "    Vráti 0 ak nebola zadaná neplatná voľba a POLE nie je len na čítanie a\n"
 "    nie je to indexované pole."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5260,7 +5494,8 @@ msgstr ""
 #~ "; 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"
+#~ "    The value of EXPR indicates how many call frames to go back before "
+#~ "the\n"
 #~ "    current one; the top frame is frame 0."
 #~ msgstr ""
 #~ "; tieto informácie naviac možno použiť na\n"
@@ -5270,13 +5505,16 @@ msgstr ""
 #~ "    Vrchný rámec je rámec 0."
 
 #~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: nie je možné realokovať %lu bajtov (%lu bajtov alokovaných)"
+#~ msgstr ""
+#~ "xrealloc: nie je možné realokovať %lu bajtov (%lu bajtov alokovaných)"
 
 #~ msgid "xrealloc: cannot allocate %lu bytes"
 #~ msgstr "xrealloc: nie je možné alokovať %lu bajtov"
 
 #~ msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-#~ msgstr "xrealloc: %s:%d: nie je možné realokovať %lu bajtov (%lu bajtov alokovaných)"
+#~ msgstr ""
+#~ "xrealloc: %s:%d: nie je možné realokovať %lu bajtov (%lu bajtov "
+#~ "alokovaných)"
 
 #~ msgid " "
 #~ msgstr " "
@@ -5290,7 +5528,8 @@ msgstr ""
 #~ msgid "can be used used to provide a stack trace."
 #~ msgstr "je možné využiť pre trasovanie zásobníka."
 
-#~ msgid "The value of EXPR indicates how many call frames to go back before the"
+#~ msgid ""
+#~ "The value of EXPR indicates how many call frames to go back before the"
 #~ msgstr "Hodnota VÝR určuje o koľko rámcov volania sa vrátiť"
 
 #~ msgid "current one; the top frame is frame 0."
@@ -5311,34 +5550,42 @@ msgstr ""
 #~ msgid "back up through the list with the `popd' command."
 #~ msgstr "sa môžete dostať príkazom „popd“."
 
-#~ msgid "The -l flag specifies that `dirs' should not print shorthand versions"
+#~ msgid ""
+#~ "The -l flag specifies that `dirs' should not print shorthand versions"
 #~ msgstr "Voľba -l hovorí, že „dirs“ by nemal vypísovať skrátené verzie"
 
-#~ msgid "of directories which are relative to your home directory.  This means"
-#~ msgstr "adresárov, ktoré sa vzťahujú k vášmu domovskému adresáru. To znamená,"
+#~ msgid ""
+#~ "of directories which are relative to your home directory.  This means"
+#~ msgstr ""
+#~ "adresárov, ktoré sa vzťahujú k vášmu domovskému adresáru. To znamená,"
 
 #~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'.  The -v flag"
 #~ msgstr "že „~/bin“ sa može zobraziť ako „/homes/bfox/bin“. Voľba -v"
 
 #~ msgid "causes `dirs' to print the directory stack with one entry per line,"
-#~ msgstr "hovorí, aby „dirs“ vypísal zásobník adresárov s jednou položkou na riadok,"
+#~ msgstr ""
+#~ "hovorí, aby „dirs“ vypísal zásobník adresárov s jednou položkou na riadok,"
 
-#~ msgid "prepending the directory name with its position in the stack.  The -p"
+#~ msgid ""
+#~ "prepending the directory name with its position in the stack.  The -p"
 #~ msgstr "a pred názov adresára vypísal jeho polohu v zásobníku. Voľba -p"
 
 #~ msgid "flag does the same thing, but the stack position is not prepended."
 #~ msgstr "robí presne to isté, len sa nepridáva poloha v zásobníku."
 
-#~ msgid "The -c flag clears the directory stack by deleting all of the elements."
+#~ msgid ""
+#~ "The -c flag clears the directory stack by deleting all of the elements."
 #~ msgstr "Voľba -c čistí zásobník adresárov odstránením všetkých prvkov."
 
-#~ msgid "+N   displays the Nth entry counting from the left of the list shown by"
+#~ msgid ""
+#~ "+N   displays the Nth entry counting from the left of the list shown by"
 #~ msgstr "+N   zobrazí N-tú položku zľava zoznamu zobrazenú pomocou"
 
 #~ msgid "     dirs when invoked without options, starting with zero."
 #~ msgstr "     dirs vyvolaného bez volieb, počínajúc nulou."
 
-#~ msgid "-N   displays the Nth entry counting from the right of the list shown by"
+#~ msgid ""
+#~ "-N   displays the Nth entry counting from the right of the list shown by"
 #~ msgstr "+N   zobrazí N-tú položku sprava zoznamu zobrazenú pomocou"
 
 #~ msgid "Adds a directory to the top of the directory stack, or rotates"
@@ -5407,7 +5654,8 @@ msgstr ""
 #~ msgid "     removes the last directory, `popd -1' the next to last."
 #~ msgstr "     odstráni posledný adresár, „popd -1“ predposledný."
 
-#~ msgid "-n   suppress the normal change of directory when removing directories"
+#~ msgid ""
+#~ "-n   suppress the normal change of directory when removing directories"
 #~ msgstr "-n   potlačiť normálnu zmenu adresára pri odoberaní adresárov"
 
 #~ msgid "     from the stack, so only the stack is manipulated."
@@ -5463,9 +5711,12 @@ msgstr ""
 #~ msgid ""
 #~ "Runs COMMAND with ARGS ignoring shell functions.  If you have a shell\n"
 #~ "    function called `ls', and you wish to call the command `ls', you can\n"
-#~ "    say \"command ls\".  If the -p option is given, a default value is used\n"
-#~ "    for PATH that is guaranteed to find all of the standard utilities.  If\n"
-#~ "    the -V or -v option is given, a string is printed describing COMMAND.\n"
+#~ "    say \"command ls\".  If the -p option is given, a default value is "
+#~ "used\n"
+#~ "    for PATH that is guaranteed to find all of the standard utilities.  "
+#~ "If\n"
+#~ "    the -V or -v option is given, a string is printed describing "
+#~ "COMMAND.\n"
 #~ "    The -V option produces a more verbose description."
 #~ msgstr ""
 #~ "Spustí PRÍKAZ s ARG ignorujúc funkcie shellu. Ak máte funkciu shellu\n"
@@ -5484,7 +5735,8 @@ msgstr ""
 #~ "    \n"
 #~ "      -a\tto make NAMEs arrays (if supported)\n"
 #~ "      -f\tto select from among function names only\n"
-#~ "      -F\tto display function names (and line number and source file name if\n"
+#~ "      -F\tto display function names (and line number and source file name "
+#~ "if\n"
 #~ "    \tdebugging) without definitions\n"
 #~ "      -i\tto make NAMEs have the `integer' attribute\n"
 #~ "      -r\tto make NAMEs readonly\n"
@@ -5498,7 +5750,8 @@ msgstr ""
 #~ "    and definition.  The -F option restricts the display to function\n"
 #~ "    name only.\n"
 #~ "    \n"
-#~ "    Using `+' instead of `-' turns off the given attribute instead.  When\n"
+#~ "    Using `+' instead of `-' turns off the given attribute instead.  "
+#~ "When\n"
 #~ "    used in a function, makes NAMEs local, as with the `local' command."
 #~ msgstr ""
 #~ "Deklaruje premenné a/alebo im dodá argumenty. Ak nie sú zadané\n"
@@ -5509,14 +5762,16 @@ msgstr ""
 #~ "    \n"
 #~ "      -a\tna vytvorenie polí NÁZVOV (ak sú podporované)\n"
 #~ "      -f\tna výber iba spomedzi názvov funkcií\n"
-#~ "      -F\tna zobrazenie názvov funkcií (a čísla riadku a zdrojového súboru\n"
+#~ "      -F\tna zobrazenie názvov funkcií (a čísla riadku a zdrojového "
+#~ "súboru\n"
 #~ "    \tpre ladenie) bez definícií\n"
 #~ "      -i\taby mali NÁZVY atribút „integer“\n"
 #~ "      -r\taby boli NÁZVY len na čítanie\n"
 #~ "      -t\taby mali NÁZVY atribút „trace“\n"
 #~ "      -x\taby sa NÁZVY exportovali\n"
 #~ "    \n"
-#~ "    Premenné s atribútom integer vykonávajú aritmetické vyhodnocovanie (pozri\n"
+#~ "    Premenné s atribútom integer vykonávajú aritmetické vyhodnocovanie "
+#~ "(pozri\n"
 #~ "    „let“) po priradení výrazu premennej.\n"
 #~ "    \n"
 #~ "    Pri zobrazovaní hodnôt premenných, -f zobrazí názov a definíciu\n"
@@ -5537,8 +5792,10 @@ msgstr ""
 #~ "    je možné použiť iba v rámci funkcie; spôsobí obmedzenie viditeľnosti\n"
 #~ "    premennej NÁZOV iba na túto funkciu a jej potomkov."
 
-#~ msgid "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
-#~ msgstr "Vypíše ARGumenty. S voľbou -n bude posledný znak nového riadka potlačený."
+#~ msgid ""
+#~ "Output the ARGs.  If -n is specified, the trailing newline is suppressed."
+#~ msgstr ""
+#~ "Vypíše ARGumenty. S voľbou -n bude posledný znak nového riadka potlačený."
 
 #~ msgid ""
 #~ "Enable and disable builtin shell commands.  This allows\n"
@@ -5552,8 +5809,10 @@ msgstr ""
 #~ "    previously loaded with -f.  If no non-option names are given, or\n"
 #~ "    the -p option is supplied, a list of builtins is printed.  The\n"
 #~ "    -a option means to print every builtin with an indication of whether\n"
-#~ "    or not it is enabled.  The -s option restricts the output to the POSIX.2\n"
-#~ "    `special' builtins.  The -n option displays a list of all disabled builtins."
+#~ "    or not it is enabled.  The -s option restricts the output to the "
+#~ "POSIX.2\n"
+#~ "    `special' builtins.  The -n option displays a list of all disabled "
+#~ "builtins."
 #~ msgstr ""
 #~ "Zapína a vypína vstavené (builtin) príkazy shellu. Toto vám umožní\n"
 #~ "    použiť príkaz s rovnakým názvom ako má vstavaný príkaz shellu\n"
@@ -5566,11 +5825,14 @@ msgstr ""
 #~ "    vstavaný príkaz, ktorý bol predtým načítaný pomocou -f. Ak nie sú\n"
 #~ "    zadané žiadne názvy okrem volieb alebo je zadaná voľba -p , vypíše\n"
 #~ "    sa zoznam vstavaných príkazov. Voľba -a znamená, že sa má vypísať\n"
-#~ "    každý vstavaný príkaz a či je zapnutý alebo vypnutý. Voľba -s obmedzí\n"
-#~ "    výstup na POSIX.2 „special“ vstavané príkazy. Voľba -n zobrazí zoznam\n"
+#~ "    každý vstavaný príkaz a či je zapnutý alebo vypnutý. Voľba -s "
+#~ "obmedzí\n"
+#~ "    výstup na POSIX.2 „special“ vstavané príkazy. Voľba -n zobrazí "
+#~ "zoznam\n"
 #~ "    všetkých vypnutých vstavaných príkazov."
 
-#~ msgid "Read ARGs as input to the shell and execute the resulting command(s)."
+#~ msgid ""
+#~ "Read ARGs as input to the shell and execute the resulting command(s)."
 #~ msgstr "Prečíta ARGumenty ako vstup do shellu a vykoná výsledné príkazy."
 
 #~ msgid ""
@@ -5600,15 +5862,22 @@ msgstr ""
 #~ "    remembered.  If the -p option is supplied, PATHNAME is used as the\n"
 #~ "    full pathname of NAME, and no path search is performed.  The -r\n"
 #~ "    option causes the shell to forget all remembered locations.  The -d\n"
-#~ "    option causes the shell to forget the remembered location of each NAME.\n"
+#~ "    option causes the shell to forget the remembered location of each "
+#~ "NAME.\n"
 #~ "    If the -t option is supplied the full pathname to which each NAME\n"
-#~ "    corresponds is printed.  If multiple NAME arguments are supplied with\n"
-#~ "    -t, the NAME is printed before the hashed full pathname.  The -l option\n"
-#~ "    causes output to be displayed in a format that may be reused as input.\n"
-#~ "    If no arguments are given, information about remembered commands is displayed."
+#~ "    corresponds is printed.  If multiple NAME arguments are supplied "
+#~ "with\n"
+#~ "    -t, the NAME is printed before the hashed full pathname.  The -l "
+#~ "option\n"
+#~ "    causes output to be displayed in a format that may be reused as "
+#~ "input.\n"
+#~ "    If no arguments are given, information about remembered commands is "
+#~ "displayed."
 #~ msgstr ""
-#~ "Pre každý NÁZOV sa určí a zapamätá plná cesta k príkazu. Ak je daná voľba -p\n"
-#~ "    CESTA sa použije ako plná cesta k NÁZOV a nevykoná sa hľadanie cesty.\n"
+#~ "Pre každý NÁZOV sa určí a zapamätá plná cesta k príkazu. Ak je daná voľba "
+#~ "-p\n"
+#~ "    CESTA sa použije ako plná cesta k NÁZOV a nevykoná sa hľadanie "
+#~ "cesty.\n"
 #~ "    Voľba -r spôsobí, že shell zabudne všetky zapamätané miesta.\n"
 #~ "    Voľba -d spôsobí, že shell zabudne zapamätané miesto každého NÁZVU.\n"
 #~ "    Ak je zadaná voľba -t, vypíše sa plná cesta zodpovedajúca každému\n"
@@ -5632,13 +5901,17 @@ msgstr ""
 
 #~ msgid ""
 #~ "By default, removes each JOBSPEC argument from the table of active jobs.\n"
-#~ "    If the -h option is given, the job is not removed from the table, but is\n"
+#~ "    If the -h option is given, the job is not removed from the table, but "
+#~ "is\n"
 #~ "    marked so that SIGHUP is not sent to the job if the shell receives a\n"
-#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all\n"
-#~ "    jobs from the job table; the -r option means to remove only running jobs."
+#~ "    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove "
+#~ "all\n"
+#~ "    jobs from the job table; the -r option means to remove only running "
+#~ "jobs."
 #~ msgstr ""
 #~ "Štandardne odstráni argument JOBSPEC z tabuľky aktívnych úloh.\n"
-#~ "    Ak je uvedená voľba „-h“, úloha sa neodstráni z tabuľky, ale označí sa\n"
+#~ "    Ak je uvedená voľba „-h“, úloha sa neodstráni z tabuľky, ale označí "
+#~ "sa\n"
 #~ "    tak, že SIGHUP sa nepošle úlohe, ak shell dostane SIGHUP. Voľba „-a“\n"
 #~ "    bez uvedenej JOBSPEC znamená odstránenie všetkých úloh z tabuľky\n"
 #~ "    úloh; voľba „-r“ znamená odstrániť iba bežiace úlohy."
@@ -5686,15 +5959,18 @@ msgstr ""
 #~ "The given NAMEs are marked readonly and the values of these NAMEs may\n"
 #~ "    not be changed by subsequent assignment.  If the -f option is given,\n"
 #~ "    then functions corresponding to the NAMEs are so marked.  If no\n"
-#~ "    arguments are given, or if `-p' is given, a list of all readonly names\n"
+#~ "    arguments are given, or if `-p' is given, a list of all readonly "
+#~ "names\n"
 #~ "    is printed.  The `-a' option means to treat each NAME as\n"
 #~ "    an array variable.  An argument of `--' disables further option\n"
 #~ "    processing."
 #~ msgstr ""
 #~ "Zadané NÁZVY sa označia iba na čítanie a hodnoty týchto NÁZVOV nebude\n"
-#~ "    možné zmeniť ďalším priradením. Ak je zadaná voľba -f, označia sa takto\n"
+#~ "    možné zmeniť ďalším priradením. Ak je zadaná voľba -f, označia sa "
+#~ "takto\n"
 #~ "    funkcie zodpovedajúce NÁZVU. Ak nie sú zadané žiadne argumenty alebo\n"
-#~ "    je zadané „-p“, vypíše sa zoznam všetkých názvov len na čítanie. Voľba „-a“\n"
+#~ "    je zadané „-p“, vypíše sa zoznam všetkých názvov len na čítanie. "
+#~ "Voľba „-a“\n"
 #~ "    znamená, že sa každá premenná NÁZOV bude považovať za pole. Argument\n"
 #~ "    „--“ vypína spracovanie ďalších volieb."
 
@@ -5725,23 +6001,29 @@ msgstr ""
 #~ "For each NAME, indicate how it would be interpreted if used as a\n"
 #~ "    command name.\n"
 #~ "    \n"
-#~ "    If the -t option is used, `type' outputs a single word which is one of\n"
-#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n"
-#~ "    alias, shell reserved word, shell function, shell builtin, disk file,\n"
+#~ "    If the -t option is used, `type' outputs a single word which is one "
+#~ "of\n"
+#~ "    `alias', `keyword', `function', `builtin', `file' or `', if NAME is "
+#~ "an\n"
+#~ "    alias, shell reserved word, shell function, shell builtin, disk "
+#~ "file,\n"
 #~ "    or unfound, respectively.\n"
 #~ "    \n"
 #~ "    If the -p flag is used, `type' either returns the name of the disk\n"
 #~ "    file that would be executed, or nothing if `type -t NAME' would not\n"
 #~ "    return `file'.\n"
 #~ "    \n"
-#~ "    If the -a flag is used, `type' displays all of the places that contain\n"
+#~ "    If the -a flag is used, `type' displays all of the places that "
+#~ "contain\n"
 #~ "    an executable named `file'.  This includes aliases, builtins, and\n"
 #~ "    functions, if and only if the -p flag is not also used.\n"
 #~ "    \n"
 #~ "    The -f flag suppresses shell function lookup.\n"
 #~ "    \n"
-#~ "    The -P flag forces a PATH search for each NAME, even if it is an alias,\n"
-#~ "    builtin, or function, and returns the name of the disk file that would\n"
+#~ "    The -P flag forces a PATH search for each NAME, even if it is an "
+#~ "alias,\n"
+#~ "    builtin, or function, and returns the name of the disk file that "
+#~ "would\n"
 #~ "    be executed."
 #~ msgstr ""
 #~ "Pre každý NÁZOV určí ako by sa interpretoval, keby sa použil ako\n"
@@ -5749,7 +6031,8 @@ msgstr ""
 #~ "    \n"
 #~ "    Ak je použitá voľba -t, „type“ vypíše jediné slovo, ktoré je jedno z\n"
 #~ "    „alias“, „keyword“, „function“, „builtin“, „file“ alebo „“, ak NÁZOV\n"
-#~ "    je alias, vyhradené slovo shellu, funkcia shellu, vstavaný príkaz shellu,\n"
+#~ "    je alias, vyhradené slovo shellu, funkcia shellu, vstavaný príkaz "
+#~ "shellu,\n"
 #~ "    súbor na disku resp. nezistený typ.\n"
 #~ "    \n"
 #~ "    Ak je použitá voľba -p, „type“ vypíše buď názov súboru na disku,\n"
@@ -5757,31 +6040,41 @@ msgstr ""
 #~ "    „file“.\n"
 #~ "    \n"
 #~ "    Ak je použitá voľba -a, „type“ vypíše všetky miesta, ktoré obsahujú\n"
-#~ "    spustiteľný súbor s názvom Ak je použitá voľba -t, „file“. Sem patria\n"
-#~ "    aliasy, vstavané premenné a funkcie ak a iba ak nie je zároveň zadaný\n"
+#~ "    spustiteľný súbor s názvom Ak je použitá voľba -t, „file“. Sem "
+#~ "patria\n"
+#~ "    aliasy, vstavané premenné a funkcie ak a iba ak nie je zároveň "
+#~ "zadaný\n"
 #~ "    prepínač -p.\n"
 #~ "    \n"
 #~ "    Voľba -f potlačí vyhľadávanie funkcií shellu.\n"
 #~ "    \n"
 #~ "    Voľba -P vynúti vyhľadanie každého NÁZVU v ceste (premenná PATH),\n"
-#~ "    aj ak je to alias, vstavaný príkaz shellu alebo funkcia a vráti názov\n"
+#~ "    aj ak je to alias, vstavaný príkaz shellu alebo funkcia a vráti "
+#~ "názov\n"
 #~ "    súboru na disku, ktorý by sa vykonal."
 
 #~ msgid ""
 #~ "The user file-creation mask is set to MODE.  If MODE is omitted, or if\n"
-#~ "    `-S' is supplied, the current value of the mask is printed.  The `-S'\n"
-#~ "    option makes the output symbolic; otherwise an octal number is output.\n"
+#~ "    `-S' is supplied, the current value of the mask is printed.  The `-"
+#~ "S'\n"
+#~ "    option makes the output symbolic; otherwise an octal number is "
+#~ "output.\n"
 #~ "    If `-p' is supplied, and MODE is omitted, the output is in a form\n"
 #~ "    that may be used as input.  If MODE begins with a digit, it is\n"
-#~ "    interpreted as an octal number, otherwise it is a symbolic mode string\n"
+#~ "    interpreted as an octal number, otherwise it is a symbolic mode "
+#~ "string\n"
 #~ "    like that accepted by chmod(1)."
 #~ msgstr ""
 #~ "Používateľská maska pre tvorbu súborov sa nastaví na REŽIM. Ak\n"
 #~ "    vynecháte REŽIM alebo zadáte „-S“, vypíše sa aktuálna hodnota masky.\n"
-#~ "    Voľba „-S“ vypisuje symbolický výstup; inak sa vypisuje číslo v osmičkovej\n"
-#~ "    sústave. Ak je zadaná voľba „-p“ a REŽIM sa vynechá, výstup je v tvare,\n"
-#~ "    ktorý je možné použiť ako vstup. Ak REŽIM začína číslicou, interpretuje sa\n"
-#~ "    ako číslo v osmičkovej sústave, inak je to symbolický reťazec režimu,\n"
+#~ "    Voľba „-S“ vypisuje symbolický výstup; inak sa vypisuje číslo v "
+#~ "osmičkovej\n"
+#~ "    sústave. Ak je zadaná voľba „-p“ a REŽIM sa vynechá, výstup je v "
+#~ "tvare,\n"
+#~ "    ktorý je možné použiť ako vstup. Ak REŽIM začína číslicou, "
+#~ "interpretuje sa\n"
+#~ "    ako číslo v osmičkovej sústave, inak je to symbolický reťazec "
+#~ "režimu,\n"
 #~ "    v tvare, aký prijíma chmod(1)."
 
 #~ msgid ""
@@ -5826,12 +6119,17 @@ msgstr ""
 
 #~ msgid ""
 #~ "For each NAME, specify how arguments are to be completed.\n"
-#~ "    If the -p option is supplied, or if no options are supplied, existing\n"
-#~ "    completion specifications are printed in a way that allows them to be\n"
-#~ "    reused as input.  The -r option removes a completion specification for\n"
-#~ "    each NAME, or, if no NAMEs are supplied, all completion specifications."
+#~ "    If the -p option is supplied, or if no options are supplied, "
+#~ "existing\n"
+#~ "    completion specifications are printed in a way that allows them to "
+#~ "be\n"
+#~ "    reused as input.  The -r option removes a completion specification "
+#~ "for\n"
+#~ "    each NAME, or, if no NAMEs are supplied, all completion "
+#~ "specifications."
 #~ msgstr ""
 #~ "Pre každý NÁZOV určí, koľko argumentov sa má doplniť.\n"
-#~ "    Ak je daná voľba -p alebo žiadne voľby, vypíšu sa existujúce    špecifikácie doplnení v takom formáte, že je ich možné použiť na\n"
+#~ "    Ak je daná voľba -p alebo žiadne voľby, vypíšu sa existujúce    "
+#~ "špecifikácie doplnení v takom formáte, že je ich možné použiť na\n"
 #~ "    vstupe. Voľba -r odstráni špecifikáciu doplnenia pre každý NÁZOV,\n"
 #~ "    alebo, ak nebol uvedený žiadny NÁZOV, pre všetky špecifikácie."
diff --git a/po/sl.gmo b/po/sl.gmo
new file mode 100644 (file)
index 0000000..97c4f90
Binary files /dev/null and b/po/sl.gmo differ
index 07c8320e78933bd20dea48f6c0db94eb0e43ef3a..144981e1eb171d0bedff91550d863c0af420f7a0 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-09-20 21:31+0200\n"
 "Last-Translator: Primož PETERLIN <primozz.peterlin@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -16,52 +16,53 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
+"%100==4 ? 3 : 0);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "slab indeks polja"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: indeksiranega polja ni mogoče spremeniti v asociativno"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: neveljaven ključ asociativnega polja"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: ni mogoče dodeliti neštevilčnemu indeksu"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: pri dodeljevanju asociativnega polja je treba uporabiti indeks"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: ni mogoče ustvariti: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: bližnjice za ukaz ni mogoče najti"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: prvi znak, ki ni presledek, ni »\"«"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "manjkajoč zaklepni »%c« v %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: manjkajoče dvopičje kot razmejilnik"
@@ -71,36 +72,36 @@ msgstr "%s: manjkajoče dvopičje kot razmejilnik"
 msgid "`%s': invalid alias name"
 msgstr "»%s«: neveljavno ime aliasa"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "urejanje vrstice ni omogočeno"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "»%s«: neveljavno ime preslikave tipkovnice"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: branje ni mogoče: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "»%s«: preklic prireditve ni mogoč"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "»%s«: neznano ime funkcije"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s ni prirejen nobeni tipki.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s je mogoče poklicati prek "
@@ -123,11 +124,15 @@ msgstr ""
 "\n"
 "    Če IZRAZ ni podan, vrne "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "spremenljivka HOME ni nastavljena"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "preveč argumentov"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "spremenljivka OLDPWD ni nastavljena"
 
@@ -136,7 +141,7 @@ msgstr "spremenljivka OLDPWD ni nastavljena"
 msgid "line %d: "
 msgstr "vrstica %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "opozorilo: "
@@ -146,11 +151,7 @@ msgstr "opozorilo: "
 msgid "%s: usage: "
 msgstr "%s: uporaba: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "preveč argumentov"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: izbira zahteva argument"
@@ -165,7 +166,7 @@ msgstr "%s: zahtevan je številčni argument"
 msgid "%s: not found"
 msgstr "%s: ni najdeno"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: neveljavna izbira"
@@ -175,7 +176,7 @@ msgstr "%s: neveljavna izbira"
 msgid "%s: invalid option name"
 msgstr "%s: neveljavno ime izbire"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "»%s«: ni veljaven identifikator"
@@ -188,7 +189,7 @@ msgstr "neveljavno osmiško število"
 msgid "invalid hex number"
 msgstr "neveljavno šestnajstiško število"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "neveljavno število"
 
@@ -202,7 +203,7 @@ msgstr "%s: neveljavna specifikacija signala"
 msgid "`%s': not a pid or valid job spec"
 msgstr "»%s«: ni PID, niti veljavna določitev posla"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: spremenljivka samo za branje"
@@ -274,26 +275,26 @@ msgstr "%s: napaka pri branju trenutnega imenika: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: dvoumna specifikacija posla"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: neveljavno ime dejanja"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: dopolnitev ni določena"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "opozorilo: izbira -F morda deluje drugače od pričakovanega"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "opozorilo: izbira -C morda deluje drugače od pričakovanega"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "trenutno se funkcija dopolnjevanja ne izvaja"
 
@@ -305,7 +306,7 @@ msgstr "dovoljena je le raba v funkciji"
 msgid "cannot use `-f' to make functions"
 msgstr "ni mogoče uporabiti »-f« za ustvarjanje funkcij"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: funkcija samo za branje"
@@ -315,7 +316,7 @@ msgstr "%s: funkcija samo za branje"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: na ta način ni mogoče razdefinirati polja spremenljivk"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: asociativnega polja ni mogoče pretvoriti v indeksirano"
@@ -344,8 +345,8 @@ msgstr "%s: ni dinamično naložen"
 msgid "%s: cannot delete: %s"
 msgstr "%s: ni mogoče izbrisati: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: je imenik"
@@ -360,8 +361,7 @@ msgstr "%s: ni navadna datoteka"
 msgid "%s: file is too large"
 msgstr "%s: datoteka je prevelika"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: binarne datoteke ni mogoče izvajati"
@@ -447,8 +447,11 @@ msgstr[3] "Ukazi lupine, ujemajoči se s ključno besedo »"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "nobena tema pomoči ne ustreza »%s«. Poskusite »help help«, »man -k %s« ali  »info %s«."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"nobena tema pomoči ne ustreza »%s«. Poskusite »help help«, »man -k %s« ali  "
+"»info %s«."
 
 #: builtins/help.def:185
 #, c-format
@@ -466,10 +469,12 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Naslednji ukazi so definirani interno v lupini.  Vtipkajte »help« za celoten\n"
+"Naslednji ukazi so definirani interno v lupini.  Vtipkajte »help« za "
+"celoten\n"
 "seznam.  Vtipkajte »help ukaz« za več informacij o »ukazu«.\n"
 "Uporabite »info bash« za več informacij o ukazni lupini nasploh.\n"
-"Uporabite »man -k« ali »info« za več informacij o ukazih, ki niso na seznamu.\n"
+"Uporabite »man -k« ali »info« za več informacij o ukazih, ki niso na "
+"seznamu.\n"
 "\n"
 "Zvezdica (*) pri imenu pomeni, da je ukaz onemogočen.\n"
 "\n"
@@ -482,7 +487,7 @@ msgstr "uporabite lahko le eno od izbir -anrw"
 msgid "history position"
 msgstr "položaj v zgodovini"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: neuspešna razrešitev zgodovine"
@@ -505,7 +510,7 @@ msgstr "%s: argumenti morajo biti določila procesa ali posla"
 msgid "Unknown error"
 msgstr "Neznana napaka"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "pričakovan je izraz"
 
@@ -514,12 +519,12 @@ msgstr "pričakovan je izraz"
 msgid "%s: not an indexed array"
 msgstr "%s: ni indeksirano polje"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: neveljavno določilo deskriptorja datoteke"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: neveljaven deskriptor datoteke: %s"
@@ -547,31 +552,31 @@ msgstr "prazno ime polja spremenljivk"
 msgid "array variable support required"
 msgstr "potrebna je podpora za polja spremenljivk"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "»%s«: manjkajoči formatni znak"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "»%c«: neveljavno formatno določilo časa"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "»%c«: neveljavni formatni znak<"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "opozorilo: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "manjkajoča šestnajstiška števka za \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "manjkajoča unikodna števka za \\%c"
@@ -607,10 +612,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Prikaži seznam trenutno zapomnjenih imenikob.  Imeniki se dodajajo na\n"
@@ -710,17 +717,17 @@ msgstr ""
 "\n"
 "    Vgrajeni ukaz »dirs« izpiše sklad imenikov."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: neveljavno določilo prekoračitve časa"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "napaka pri branju: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "»return« je mogoč samo iz funkcije ali skripte"
 
@@ -728,17 +735,17 @@ msgstr "»return« je mogoč samo iz funkcije ali skripte"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "ni mogoče obenem odnastaviti funkcije in spremenljivke"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: ni mogoče odnastaviti"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: ni mogoče odnastaviti: %s samo za branje"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ni polje"
@@ -752,11 +759,11 @@ msgstr "%s: ni funkcija"
 msgid "shift count"
 msgstr "števec pomika"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "ni mogoče obenem nastavljati in odnastavljati lupinskih izbir"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: neveljavno ime lupinske izbire"
@@ -798,7 +805,7 @@ msgstr "%s je funkcija\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s je vgrajeni ukaz\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s je %s\n"
@@ -808,26 +815,26 @@ msgstr "%s je %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "»%c«: slab ukaz"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: ni mogoče prebrati omejitev: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "omejitev"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: ni mogoče spremeniti omejitev: %s"
@@ -846,7 +853,7 @@ msgstr "»%c«: neveljaven operator simbolnega načina"
 msgid "`%c': invalid symbolic mode character"
 msgstr "»%c«: neveljaven znak simbolnega načina"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -860,23 +867,23 @@ msgstr "zadnji ukaz: %s\n"
 msgid "Aborting..."
 msgstr "Prekinjanje.."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "neznana ukazna napaka"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "slaba zvrst ukaza"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "slab konektor"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "slab skok"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr ""
@@ -891,102 +898,117 @@ msgstr "\ačasovna prekoračitev pri čakanju na vhod: samodejna odjava\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "standardnega vhoda ni mogoče preusmeriti iz /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: »%c«: neveljavni formatni znak"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "napaka cevovoda"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: omejitev: imena ukazov ne smejo vsebovati »/«"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: ukaza ni mogoče najti"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: slab tolmač"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: binarne datoteke ni mogoče izvajati"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s je vgrajeni ukaz\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "prekoračitev ravni rekurzije izraza"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "podkoračitev rekurzijskega sklada"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "skladenjska napaka v izrazu"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "poskus prireditve ne-spremenljivki"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "deljenje z 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "v pogojnem izrazu je pričakovano »:«"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "eksponent manjši od 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "manjkajoči »)«"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "napaka v skladnji: pričakuje se operand"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "napaka v skladnji: neveljavni aritmetični operator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "neveljavna aritmetična osnova"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "vrednost je prevelika za osnovo"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: napaka v izrazu\n"
@@ -995,163 +1017,163 @@ msgstr "%s: napaka v izrazu\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: dostop do nadrejenih imenikov ni mogoč"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: cevovod pgrp"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "vejeni PID %d se pojavlja v tekočem poslu %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "brisanje ustavljenega posla %d s skupino procesa %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Opravljeno"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Ustavljeno"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Ustavljeno(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "V teku"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Opravljeno(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Izhod %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Neznani status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(izmet pomnilnika)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: PID %ld ni naslednik te lupine"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Ni zapisa za proces %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: posel %d je ustavljen"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: posel se je zaključil"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: posel %d že teče v ozadju"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: vrstica %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (izmet pomnilnika)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "ta lupina nima nadzora poslov"
 
@@ -1218,7 +1240,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1241,22 +1263,22 @@ msgstr "%s: slabo določena omrežna pot"
 msgid "network operations not supported"
 msgstr "omrežne operacije niso podprte"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: ni mogoče spremeniti lokalizacije (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: ni mogoče spremeniti lokalizacije (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: ni mogoče spremeniti lokalizacije (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: ni mogoče spremeniti lokalizacije (%s): %s"
@@ -1287,118 +1309,118 @@ msgstr "napaka v skladnji: pričakovano »;«"
 msgid "syntax error: `((%s))'"
 msgstr "napaka v skladnji: »((%s))«"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr ""
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr ""
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "nepričakovani EOF pri iskanju ujemajočega »%c«"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "nepričakovani EOF pri iskanju »]]«"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "napaka v skladnji pogojnega izraza: nepričakovani žeton »%s«"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "napaka v skladnji pogojnega izraza"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "nepričakovani žeton »%s«, pričakovan »)«"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "pričakovan »)«"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "nepričakovani argument »%s« pogojnega unarnega operatorja"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "nepričakovani argument pogojnega unarnega operatorja"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "nepričakovani žeton »%s«, pričakovan pogojni binarni operator"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "pričakovan pogojni binarni operator"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "nepričakovani argument »%s« pogojnega binarnega operatorja"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "nepričakovani argument pogojnega binarnega operatorja"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "nepričakovani žeton »%c« v pogojnem ukazu"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "nepričakovani žeton »%s« v pogojnem ukazu"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "nepričakovani žeton %d v pogojnem ukazu"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "napaka v skladnji blizu nepričakovanega žetona »%s«"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "napaka v skladnji pri »%s«"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "napaka v skladnji: nepričakovan konec datoteke"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "napaka v skladnji"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Uporabite \"%s\" za izhod iz lupine.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "nepričakovani EOF pri iskanju ujemajočega »)«"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: funkcije »%s« ni mogoče najti"
@@ -1408,26 +1430,26 @@ msgstr "completion: funkcije »%s« ni mogoče najti"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1465,33 +1487,33 @@ msgstr "%s: fd ni mogoče pripisati spremenljivki"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "napaka pri preusmeritvi: fd ni mogoče podvojiti"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "ni mogoče najti /tmp; prosim, ustvarite ga!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp mora biti veljavno ime imenika"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: neveljavna izbira"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Nimam imena!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, izdaja %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1500,39 +1522,39 @@ msgstr ""
 "Uporaba:\t%s [dolga izbira GNU] [izbira]...\n"
 "\t%s [dolga izbira GNU] [izbira] skript ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Dolge izbire GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Izbire ukazne lupine:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD ali -c ukaz ali -O kratka_izbira\t\t(le pri klicu)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ali -o izbira\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Vtipkajte »%s -c \"help set\"« za več informacij o izbirah lupine.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Vtipkajte »%s -c help« za več informacij o vgrajenih ukazih lupine.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Uporabite ukaz  »bashbug« za javljanje napak.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: neveljavna operacija"
@@ -1706,81 +1728,83 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr ""
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr ""
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr ""
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1817,76 +1841,77 @@ msgstr ""
 msgid "missing `]'"
 msgstr ""
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr ""
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr ""
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr ""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr ""
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1896,8 +1921,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright © 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "GPLv3+: GNU GPL, 3. izdaja ali poznejša <http://www.gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"GPLv3+: GNU GPL, 3. izdaja ali poznejša <http://www.gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1921,8 +1950,12 @@ msgstr "Copyright © 2009 Free Software Foundantion, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "GPLv2+: GNU GPL, 2. izdaja ali poznejša <http://www.gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"GPLv2+: GNU GPL, 2. izdaja ali poznejša <http://www.gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1953,7 +1986,9 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] ime [ime ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
 #: builtins.c:54
@@ -2061,7 +2096,9 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [vzorec ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
 msgstr ""
 
 #: builtins.c:125
@@ -2073,7 +2110,9 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [posel ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
 msgstr ""
 
 #: builtins.c:134
@@ -2081,7 +2120,9 @@ msgid "let arg [arg ...]"
 msgstr "let argument [argument ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
 msgstr ""
 
 #: builtins.c:138
@@ -2141,7 +2182,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2149,7 +2190,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2177,7 +2218,9 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case BESEDA in [VZOREC [| VZOREC]...) UKAZI ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
 msgstr "if UKAZI; then UKAZI; [elif UKAZI; then UKAZI; ]... [ else UKAZI; ] fi"
 
 #: builtins.c:194
@@ -2237,11 +2280,16 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v spremenljivka] format [argumenti]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
 msgstr ""
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
 msgstr ""
 
 #: builtins.c:237
@@ -2249,11 +2297,15 @@ msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr ""
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 msgstr ""
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
 msgstr ""
 
 #: builtins.c:254
@@ -2271,7 +2323,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "    Določi ali prikaži aliase.\n"
@@ -2318,30 +2371,36 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2352,7 +2411,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2363,20 +2422,21 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2394,7 +2454,8 @@ msgstr ""
 "Vrne kontekst trenutnega klica podprograma.\n"
 "\n"
 "    Če IZRAZ ni podan, vrne \"$line $filename\".  Če je IZRAZ podan, vrne\n"
-"    \"$line $subroutine $filename\"; to dodatno informacijo je mogoče uporabiti\n"
+"    \"$line $subroutine $filename\"; to dodatno informacijo je mogoče "
+"uporabiti\n"
 "    za sledenje sklada.\n"
 "\n"
 "    Vrednost IZRAZA določa, za koliko okvirov klicev glede na trenutnega se\n"
@@ -2404,47 +2465,65 @@ msgstr ""
 "    Vrne se vrednost 0, razen če ukazna lupina ne izvaja funkcije ukazne\n"
 "    lupine, ali pa če je IZRAZ neveljaven."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Zamenjaj delovni imenik ukazne lupine.\n"
 "\n"
-"    Trenutni imenik zamenjaj s podanim IMENIKOM. Privzeti IMENIK je vrednost\n"
+"    Trenutni imenik zamenjaj s podanim IMENIKOM. Privzeti IMENIK je "
+"vrednost\n"
 "    lupinske spremenljivke HOME.\n"
 "\n"
 "    Iskalna pot za iskanje imenika, ki vsebuje podani IMENIK, je določena z\n"
 "    lupinsko spremenljivko CDPATH.  Imeniki, navedeni v CDPATH, so ločeni z\n"
-"    dvopičjem (:).  Prazno ime imenika pomeni trenitni imenik.  Če se podani\n"
-"    IMENIK začne s poševnico (/), spremenljivka CDPATH nima nobenega vpliva.\n"
+"    dvopičjem (:).  Prazno ime imenika pomeni trenitni imenik.  Če se "
+"podani\n"
+"    IMENIK začne s poševnico (/), spremenljivka CDPATH nima nobenega "
+"vpliva.\n"
 "\n"
-"    Če imenika ni mogoče najti, vklopljena pa je lupinska izbira »cdable_vars«,\n"
-"    se podana beseda obravnava kot ime spremenljivke.  Če je tej spremenljivki\n"
+"    Če imenika ni mogoče najti, vklopljena pa je lupinska izbira "
+"»cdable_vars«,\n"
+"    se podana beseda obravnava kot ime spremenljivke.  Če je tej "
+"spremenljivki\n"
 "    podana vrednost, se ta vrednost uporabi za IMENIK.\n"
 "\n"
 "    Izbire:\n"
@@ -2459,7 +2538,7 @@ msgstr ""
 "    spremenljivka $PWD uspešno posodobljena pri izbiri -P; sicer ne-ničelna\n"
 "    vrednost."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2484,10 +2563,11 @@ msgstr ""
 "    Privzeto se »pwd« obnaša, kot bi bila podana izbira »-L«.\n"
 "\n"
 "    Izhodni status:\n"
-"    Vrne se 0, razen če je podana izbira neveljavna ali če trenutnega imenika\n"
+"    Vrne se 0, razen če je podana izbira neveljavna ali če trenutnega "
+"imenika\n"
 "    ni mogoče prebrati."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2503,7 +2583,7 @@ msgstr ""
 "    Izhodni status:\n"
 "    Vedno uspel."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2515,7 +2595,7 @@ msgstr ""
 "    Izhodni status:\n"
 "    Vedno uspel."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2527,12 +2607,13 @@ msgstr ""
 "    Izhodni status:\n"
 "    Vedno neuspel."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2545,7 +2626,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2575,21 +2656,22 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2604,11 +2686,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2620,6 +2704,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2635,7 +2720,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2648,7 +2733,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2675,18 +2760,19 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2727,12 +2813,13 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2740,14 +2827,16 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2756,28 +2845,32 @@ msgid ""
 msgstr ""
 "Izidi iz ukazne lupine.\n"
 "\n"
-"    Zaključi ukazno lupino z izhodnim statusom N.  Če N ni podan, je izhodni\n"
+"    Zaključi ukazno lupino z izhodnim statusom N.  Če N ni podan, je "
+"izhodni\n"
 "    status enak izhodnemu statusu nazadnje izvajanega ukaza."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -2791,10 +2884,11 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2806,24 +2900,27 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -2841,7 +2938,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2859,10 +2956,11 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2889,13 +2987,14 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2919,7 +3018,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2936,7 +3035,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2958,14 +3057,15 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3002,18 +3102,21 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3025,26 +3128,32 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3056,7 +3165,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3099,7 +3208,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3121,7 +3231,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3140,7 +3250,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3150,7 +3260,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3159,12 +3270,13 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3177,7 +3289,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3197,7 +3309,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3208,7 +3320,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3222,7 +3334,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3236,7 +3348,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3270,7 +3382,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3291,7 +3404,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3315,7 +3429,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3323,22 +3437,24 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -3347,29 +3463,37 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3395,14 +3519,16 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -3426,6 +3552,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3441,7 +3570,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3459,22 +3588,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3483,11 +3614,12 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3500,7 +3632,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3517,7 +3649,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3537,7 +3669,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3553,7 +3685,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3564,23 +3696,28 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3591,7 +3728,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3602,7 +3739,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3615,12 +3752,13 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -3628,7 +3766,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3639,7 +3777,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3653,7 +3791,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3664,13 +3802,16 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -3689,7 +3830,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3743,7 +3884,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3774,7 +3915,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3801,7 +3942,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3818,22 +3959,25 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -3848,7 +3992,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3856,31 +4000,39 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -3900,12 +4052,13 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3920,13 +4073,16 @@ msgstr ""
 "    Izhodni status:\n"
 "    Vedno uspel, razen če je podana neveljavna izbira ali v primeru napake."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -3948,22 +4104,28 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -3973,15 +4135,17 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index e890373a3aa7c9f24cfc53fbb977f7f6df62620e..edd9303141b26b0715a60b45b0d210efef2c3605 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 6cafa8dab00d4409ecc701bd863a98710eb0c64b..fc77bede6959373ee5c72d5675d529aeca565a56 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-02-16 23:42+0100\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -18,50 +18,52 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "felaktigt vektorindex"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: det går inte att konvertera en indexerad vektor till associativ"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: ogiltig nyckel till associativ vektor"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: det går inte att tilldela till ickenumeriska index"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: måste använda index vid tilldelning av associativ vektor"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: det går inte att skapa: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: det går inte att hitta en tangentbindning för kommandot"
+msgstr ""
+"bash_execute_unix_command: det går inte att hitta en tangentbindning för "
+"kommandot"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: första ickeblanka tecknet är inte '\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "ingen avslutande \"%c\" i %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: kolonseparator saknas"
@@ -71,36 +73,36 @@ msgstr "%s: kolonseparator saknas"
 msgid "`%s': invalid alias name"
 msgstr "\"%s\": ogiltigt aliasnamn"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "radredigering är inte aktiverat"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "\"%s\": ogiltigt tangentbindningsnamn"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: det går inte att läsa: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "\"%s\": det går inte att avbinda"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "\"%s\": okänt funktionsnamn"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s är inte bundet till några tangenter.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s kan anropas via "
@@ -123,11 +125,15 @@ msgstr ""
 "    \n"
 "    Utan UTTR, returnerar "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME är inte satt"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "för många argument"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD är inte satt"
 
@@ -136,7 +142,7 @@ msgstr "OLDPWD är inte satt"
 msgid "line %d: "
 msgstr "rad %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "varning: "
@@ -146,11 +152,7 @@ msgstr "varning: "
 msgid "%s: usage: "
 msgstr "%s: användning: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "för många argument"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: flaggan kräver ett argument"
@@ -165,7 +167,7 @@ msgstr "%s: numeriskt argument krävs"
 msgid "%s: not found"
 msgstr "%s: finns inte"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: ogiltig flagga"
@@ -175,7 +177,7 @@ msgstr "%s: ogiltig flagga"
 msgid "%s: invalid option name"
 msgstr "%s: ogiltigt flaggnamn"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "\"%s\": inte en giltig identifierare"
@@ -188,7 +190,7 @@ msgstr "ogiltigt oktalt tal"
 msgid "invalid hex number"
 msgstr "ogiltigt hexadecimalt tal"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "ogiltigt tal"
 
@@ -202,7 +204,7 @@ msgstr "%s: ogiltig signalspecifikation"
 msgid "`%s': not a pid or valid job spec"
 msgstr "\"%s\": inte en pid eller giltig jobbspecifikation"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: endast läsbar variabel"
@@ -274,26 +276,26 @@ msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: tvetydig jobbspecifikation"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: ogiltigt åtgärdsnamn"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: ingen kompletteringsspecifikation"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "varning: flaggan -F fungerar kanske inte som du väntar dig"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "varning: flaggan -C fungerar kanske inte som du väntar dig"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "kör inte en kompletteringsfunktion"
 
@@ -305,7 +307,7 @@ msgstr "kan endast användas i en funktion"
 msgid "cannot use `-f' to make functions"
 msgstr "det går inte att använda \"-f\" för att göra funktioner"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: endast läsbar funktion"
@@ -315,7 +317,7 @@ msgstr "%s: endast läsbar funktion"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: det går inte att förstöra vektorvariabler på detta sätt"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: det går inte att konvertera en associativ vektor till indexerad"
@@ -344,8 +346,8 @@ msgstr "%s: inte dynamiskt laddad"
 msgid "%s: cannot delete: %s"
 msgstr "%s: kan inte ta bort: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: är en katalog"
@@ -360,8 +362,7 @@ msgstr "%s: inte en normal fil"
 msgid "%s: file is too large"
 msgstr "%s: filen är för stor"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: det går inte att köra binär fil"
@@ -445,8 +446,11 @@ msgstr[1] "Skalkommandon som matchar nyckelorden '"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "inget hjälpämne matchar \"%s\".  Prova \"help help\" eller \"man -k %s\" eller \"info %s\"."
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"inget hjälpämne matchar \"%s\".  Prova \"help help\" eller \"man -k %s\" "
+"eller \"info %s\"."
 
 #: builtins/help.def:185
 #, c-format
@@ -481,7 +485,7 @@ msgstr "det går inte att använda mer än en av -anrw"
 msgid "history position"
 msgstr "historieposition"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: historieexpansionen misslyckades"
@@ -504,7 +508,7 @@ msgstr "%s: argument måste vara processer eller job-id:n"
 msgid "Unknown error"
 msgstr "Okänt fel"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "uttryck förväntades"
 
@@ -513,12 +517,12 @@ msgstr "uttryck förväntades"
 msgid "%s: not an indexed array"
 msgstr "%s: inte en indexerad vektor"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ogiltig filidentifierarspecifikation"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ogiltig filbeskrivare: %s"
@@ -546,31 +550,31 @@ msgstr "tomt vektorvariabelnamn"
 msgid "array variable support required"
 msgstr "stöd för vektorvariabler krävs"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "\"%s\": formateringstecken saknas"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "\"%c\": ogiltig specifikation av tidsformat"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "\"%c\": ogiltigt formateringstecken"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "varning: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "hexadecimal siffra saknas för \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "unicode-siffra saknas för \\%c"
@@ -606,10 +610,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "Visa listan av kataloger i minnet just nu.  Kataloger hamnar i listan\n"
@@ -715,35 +721,36 @@ msgstr ""
 "    \n"
 "    Den inbyggda \"dirs\" visar katalogstacken."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: ogiltig tidsgränsspecifikation"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "läsfel: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
-msgstr "det går bara att göra \"return\" från en funktion eller källinläst skript"
+msgstr ""
+"det går bara att göra \"return\" från en funktion eller källinläst skript"
 
 #: builtins/set.def:771
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "det går inte att samtidigt ta bort en funktion och en variabel"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: det går inte att ta bort tilldelning"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: det går inte att ta bort tilldelning: endast läsbar %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: inte en vektorvariabel"
@@ -757,11 +764,11 @@ msgstr "%s: inte en funktion"
 msgid "shift count"
 msgstr "skiftantal"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "det går inte att sätta och ta bort skalflaggor samtidigt"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ogiltigt skalflaggsnamn"
@@ -803,7 +810,7 @@ msgstr "%s är en funktion\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s är inbyggt i skalet\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s är %s\n"
@@ -813,26 +820,26 @@ msgstr "%s är %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s är hashad (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: ogiltigt gränsargument"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "\"%c\": felaktigt kommando"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: kan inte avgöra gränsen: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "gräns"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: kan inte ändra gränsen: %s"
@@ -851,7 +858,7 @@ msgstr "\"%c\": ogiltig operator för symboliskt läge"
 msgid "`%c': invalid symbolic mode character"
 msgstr "\"%c\": ogiltigt tecken för symboliskt läge"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " rad "
 
@@ -865,23 +872,23 @@ msgstr "senaste kommando: %s\n"
 msgid "Aborting..."
 msgstr "Avbryter..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "okänt kommandofel"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "felaktig kommandotyp"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "felaktig anslutning"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "felaktigt hopp"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: obunden variabel"
@@ -896,102 +903,117 @@ msgstr "\atiden gick ut i väntan på indata: automatisk utloggning\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "det går inte att omdiregera standard in från /dev/null: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "rörfel"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: begränsat: det går inte att ange \"/\" i kommandonamn"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: kommandot finns inte"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: felaktig tolk"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: det går inte att köra binär fil"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s är inbyggt i skalet\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "det går inte att duplicera fb %d till fb %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "rekursionsnivå i uttryck överskriden"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "underspill i rekursionsstacken"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "syntaxfel i uttrycket"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "försök att tilldela till en icke-variabel"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "division med 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "bug: felaktig expassign-token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "\":\" förväntades i villkorligt uttryck"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "exponenten är mindre än 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "en identifierare förväntades efter pre-ökning eller pre-minskning"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "\")\" saknas"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "syntaxfel: en operand förväntades"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntaxfel: ogiltig aritmetisk operator"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (felsymbol är \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "ogiltig aritmetisk bas"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "värdet är för stort för basen"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: uttrycksfel\n"
@@ -1000,163 +1022,164 @@ msgstr "%s: uttrycksfel\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: det går inte att komma åt föräldrakatalogen"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "det går inte att återställa fördröjningsfritt läge för fb %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr "det går inte att allokera en ny filbeskrivare för bashindata från fb %d"
+msgstr ""
+"det går inte att allokera en ny filbeskrivare för bashindata från fb %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: buffert finns redan för ny fb %d"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp rör"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "avgrenad pid %d fins i körande jobb %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "tar bort stoppat jobb %d med processgrupp %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: process %5ld (%s) i the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) markerad som fortfarande vid liv"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: ingen sådan pid"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Klart"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Stoppat"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Stoppat(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Kör"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Klart(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Avslut %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Okänd status"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(minnesutskrift skapad) "
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (ak: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "barns setpgid (%ld till %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld är inte ett barn till detta skal"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Ingen uppgift om process %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: jobb %d är stoppat"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: jobbet har avslutat"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: jobb %d är redan i bakgrunden"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: slår på WNOHANG för att undvika oändlig blockering"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: rad %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (minnesutskrift skapad)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(ak nu: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp misslyckades"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: linjedisciplin"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "det går inte att sätta terminalprocessgrupp (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "ingen jobbstyrning i detta skal"
 
@@ -1225,7 +1248,7 @@ msgstr "register_alloc: %p finns redan i tabellen som allokerat?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p finns redan i tabellen som fritt?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "ogiltig bas"
 
@@ -1248,22 +1271,22 @@ msgstr "%s: felaktig specifikation av nätverkssökväg"
 msgid "network operations not supported"
 msgstr "nätverksoperationer stöds inte"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: det går inte att ändra lokal (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: det går inte att ändra lokal (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: det går inte att ändra lokal (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: det går inte att ändra lokal (%s): %s"
@@ -1294,118 +1317,119 @@ msgstr "syntaxfel: oväntat \";\""
 msgid "syntax error: `((%s))'"
 msgstr "syntaxfel: \"((%s))\""
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: felaktig instruktionstyp %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "här-dokument på rad %d avgränsas av filslut (ville ha \"%s\")"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr "make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall"
+msgstr ""
+"make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "oväntat filslut vid sökning efter matchande \"%c\""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "oväntat filslut vid sökning efter \"]]\""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntaxfel i villkorligt uttryck: oväntad symbol \"%s\""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "syntaxfel i villkorligt uttryck"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "oväntad symbol \"%s\", \")\" förväntades"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "\")\" förväntades"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "oväntat argument \"%s\" till villkorlig unär operator"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "oväntat argument till villkorlig unär operator"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "oväntad symbol \"%s\", villkorlig binär operator förväntades"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "villkorlig binär operato förväntades"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "oväntat argument \"%s\" till villkorlig binär operator"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "oväntat argument till villkorlig binär operator"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "oväntad symbol \"%c\" i villkorligt kommando"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "oväntad symbol \"%s\" i villkorligt kommando"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "oväntad symbol %d i villkorligt kommando"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntaxfel nära den oväntade symbolen \"%s\""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntaxfel nära \"%s\""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "syntaxfel: oväntat filslut"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "syntaxfel"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Använd \"%s\" fär att lämna skalet.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "oväntat filslut när matchande \")\" söktes"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "komplettering: funktion \"%s\" finns inte"
@@ -1415,26 +1439,26 @@ msgstr "komplettering: funktion \"%s\" finns inte"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: felaktig anslutning \"%d\""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: ogiltig filbeskrivare"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: NULL-filpekare"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: \"%c\": ogiltigt formateringstecken"
@@ -1472,33 +1496,33 @@ msgstr "%s: det går inte att tilldela fb till variabel"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverksfunktion"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "omdirigeringsfel: det går inte att duplicera fb"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "hittade inte /tmp, var god skapa!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp måste vara ett giltigt katalognamn"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: ogiltig flagga"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Jag har inget namn!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, version %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1507,41 +1531,41 @@ msgstr ""
 "Användning:\t%s [GNU lång flagga] [flagga] ...\n"
 "\t\t%s [GNU lång flagga] [flagga] skriptfil ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU långa flaggor:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Skalflaggor:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD eller -c kommando eller -O shopt_flagga\t\t(bara uppstart)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s eller -o flagga\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Skriv \"%s -c 'help set'\" för mer information om skalflaggor.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Skriv \"%s -c help\" för mer information om inbyggda skalkommandon.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 "Använd kommandot \"bashbug\" för att rapportera fel.\n"
 "Skicka synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: ogiltig operation"
@@ -1715,81 +1739,85 @@ msgstr "Okänd signal nr "
 msgid "Unknown Signal #%d"
 msgstr "Okänd signal nr %d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "felaktig substitution: ingen avslutande \"%s\" i %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: det går inte att tilldela listor till vektormedlemmar"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "det går inte att skapa rör för processubstitution"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "det går inte att skapa barn för processubstitution"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "det går inte att öppna namngivet rör %s för läsning"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "det går inte att öppna namngivet rör %s för skrivning"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "det går inte att duplicera namngivet rör %s som fb %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "det går inte att skapa rör för kommandosubstitution"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "det går inte att skapa barn för kommandosubstitution"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: det går inte att duplicera rör som fb 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametern tom eller inte satt"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: delstränguttryck < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: felaktig substitution"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: det går inte att tilldela på detta sätt"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr "framtida versioner av skalet kommer att framtvinga evaluering som en aritmetisk substition"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
+msgstr ""
+"framtida versioner av skalet kommer att framtvinga evaluering som en "
+"aritmetisk substition"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "felaktig ersättning: ingen avslutande \"`\" i %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "ingen match: %s"
@@ -1826,76 +1854,81 @@ msgstr "%s: binär operator förväntades"
 msgid "missing `]'"
 msgstr "\"]\" saknas"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "ogiltigt signalnummer"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: felaktigt värde i trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr "run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig själv"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr ""
+"run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig "
+"själv"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: felaktig signal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "fel vid import av funktionsdefinition för \"%s\""
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "skalnivå (%d) för hög, återställer till 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: ingen funktionskontext i aktuellt sammanhang"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: ingen funktionskontext i aktuellt sammanhang"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s har tom exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "ogiltigt tecken %d i exportstr för %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "inget \"=\" i exportstr för %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr "pop_var_context: huvudet på shell_variables är inte en funktionskontext"
+msgstr ""
+"pop_var_context: huvudet på shell_variables är inte en funktionskontext"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: ingen kontext global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr "pop_scope: huvudet på shell_variables är inte en temporär omgivningsräckvidd"
+msgstr ""
+"pop_scope: huvudet på shell_variables är inte en temporär omgivningsräckvidd"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: går inte att öppna som FILE"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: ogiltigt värde för spårningsfilbeskrivare"
@@ -1905,8 +1938,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "Copyright © 2011 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1916,7 +1953,8 @@ msgstr "GNU bash, version %s (%s)\n"
 #: version.c:91 version2.c:88
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr "Detta är fri programvara, det får fritt ändra och vidaredistribuera den.\n"
+msgstr ""
+"Detta är fri programvara, det får fritt ändra och vidaredistribuera den.\n"
 
 #: version.c:92 version2.c:89
 #, c-format
@@ -1930,8 +1968,12 @@ msgstr "Copyright © 2009 Free Software Foundation, Inc.\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "Licens GPLv2+: GNU GPL version 2 eller senare <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"Licens GPLv2+: GNU GPL version 2 eller senare <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1962,8 +2004,14 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] namn [namn ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion eller readline-kommando]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r "
+"tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion "
+"eller readline-kommando]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2051,7 +2099,8 @@ msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr "fc [-e rnamn] [-lnr] [första] [sista] eller fc -s [mnst=ers] [kommando]"
+msgstr ""
+"fc [-e rnamn] [-lnr] [första] [sista] eller fc -s [mnst=ers] [kommando]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
@@ -2070,8 +2119,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [mönster ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d avstånd] [n] eller history -anrw [filnamn] eller history -ps arg [arg...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d avstånd] [n] eller history -anrw [filnamn] eller history -"
+"ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2082,16 +2135,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [jobbspec ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobbspec ... eller kill -l [sigspec]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobbspec ... eller kill -l "
+"[sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-N ntkn] [-p prompt] [-t tidgräns] [-u fb] [namn ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-N ntkn] [-p prompt] "
+"[-t tidgräns] [-u fb] [namn ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2150,7 +2211,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] namn [namn ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [gräns]"
 
 #: builtins.c:172
@@ -2158,7 +2220,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [rättigheter]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [id]"
 
 #: builtins.c:179
@@ -2186,8 +2249,12 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case ORD in [MÖNSTER [| MÖNSTER]...) KOMMANDON ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr "if KOMMANDON; then KOMMANDON; [ elif KOMMANDON; then KOMMANDON; ]... [ else KOMMANDON; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
+msgstr ""
+"if KOMMANDON; then KOMMANDON; [ elif KOMMANDON; then KOMMANDON; ]... [ else "
+"KOMMANDON; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
@@ -2246,24 +2313,43 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [argument]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o flagga] [-A åtgärd] [-G globmnst] [-W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S suffix] [namn ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o flagga] [-A åtgärd] [-G globmnst] [-"
+"W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S "
+"suffix] [namn ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o flagga]  [-A åtgärd] [-G globmnst] [-W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S suffix] [ord]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o flagga]  [-A åtgärd] [-G globmnst] [-W "
+"ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S "
+"suffix] [ord]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o flagga] [-DE] [namn ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c kvanta] [vektor]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c "
+"kvanta] [vektor]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c kvanta] [vektor]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c "
+"kvanta] [vektor]"
 
 #: builtins.c:254
 msgid ""
@@ -2280,12 +2366,14 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "Definiera eller visa alias.\n"
 "    \n"
-"    Utan argumen skriver \"alias\" listan på alias på den återanvändbara formen\n"
+"    Utan argumen skriver \"alias\" listan på alias på den återanvändbara "
+"formen\n"
 "    \"alias NAMN=VÄRDE\" på standard ut.\n"
 "    \n"
 "    Annars är ett alias definierat för varje NAMN vars VÄRDE är angivet.\n"
@@ -2316,6 +2404,7 @@ msgstr ""
 "    Returnerar framgång om inte ett NAMN inte är ett existerande alias."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2327,52 +2416,65 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 "Sätt Readline-tangentbindningar och -variabler.\n"
 "    \n"
-"    Bind en tangentsekvens till en Readline-funktion eller -makro, eller sätt\n"
+"    Bind en tangentsekvens till en Readline-funktion eller -makro, eller "
+"sätt\n"
 "    en Readline-variabel.  Syntaxen för argument vid sidan om flaggor är\n"
-"    densamma som den i ~/.inputrc, men måste skickas som ett ensamt argument:\n"
+"    densamma som den i ~/.inputrc, men måste skickas som ett ensamt "
+"argument:\n"
 "    t.ex., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Flaggor:\n"
 "      -m  tangentkarta   Använt TANGENTKARTA som tangentkarta under detta\n"
 "                         kommando.  Acceptabla tangentkartenamn är emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command och vi-insert.\n"
 "      -l                 Lista namnen på funktioner.\n"
 "      -P                 List funktionsnamn och bindningar.\n"
 "      -p                 List funktioner och bindningar på ett sätt som kan\n"
 "                         återanvändas som indata.\n"
-"      -S                 Lista tangentsekvenser som anropar makron och deras\n"
+"      -S                 Lista tangentsekvenser som anropar makron och "
+"deras\n"
 "                         värden.\n"
-"      -s                 Lista tangentskevenser som anropar makron och deras\n"
-"                         värden på ett sätt som kan återanvändas som indata.\n"
+"      -s                 Lista tangentskevenser som anropar makron och "
+"deras\n"
+"                         värden på ett sätt som kan återanvändas som "
+"indata.\n"
 "      -V                 Lista variabelnamn och värden\n"
 "      -v                 Lista variabelnamn och värden på ett sätt som kan\n"
 "                         återanvändas som indata.\n"
-"      -q  funktionsnamn  Fråga efter vilka tangenter som anroper den namngivna\n"
+"      -q  funktionsnamn  Fråga efter vilka tangenter som anroper den "
+"namngivna\n"
 "                         funktionen\n"
 "      -u  funktionsnamn  Tag bort alla tangenter som är bundna till den\n"
 "                         namngivna funktionen.\n"
@@ -2384,7 +2486,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    bind returnerar 0 om inte en okänd flagga ges eller ett fel inträffar."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2402,7 +2504,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returvärdet är 0 förutsatt att N är större eller lika med 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2414,19 +2516,21 @@ msgid ""
 msgstr ""
 "Återuppta for-, while eller until-slinga.\n"
 "    \n"
-"    Återuppta nästa iteration i den omslutande FOR-, WHILE- eller UNTIL-slingan.\n"
+"    Återuppta nästa iteration i den omslutande FOR-, WHILE- eller UNTIL-"
+"slingan.\n"
 "    Om N anges, återuppta den N:e omslutande slingan.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Slutstatus är 0 förutsatt att N är större eller lika med 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2434,16 +2538,18 @@ msgid ""
 msgstr ""
 "Exekvera en i skalet inbyggd funktion.\n"
 "    \n"
-"    Exekvera SKALINBYGGD med argument ARG utan att utföra kommandouppslagning.\n"
+"    Exekvera SKALINBYGGD med argument ARG utan att utföra "
+"kommandouppslagning.\n"
 "    Detta är användbart när du vill implementera om en inbyggd funktion i\n"
 "    skalet som en skalfunktion, men behöver köra den inbyggda funktionen i\n"
 "    skalfunktionen.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar slutstatus från SKALINBYGGD, eller falkst om SKALINBYGGD inte\n"
+"    Returnerar slutstatus från SKALINBYGGD, eller falkst om SKALINBYGGD "
+"inte\n"
 "    är inbyggd i skalet."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2471,33 +2577,46 @@ msgstr ""
 "    Returnerar 0 om inte skalet inte kör en skalfunktion eller UTTR är\n"
 "    ogiltigt."
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "Ändra skalets arbetskatalog.\n"
@@ -2510,7 +2629,8 @@ msgstr ""
 "    katalognamn är detsamma som aktuell katalog.  Om KAT börjar med ett\n"
 "    snedstreck (/) används inte CDPATH.\n"
 "    \n"
-"    Om katalogen inte kan hittas, och skalvariabeln \"cdable_vars\" är satt,\n"
+"    Om katalogen inte kan hittas, och skalvariabeln \"cdable_vars\" är "
+"satt,\n"
 "    antas ordet vara ett variabelnamn.  Om den variabeln har ett värde\n"
 "    används dess värde för KAT.\n"
 "    \n"
@@ -2521,13 +2641,14 @@ msgstr ""
 "        -e\tom flaggan -P ges, och det inte går att avgöra den aktuella\n"
 "    \tkatalogen, returnera då med status skild från noll\n"
 "    \n"
-"    Standardvärde är att följa symboliska längar, som om \"-L\" vore angivet.\n"
+"    Standardvärde är att följa symboliska längar, som om \"-L\" vore "
+"angivet.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar 0 om katalogen är ändrad, och om $PWD satts korrekt om -P\n"
 "    angetts; skilt från noll annars."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2552,10 +2673,11 @@ msgstr ""
 "    Som standard beter sig \"pwd\" som om \"-L\" vore angivet.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar 0 om inte en ogiltig flagga anges eller den aktuella katalogen\n"
+"    Returnerar 0 om inte en ogiltig flagga anges eller den aktuella "
+"katalogen\n"
 "    inte kan läsas."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2571,7 +2693,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2583,7 +2705,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2595,12 +2717,13 @@ msgstr ""
 "    Slutstatus:\n"
 "    Misslyckas alltid."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2625,10 +2748,11 @@ msgstr ""
 "      -V\tskriv en mer utförlig beskrivning om varje KOMMANDO\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar slutstatus från KOMMANDO, eller misslyckande om KOMMANDO inte\n"
+"    Returnerar slutstatus från KOMMANDO, eller misslyckande om KOMMANDO "
+"inte\n"
 "    finns."
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2658,7 +2782,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2692,13 +2817,15 @@ msgstr ""
 "    För variabler med attributet heltal utförs atitmetisk beräkning (se\n"
 "    kommandot \"let\") när variabeln tilldelas ett värde.\n"
 "    \n"
-"    Vid användning i en funktion gör \"declare\" NAMN lokala, som med kommandot\n"
+"    Vid användning i en funktion gör \"declare\" NAMN lokala, som med "
+"kommandot\n"
 "    \"local\".  Flaggan \"-g\" åsidosätter detta beteende.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
+"inträffar."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2708,7 +2835,7 @@ msgstr ""
 "    \n"
 "    Föråldrat.  Se \"help declare\"."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2727,18 +2854,22 @@ msgstr ""
 "    Skapa en lokal variabel kallad NAMN, och ge den VÄRDE.  FLAGGA kan\n"
 "    vara alla flaggor som accepteras av \"declare\".\n"
 "    \n"
-"    Lokala variabler kan endast användas i en funktion; de är synliga endast\n"
+"    Lokala variabler kan endast användas i en funktion; de är synliga "
+"endast\n"
 "    för funktionen de definieras i och dess barn.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges, ett fel inträffar\n"
 "    eller skalet inte exekverar en funktion."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2750,6 +2881,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2792,7 +2924,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte ett skrivfel inträffar."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2814,7 +2946,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte ett skrivfel inträffar."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2868,11 +3000,12 @@ msgstr ""
 "    Returnerar framgång om inte NAMN inte är inbyggd i skalet eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2880,13 +3013,14 @@ msgid ""
 msgstr ""
 "Exekvera argument som ett skalkommando.\n"
 "    \n"
-"    Kombinera ARGument till en enda sträng, och använd resultatet som indata\n"
+"    Kombinera ARGument till en enda sträng, och använd resultatet som "
+"indata\n"
 "    till skalet och exekvera de resulterande kommandona.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar slutstatus av kommandot eller framgång om kommandot är tomt."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2963,12 +3097,13 @@ msgstr ""
 "    Returnerar framgång om en flagga hittas, misslyckas om slutet av\n"
 "    flaggorna nås eller ett fel inträffar."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2976,15 +3111,18 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "Ersätt skalet med det givna kommandot.\n"
 "    \n"
-"    Exekvera KOMMANDO genom att ersätta detta skal med det angivna programmet.\n"
+"    Exekvera KOMMANDO genom att ersätta detta skal med det angivna "
+"programmet.\n"
 "    ARGUMENT blir argument till KOMMANDO.  Om KOMMANDO inte anges kommer\n"
 "    eventuella omdirigeringar att gälla för det aktuella skalet.\n"
 "    \n"
@@ -3000,7 +3138,7 @@ msgstr ""
 "    Returnerar framgång om inte KOMMANDO inte finns eller ett fel vid\n"
 "    omdirigering inträffar."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3012,11 +3150,12 @@ msgstr ""
 "    Avslutar skalet med statusen N.  Om N utelämnas är slutstatusen den\n"
 "    hos det sist körda kommandot."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "Avsluta ett inloggningsskal.\n"
@@ -3024,17 +3163,19 @@ msgstr ""
 "    Avslutar ett inloggningsskal med slutstatus N.  Returnerar ett fel om\n"
 "    det inte körs i ett inloggningsskal."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3048,7 +3189,8 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "Visa eller kör kommandon från historielistan.\n"
 "    \n"
@@ -3067,15 +3209,17 @@ msgstr ""
 "    Med formatet \"fc -s [mnst=ers ...] [kommando]\" körs KOMMANDO om efter\n"
 "    att substitutionen GAMMALT=NYTT har utförts.\n"
 "    \n"
-"    Ett användbart alias att använda med detta är r=\"fc -s\", så att skriva\n"
-"    \"r cc\" kör senaste kommandot som börjar med \"cc\" och att skriva \"r\" kör\n"
+"    Ett användbart alias att använda med detta är r=\"fc -s\", så att "
+"skriva\n"
+"    \"r cc\" kör senaste kommandot som börjar med \"cc\" och att skriva \"r"
+"\" kör\n"
 "    om senaste kommandot.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång eller status på exekverat kommando, skilt från noll\n"
 "    om ett fel inträffar."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3096,12 +3240,14 @@ msgstr ""
 "    Status på kommandot som placerades i förgrunden, eller misslyckande om\n"
 "    ett fel inträffar."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3109,20 +3255,24 @@ msgid ""
 msgstr ""
 "Flytta jobb till bakgrunden.\n"
 "    \n"
-"    Placera jobben som idintifieras av varje JOBBSPEC i bakgrunden som om de\n"
-"    hade startats med \"&\".  Om ingen JOBBSPEC finns används skalets begrepp\n"
+"    Placera jobben som idintifieras av varje JOBBSPEC i bakgrunden som om "
+"de\n"
+"    hade startats med \"&\".  Om ingen JOBBSPEC finns används skalets "
+"begrepp\n"
 "    om det aktuella jobbet.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett fel\n"
+"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett "
+"fel\n"
 "    inträffar."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3142,7 +3292,8 @@ msgstr ""
 "Kom ihåg eller visa programlägen.\n"
 "    \n"
 "    Bestäm och kom ihåg den fullständiga sökvägen till varje kommando NAMN.\n"
-"    Om inget argument ges visas information om kommandon som finns i minnet.\n"
+"    Om inget argument ges visas information om kommandon som finns i "
+"minnet.\n"
 "    \n"
 "    Flaggor:\n"
 "      -d\t\tglöm platsen i minnet för varje NAMN\n"
@@ -3158,7 +3309,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte NAMN inte hittas eller en ogiltig flagga ges."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3176,12 +3327,14 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "Visa information om inbyggda kommandon.\n"
 "    \n"
 "    Visar korta sammanfattningar om inbyggda kommandon.  Om MÖNSTER anges\n"
-"    ges detaljerad hjälp om alla kommandon som matchar MÖNSTER, annars skrivs\n"
+"    ges detaljerad hjälp om alla kommandon som matchar MÖNSTER, annars "
+"skrivs\n"
 "    listan med hjälpämnen.\n"
 "    \n"
 "    Flaggor:\n"
@@ -3194,9 +3347,10 @@ msgstr ""
 "      MÖNSTER\tMönster som anger hjälpämnen\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga ges."
+"    Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga "
+"ges."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3223,7 +3377,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3247,17 +3402,21 @@ msgstr ""
 "    \tatt lagra det i historielistan\n"
 "      -s\tlägg till ARG till historielistan som en ensam post\n"
 "    \n"
-"    Om FILENAMN anges används det som historiefil.  Annars, om $HISTFILE har\n"
+"    Om FILENAMN anges används det som historiefil.  Annars, om $HISTFILE "
+"har\n"
 "    ett värde används det, annars ~/.bash_history.\n"
 "    \n"
-"    Om variabeln $HISTTIMEFORMAT är satt och inte tom används dess värde som\n"
-"    en formatsträng till strftime(3) för att skriva tidsstämplar tillhörande\n"
+"    Om variabeln $HISTTIMEFORMAT är satt och inte tom används dess värde "
+"som\n"
+"    en formatsträng till strftime(3) för att skriva tidsstämplar "
+"tillhörande\n"
 "    varje visad historiepost.  Inga tidsstämplar skrivs annars.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
+"inträffar."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3297,10 +3456,11 @@ msgstr ""
 "    i ARG har ersatts med process-id:t för det jobbets processgruppledare.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar.\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
+"inträffar.\n"
 "    Om -x används returneras slutstatus från KOMMANDO."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3330,7 +3490,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga eller JOBBSPEC ges."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3353,7 +3513,8 @@ msgid ""
 msgstr ""
 "Skicka en signal till ett jobb.\n"
 "    \n"
-"    Skicka processerna som identifieras av PID eller JOBBSPEC signalerna som\n"
+"    Skicka processerna som identifieras av PID eller JOBBSPEC signalerna "
+"som\n"
 "    namnges av SIGSPEC eller SIGNUM.  Om varken SIGSPEC eller SIGNUM är\n"
 "    angivna antas SIGTERM.\n"
 "    \n"
@@ -3363,22 +3524,25 @@ msgstr ""
 "      -l\tlista signalnamnen.  Om argument följer \"-l\" antas de vara\n"
 "    \tsignalnummer som namn skall listas för\n"
 "    \n"
-"    Kill är inbyggt i skalet av två skäl: det tillåter att jobb-id:n används\n"
-"    istället för process-id:n, och det tillåter processer att dödas om gränsen\n"
+"    Kill är inbyggt i skalet av två skäl: det tillåter att jobb-id:n "
+"används\n"
+"    istället för process-id:n, och det tillåter processer att dödas om "
+"gränsen\n"
 "    för hur många processer du får skapa har nåtts.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga angivits eller ett fel\n"
 "    inträffar."
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3416,10 +3580,12 @@ msgid ""
 msgstr ""
 "Evaluera aritmetiska uttryck.\n"
 "    \n"
-"    Evaluera varje ARG som ett aritmetiskt uttryck.  Evaluering görs i heltal\n"
+"    Evaluera varje ARG som ett aritmetiskt uttryck.  Evaluering görs i "
+"heltal\n"
 "    med fix bredd utan kontroll av spill, fast division med 0 fångas och\n"
 "    flaggas som ett fel.  Följande lista över operatorer är grupperad i\n"
-"    nivåer av operatorer med samma precedens.  Nivåerna är listade i ordning\n"
+"    nivåer av operatorer med samma precedens.  Nivåerna är listade i "
+"ordning\n"
 "    med sjunkande precedens.\n"
 "    \n"
 "    \tid++, id--\tpostinkrementering av variabel, postdekrementering\n"
@@ -3448,24 +3614,30 @@ msgstr ""
 "    uttryck.  Variablerna behöver inte ha sina heltalsattribut påslagna för\n"
 "    att användas i ett uttryck.\n"
 "    \n"
-"    Operatorer beräknas i precedensordning.  Delutryck i parenteser beräknas\n"
+"    Operatorer beräknas i precedensordning.  Delutryck i parenteser "
+"beräknas\n"
 "    först och kan åsidosätta precedensreglerna ovan.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 annars."
+"    Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 "
+"annars."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3477,36 +3649,45 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Läs en rad från standard in och dela upp den i fält.\n"
 "    \n"
 "    Läser en ensam rad från standard in, eller från filbeskrivare FB om\n"
-"    flaggan -u ges.  Raden delas upp i fält som vid orduppdelning, och första\n"
-"    ordet tilldelas det första NAMNet, andra ordet till det andra NAMNet, och\n"
+"    flaggan -u ges.  Raden delas upp i fält som vid orduppdelning, och "
+"första\n"
+"    ordet tilldelas det första NAMNet, andra ordet till det andra NAMNet, "
+"och\n"
 "    så vidare, med eventuella återstående ord tilldelade till det sista\n"
 "    NAMNet.  Endast tecknen som finns i $IFS används som ordavgränsare.\n"
 "    \n"
 "    Om inga NAMN anges, lagras den inlästa raden i variabeln REPLY.\n"
 "    \n"
 "    Flaggor:\n"
-"      -a vektor\ttilldela de inlästa orden till sekvensiella index i vektor-\n"
+"      -a vektor\ttilldela de inlästa orden till sekvensiella index i "
+"vektor-\n"
 "    \t\tvariabeln VEKTOR, med start från noll\n"
 "      -d avgr\tfortsätt tills det första tecknet i AVGR lästs, istället för\n"
 "    \t\tnyrad\n"
@@ -3516,7 +3697,8 @@ msgstr ""
 "      -n ntkn\treturnera efter att ha läst NTKN tecken istället för att\n"
 "    \t\tvänta på en nyrad, men ta hänsyn till en avgränsare om färre\n"
 "    \t\tän NTKN tecken lästs före avgränsaren\n"
-"      -N ntkn\treturnera endast efter att ha läst exakt NTKN tecken, om inte\n"
+"      -N ntkn\treturnera endast efter att ha läst exakt NTKN tecken, om "
+"inte\n"
 "    \t\tfilslut påträffades eller tidsgränsen överskreds, ignorera\n"
 "    \t\talla avgränsare\n"
 "      -p prompt\tskriv ut strängen PROMPT utan en avslutande nyrad före\n"
@@ -3535,7 +3717,7 @@ msgstr ""
 "    Returkoden är noll om inte filslut nås, läsningens tidsgräns överskrids\n"
 "    eller en ogiltig filbeskrivare ges som argument till -u."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3556,7 +3738,8 @@ msgstr ""
 "    Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n"
 "    skript."
 
-#: builtins.c:1027
+#: builtins.c:1037
+#, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3599,7 +3782,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3621,7 +3805,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3650,7 +3834,8 @@ msgstr ""
 "      -e  Avsluta omedelbart om ett kommando avslutar med nollskild status.\n"
 "      -f  Avaktivera filnamnsgenerering (globbing).\n"
 "      -h  Kom ihåg platsen för kommandon när de slås upp.\n"
-"      -k  Alla tilldelningsargument placeras i miljön för ett kommando, inte\n"
+"      -k  Alla tilldelningsargument placeras i miljön för ett kommando, "
+"inte\n"
 "          bara de som föregår kommandonamnet.\n"
 "      -m  Jobbstyrning är aktiverat.\n"
 "      -n  Läs kommandon men exekvera dem inte.\n"
@@ -3665,7 +3850,8 @@ msgstr ""
 "              hashall      samma som -h\n"
 "              histexpand   samma som -H\n"
 "              history      aktivera kommandohistoria\n"
-"              ignoreeof    skalet kommer inte avsluta vid läsning av filslut\n"
+"              ignoreeof    skalet kommer inte avsluta vid läsning av "
+"filslut\n"
 "              interactive-comments\n"
 "                           tillåt kommentarer att förekomma i interaktiva\n"
 "                           kommandon\n"
@@ -3692,7 +3878,8 @@ msgstr ""
 "              xtrace       samma som -x\n"
 "      -p  Slås på när den verkliga och effektiva användar-id:n inte stämmer\n"
 "          överens.  Avaktiverar bearbetning av $ENV-filen och import av\n"
-"          skalfunktioner.  Att slå av denna flagga får den effektiva uid och\n"
+"          skalfunktioner.  Att slå av denna flagga får den effektiva uid "
+"och\n"
 "          gid att sättas till den verkliga uid och gid.\n"
 "      -t  Avsluta efter att ha läst och exekverat ett kommando.\n"
 "      -u  Behandla osatta variabler som fel vid substitution.\n"
@@ -3707,13 +3894,16 @@ msgstr ""
 "      -P  Om satt följs inte symboliska länkar när kommandon såsom cd körs\n"
 "          som ändrar aktuell katalog.\n"
 "      -T  Om satt ärvs DEBUG-fällan av skalfunktioner.\n"
-"      --  Tilldela eventuella återstående argument till positionsparametrar.\n"
+"      --  Tilldela eventuella återstående argument till "
+"positionsparametrar.\n"
 "          Om det inte finns några återstående argument nollställs\n"
 "          positionsparametrarna.\n"
-"      -   Tilldela eventuella återstående argument till positionsparametrar.\n"
+"      -   Tilldela eventuella återstående argument till "
+"positionsparametrar.\n"
 "          Flaggorna -x och -v slås av.\n"
 "    \n"
-"    Användning av + istället för - får dessa flaggor att slås av.  Flaggorna\n"
+"    Användning av + istället för - får dessa flaggor att slås av.  "
+"Flaggorna\n"
 "    kan även användas vid uppstart av skalet.  Den aktuella uppsättningen\n"
 "    flaggor finns i $-.  De återstående n ARGumenten är positionsparametrar\n"
 "    och tilldelas, i ordning, till $1, $2, .. $n.  Om inga ARGument ges\n"
@@ -3722,7 +3912,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3732,7 +3922,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3757,12 +3948,13 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN endast är\n"
 "    läsbart."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3789,7 +3981,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3825,7 +4017,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3837,13 +4029,14 @@ msgid ""
 msgstr ""
 "Skifta positionsparametrar.\n"
 "    \n"
-"    Byt namn på positionsparametrarna $N+1,$N+2 ... till $1,$2 ...  Om N inte\n"
+"    Byt namn på positionsparametrarna $N+1,$N+2 ... till $1,$2 ...  Om N "
+"inte\n"
 "    anges antas det vara 1.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte N är negativt eller större än $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3858,7 +4051,8 @@ msgid ""
 msgstr ""
 "Exekvera kommandon från en fil i det aktuella skalet.\n"
 "    \n"
-"    Läs och exekvera kommandon från FILNAMN i det aktuella skalet.  Posterna\n"
+"    Läs och exekvera kommandon från FILNAMN i det aktuella skalet.  "
+"Posterna\n"
 "    i $PATH används för att hitta katalogen som innehåller FILNAMN.  Om\n"
 "    något ARGUMENT ges blir de positionsparametrar när FILNAMN körs.\n"
 "    \n"
@@ -3866,7 +4060,7 @@ msgstr ""
 "    Returnerar status på det sista kommandot som körs i FILNAMN, misslyckas\n"
 "    om FILNAMN inte kan läsas."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3888,10 +4082,11 @@ msgstr ""
 "      -f\tframtvinga suspendering, även om skalet är ett inloggningsskal\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett fel\n"
+"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett "
+"fel\n"
 "    inträffar."
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3925,7 +4120,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3946,7 +4142,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4045,7 +4242,7 @@ msgstr ""
 "    Returnerar framgång om UTTR beräknas till sant.  Misslyckas ifall UTTR\n"
 "    beräknas till falskt eller ett ogiltigt argument ges."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4054,14 +4251,16 @@ msgid ""
 msgstr ""
 "Beräkna villkorligt uttryck.\n"
 "    \n"
-"    Detta är en synonym till det inbyggda \"test\", men det sista argumentet\n"
+"    Detta är en synonym till det inbyggda \"test\", men det sista "
+"argumentet\n"
 "    måste vara en bokstavlig \"]\", för att matcha den inledande \"[\"."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4069,17 +4268,19 @@ msgid ""
 msgstr ""
 "Visa processtider.\n"
 "    \n"
-"    Skriver ut den sammanlagda användar- och systemtiden för skalet och alla\n"
+"    Skriver ut den sammanlagda användar- och systemtiden för skalet och "
+"alla\n"
 "    dess barnprocesser.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Lyckas alltid."
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4088,26 +4289,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "Fånga signaler och andra händelser.\n"
 "    \n"
@@ -4127,7 +4336,8 @@ msgstr ""
 "    SIGNALSPEC ERR betyder att köra ARG varje gång ett kommandos felstatus\n"
 "    skulle fått skalet att avsluta om flaggan -e ovre satt.\n"
 "    \n"
-"    Om inga argument ges skriver trap listan av kommandon som hör till varje\n"
+"    Om inga argument ges skriver trap listan av kommandon som hör till "
+"varje\n"
 "    signal.\n"
 "    \n"
 "    Flaggor:\n"
@@ -4139,10 +4349,11 @@ msgstr ""
 "    frivilligt.  En signal kan skickas till skalet med \"kill -signal $$\".\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en SIGSPEC är ogiltig eller en ogiltig flagga\n"
+"    Returnerar framgång om inte en SIGSPEC är ogiltig eller en ogiltig "
+"flagga\n"
 "    ges."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4168,7 +4379,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "Visa information om kommandotyper.\n"
 "    \n"
@@ -4186,8 +4398,10 @@ msgstr ""
 "      -p\treturnerar antingen namnet på diskfilen som skulle exekverats,\n"
 "    \teller ingenting om \"type -t NAMN\" inte skulle returnerat \"file\".\n"
 "      -t\tskriv ut ett ensamt ord som är ett av \"alias\", \"keyword\",\n"
-"    \t\"function\", \"builtin\", \"file\" eller \"\", om NAMN är ett alias, ett\n"
-"    \treserverat ord i skalet, en skalfunktion, inbyggt i skalet, en diskfil\n"
+"    \t\"function\", \"builtin\", \"file\" eller \"\", om NAMN är ett alias, "
+"ett\n"
+"    \treserverat ord i skalet, en skalfunktion, inbyggt i skalet, en "
+"diskfil\n"
 "    \trespektive inte finns\n"
 "    \n"
 "    Argument:\n"
@@ -4196,11 +4410,13 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om alla NAMNen finns, misslyckas om något inte finns."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4224,6 +4440,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4240,7 +4459,8 @@ msgid ""
 msgstr ""
 "Modifiera skalresursgränser.\n"
 "    \n"
-"    Ger kontroll över resurserna som är tillgängliga till skalet och processer\n"
+"    Ger kontroll över resurserna som är tillgängliga till skalet och "
+"processer\n"
 "    det skapar, på system som möjliggör sådan styrning.\n"
 "    \n"
 "    Flaggor:\n"
@@ -4267,18 +4487,22 @@ msgstr ""
 "      -x\tdet maximala antalet fillås\n"
 "    \n"
 "    Om GRÄNS anges är det ett nytt värde för den specificerade resursen; de\n"
-"    speciella GRÄNS-värdena \"soft\", \"hard\" och \"unlimited\" står för den\n"
-"    aktuella mjuka gränsen, den aktuella hårda grånsen respektive inge gräns.\n"
+"    speciella GRÄNS-värdena \"soft\", \"hard\" och \"unlimited\" står för "
+"den\n"
+"    aktuella mjuka gränsen, den aktuella hårda grånsen respektive inge "
+"gräns.\n"
 "    Annars skrivs det aktuella värdet på den specificerade resursen.  Om\n"
 "    ingen flagga ges antas -f.\n"
 "    \n"
-"    Värden är i 1024-bytesteg, utom för -t som är i sekunder, -p som är i steg\n"
+"    Värden är i 1024-bytesteg, utom för -t som är i sekunder, -p som är i "
+"steg\n"
 "    på 512 byte och -u som är ett antal processer utan någon skalning.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga anges eller ett fel inträffar."
+"    Returnerar framgång om inte en ogiltig flagga anges eller ett fel "
+"inträffar."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4300,7 +4524,8 @@ msgstr ""
 "    Sätter användarens filskapningsmask till RÄTTIGHETER.  Om RÄTTIGHETER\n"
 "    utelämnas skrivs det aktuella värdet på masken.\n"
 "    \n"
-"    Om RÄTTIGHETER börjar med en siffra tolkas det som ett oktalt tal, annars\n"
+"    Om RÄTTIGHETER börjar med en siffra tolkas det som ett oktalt tal, "
+"annars\n"
 "    är det en symbolisk rättighetssträng som den som tas av chmod(1).\n"
 "    \n"
 "    Flaggor:\n"
@@ -4309,22 +4534,26 @@ msgstr ""
 "      -S\tgör utmatningen symbolisk, annars används oktala tal\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte RÄTTIGHETER är ogiltig eller en ogiltig flagga\n"
+"    Returnerar framgång om inte RÄTTIGHETER är ogiltig eller en ogiltig "
+"flagga\n"
 "    ges."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Vänta på att jobb blir färdiga och returnerar slutstatus.\n"
 "    \n"
@@ -4335,10 +4564,11 @@ msgstr ""
 "    jobbets rör.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en ogiltig\n"
+"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en "
+"ogiltig\n"
 "    flagga ges."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4347,20 +4577,24 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "Vänta på att en process blir färdig och returnerar slutstatus.\n"
 "    \n"
-"    Väntar på den angivna processen och rapportera dess avslutningsstatus.  Om\n"
-"    PID inte ges, vänta på alla nu körande barnprocesser, och returstatus är\n"
+"    Väntar på den angivna processen och rapportera dess avslutningsstatus.  "
+"Om\n"
+"    PID inte ges, vänta på alla nu körande barnprocesser, och returstatus "
+"är\n"
 "    noll.  PID måste vara en process-id.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en ogiltig\n"
+"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en "
+"ogiltig\n"
 "    flagga ges."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4375,14 +4609,15 @@ msgstr ""
 "Exekvera kommandon för varje medlem i en lista.\n"
 "    \n"
 "    \"for\"-slingan exekverar en sekvens av kommandon för varje medlem i en\n"
-"    lista av element.  Om \"in ORD ...;\" inte är med antas 'in \"$@\"'.  För\n"
+"    lista av element.  Om \"in ORD ...;\" inte är med antas 'in \"$@\"'.  "
+"För\n"
 "    varje element i ORD sätts NAMN till det elementet, och KOMMANDON\n"
 "    exekveras.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar status för det sist exekverade kommandot."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4412,7 +4647,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4447,7 +4682,7 @@ msgstr ""
 "    Sluttatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4476,7 +4711,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returstatusen är returstatusen från RÖR."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4494,16 +4729,21 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4511,10 +4751,13 @@ msgid ""
 msgstr ""
 "Exekvera kommndon baserat på ett villkor.\n"
 "    \n"
-"    Listan \"if KOMMANDON\" exekveras.  Om des slutstatus är noll så exekveras\n"
-"    listan \"then COMMANDS\".  Annars exekveras varje lista \"elif KOMMANDON\"\n"
+"    Listan \"if KOMMANDON\" exekveras.  Om des slutstatus är noll så "
+"exekveras\n"
+"    listan \"then COMMANDS\".  Annars exekveras varje lista \"elif KOMMANDON"
+"\"\n"
 "    i tur och ordning, och om dess slutstatus är noll exekveras motsvarande\n"
-"    lista \"then COMMANDS\" och if-kommandot avslutar.  Annars exekveras listan\n"
+"    lista \"then COMMANDS\" och if-kommandot avslutar.  Annars exekveras "
+"listan\n"
 "    \"else COMMANDS\" om den finns.  Slutstatus av hela konstruktionen är\n"
 "    slutstatusen på det sist exekverade kommandot, eller noll om inget\n"
 "    villkor returnerade sant.\n"
@@ -4522,7 +4765,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar status från det sist exekverade kommandot."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4540,7 +4783,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4558,7 +4801,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från det sist exekverade kommandot."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4580,12 +4823,13 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen från KOMMANDO."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4602,7 +4846,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar framgång om inte NAMN endast är läsbart."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4620,7 +4864,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar stutusen från det sist exekverade kommandot."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4644,7 +4888,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar statusen på det återupptagna jobbet."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4662,13 +4906,16 @@ msgstr ""
 "    Slutstatus:\n"
 "    Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4689,7 +4936,8 @@ msgstr ""
 "Kör ett villkorligt kommando.\n"
 "    \n"
 "    Returnerar en status av 0 eller 1 beroende på evalueringen av det\n"
-"    villkorliga uttrycket UTTRYCK.  Uttryck är sammansatta av samma primitiver\n"
+"    villkorliga uttrycket UTTRYCK.  Uttryck är sammansatta av samma "
+"primitiver\n"
 "    som används av det inbyggda \"test\", och kan kombineras med följande\n"
 "    operatorer:\n"
 "    \n"
@@ -4699,8 +4947,10 @@ msgstr ""
 "      UTTR1 || UTTR2\tSant om antingen UTTR1 eller UTTR2 är sant, annars\n"
 "                        falskt\n"
 "    \n"
-"    När operatorerna \"==\" och \"!=\" används används strängen till höger om\n"
-"    som ett mönster och mönstermatchning utförs.  När operatorn \"=~\" används\n"
+"    När operatorerna \"==\" och \"!=\" används används strängen till höger "
+"om\n"
+"    som ett mönster och mönstermatchning utförs.  När operatorn \"=~\" "
+"används\n"
 "    matchas strängen till höger om operatorn som ett reguljärt uttryck.\n"
 "    \n"
 "    Operatorerna && och || beräknar inte UTTR2 om UTTR1 är tillräckligt för\n"
@@ -4709,7 +4959,7 @@ msgstr ""
 "    Slutstatus:\n"
 "    0 eller 1 beroende på värdet av UTTRYCK."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4814,7 +5064,7 @@ msgstr ""
 "    HISTIGNORE\tEn kolonseparerad lista av mönster som används för att\n"
 "    \t\tbestämma vilka kommandon som skall sparas i historielistan.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4872,7 +5122,7 @@ msgstr ""
 "    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
 "    katalog misslyckas."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4922,7 +5172,7 @@ msgstr ""
 "    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
 "    katalog misslyckas."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4939,10 +5189,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4970,14 +5222,16 @@ msgstr ""
 "    \tav dirs när det anropas utan fläggor, med början från noll.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
+"inträffar."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -5007,7 +5261,8 @@ msgstr ""
 "    Returnerar framgång om FLGNAMN är aktiverat, misslyckas om en ogiltig\n"
 "    flagga ges eller FLGNAMN är avaktiverat."
 
-#: builtins.c:1884
+#: builtins.c:1897
+#, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5015,22 +5270,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "Formatera och skriv ARGUMENT styrda av FORMAT.\n"
@@ -5041,7 +5302,8 @@ msgstr ""
 "    \n"
 "    FORMAT är en teckensträng som innehåller tre sortes objekt: vanliga\n"
 "    tecken, som helt enkelt kopieras till standard ut, teckenstyrsekvenser\n"
-"    som konverteras och kopieras till standard ut och formatspecifikationer,\n"
+"    som konverteras och kopieras till standard ut och "
+"formatspecifikationer,\n"
 "    där var och en medför utskrift av det nästföljande argumentet.\n"
 "    argument.\n"
 "    \n"
@@ -5058,12 +5320,14 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller ett skriv-\n"
 "    eller tilldelningsfel inträffar."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5103,14 +5367,16 @@ msgstr ""
 "    -E.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
+"inträffar."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5123,15 +5389,19 @@ msgstr ""
 "    matchningar av ORD.\n"
 "    \n"
 "    Slutstatus:\n"
-"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel "
+"inträffar."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5154,7 +5424,8 @@ msgid ""
 msgstr ""
 "Modifiera eller visa kompletteringsflaggor.\n"
 "    \n"
-"    Modifiera kompletteringsflaggorna för varje NAMN, eller, om inga NAMN är\n"
+"    Modifiera kompletteringsflaggorna för varje NAMN, eller, om inga NAMN "
+"är\n"
 "    givna, den komplettering som för närvarande körs.  Om ingen FLAGGA är\n"
 "    given skrivs kompletteringsflaggorna för varje NAMN eller den aktuella\n"
 "    kompletteringsspecifikationen.\n"
@@ -5164,12 +5435,14 @@ msgstr ""
 "    \t-D\t        Ändra flaggorna för standardkommandokompletteringen\n"
 "    \t-E\t\tÄndra flaggorna för komplettering av ett tomt kommando\n"
 "    \n"
-"    Genom att använda \"+o\" istället för \"-o\" slås den angivna flaggan av.\n"
+"    Genom att använda \"+o\" istället för \"-o\" slås den angivna flaggan "
+"av.\n"
 "    \n"
 "    Argument:\n"
 "    \n"
 "    Varje NAMN refererar till ett kommando för vilket en kompletterings-\n"
-"    specifikation måste ha definierats tidigare med det inbyggda \"complete\".\n"
+"    specifikation måste ha definierats tidigare med det inbyggda \"complete"
+"\".\n"
 "    Om inget NAMN ges måste compopt anropas av en funktion som just nu\n"
 "    genererar kompletteringar, och flaggorna för den just nu exekverande\n"
 "    kompletteringsgeneratorn modifieras.\n"
@@ -5178,22 +5451,28 @@ msgstr ""
 "    Returnerar framgång om inte en ogiltig flagga ges eller NAMN inte har\n"
 "    någon kompletteringsspecifikaation definierad."
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5203,11 +5482,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "Läs rader från standard in till en indexerad vektorvariabel.\n"
@@ -5217,8 +5498,10 @@ msgstr ""
 "    standard för VEKTOR.\n"
 "    \n"
 "    Flaggor:\n"
-"      -n antal\tKopiera högs ANTAL rader.  Om ANTAL är 0 kopieras alla rader.\n"
-"      -O start\tBörja tilldela till VEKTOR vid index START.  Standardindex är 0.\n"
+"      -n antal\tKopiera högs ANTAL rader.  Om ANTAL är 0 kopieras alla "
+"rader.\n"
+"      -O start\tBörja tilldela till VEKTOR vid index START.  Standardindex "
+"är 0.\n"
 "      -s antal \tSläng de första ANTAL inlästa raderna.\n"
 "      -t\t\tTa bort en avslutande nyrad från varje inläst rad.\n"
 "      -u fb\t\tLäs rader från filbeskrivare FB istället för standard in.\n"
@@ -5230,17 +5513,19 @@ msgstr ""
 "      VEKTOR\t\tNamn på vektorvariabel att använda för fildata.\n"
 "    \n"
 "    Om -C ges utan -c är standardkvanta 5000.  När ÅTERANROP evalueras får\n"
-"    den indexet på nästa vektorelement att tilldelas och raden att tilldelas\n"
+"    den indexet på nästa vektorelement att tilldelas och raden att "
+"tilldelas\n"
 "    till det elementet som extra argument.\n"
 "    \n"
-"    Om det inte ges någon specificerad start kommer mapfile nollställa VEKTOR\n"
+"    Om det inte ges någon specificerad start kommer mapfile nollställa "
+"VEKTOR\n"
 "    före tilldelning till den.\n"
 "    \n"
 "    Slutstatus:\n"
 "    Returnerar framgång om inte en ogiltig flagga ges eller VEKTOR är\n"
 "    oföränderlig eller inte en indexerad vektor."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index d41c8171e3adfb01b2c3abbc85bf9937214132a5..89e7eda94c9e68245335ea48a78024b277a5733a 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index d6ed3b8c4760a0a68dd11ebdc76b95c26629f2d3..31cee3b566b9581ec4de6104892f4e941ec37a6b 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,60 +6,61 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2006-10-30 20:00+0200\n"
 "Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"Language: tr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.1\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "hatalı dizi indisi"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: eylem adı geçersiz"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: sayısal olmayan indise atama yapılamaz"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: oluşturulamıyor: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: komut için kısayol bulunamıyor"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: boşluk olmayan ilk karakter `\"' değil"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "%2$s içinde kapatan `%1$c' yok"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: ikinokta imi eksik"
@@ -69,36 +70,36 @@ msgstr "%s: ikinokta imi eksik"
 msgid "`%s': invalid alias name"
 msgstr "`%s': kısayol ismi geçersiz"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': kısayol ismi geçersiz"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: okunamıyor: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': kısayol değiştirilemiyor"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': işlev ismi bilinmiyor"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s için bir kısayol atanmamış.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s bunun üzerinden çağrılabilir: "
@@ -119,11 +120,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr "Geçerli altyordam çağrısının bağlamı döner."
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME atanmamış"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "çok fazla argüman"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD boş"
 
@@ -132,7 +137,7 @@ msgstr "OLDPWD boş"
 msgid "line %d: "
 msgstr ""
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "%s: uyarı: "
@@ -142,11 +147,7 @@ msgstr "%s: uyarı: "
 msgid "%s: usage: "
 msgstr "%s: uyarı: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "çok fazla argüman"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: seçenek bir argüman gerektirir"
@@ -161,7 +162,7 @@ msgstr "%s: sayısal argüman gerekli"
 msgid "%s: not found"
 msgstr "%s:yok"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: seçenek geçersiz"
@@ -171,7 +172,7 @@ msgstr "%s: seçenek geçersiz"
 msgid "%s: invalid option name"
 msgstr "%s: seçenek ismi geçersiz"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': geçerli bir belirteç değil"
@@ -186,7 +187,7 @@ msgstr "geçersiz sinyal numarası"
 msgid "invalid hex number"
 msgstr "geçersiz sayı"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "geçersiz sayı"
 
@@ -200,7 +201,7 @@ msgstr "%s: sinyal belirtimi geçersiz"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': geçerli bir iş belirtimi veya süreç numarası değil"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: salt okunur değişken"
@@ -272,26 +273,26 @@ msgstr "%s: geçerli dizin alınırken hata: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: iş belirtimi belirsiz"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: eylem adı geçersiz"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: tamamlama belirtimi yok"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "uyarı: -F seçeneği umduğunuz gibi çalışmayabilir"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "uyarı: -C seçeneği umduğunuz gibi çalışmayabilir"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -303,7 +304,7 @@ msgstr "sadece bir işlevde kullanılabilir"
 msgid "cannot use `-f' to make functions"
 msgstr "işlev yapmak için `-f' kullanılamaz"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: salt okunur işlev"
@@ -313,7 +314,7 @@ msgstr "%s: salt okunur işlev"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: dizi değişkenleri bu yolla iptal edilemez"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -342,8 +343,8 @@ msgstr "%s: özdevimli olarak yüklenmemiş"
 msgid "%s: cannot delete: %s"
 msgstr "%s: silinemiyor: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: bir dizin"
@@ -358,8 +359,7 @@ msgstr "%s: bir dosya değil"
 msgid "%s: file is too large"
 msgstr "%s: dosya çok büyük"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: ikili dosya çalıştırılamıyor"
@@ -482,7 +482,7 @@ msgstr "tek bir -anrw kullanılabilir"
 msgid "history position"
 msgstr "geçmiş konumu"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: geçmiş yorumlaması başarısız"
@@ -505,7 +505,7 @@ msgstr "%s: argümanlar süreç veya iş kimlikleri olmalı"
 msgid "Unknown error"
 msgstr "Bilinmeyen hata"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "ifade bekleniyordu"
 
@@ -514,12 +514,12 @@ msgstr "ifade bekleniyordu"
 msgid "%s: not an indexed array"
 msgstr "%s: bir dizi değişkeni değil"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: dosya tanıtıcı belirtimi geçersiz"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: dosya tanıtıcı geçersiz: %s"
@@ -548,31 +548,31 @@ msgstr "%s: bir dizi değişkeni değil"
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': biçim karakteri eksik"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: zamanaşımı belirtimi geçersiz"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': biçim karakteri geçersiz"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, fuzzy, c-format
 msgid "warning: %s: %s"
 msgstr "%s: uyarı: "
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "\\x için onaltılık rakam eksik"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "\\x için onaltılık rakam eksik"
@@ -716,17 +716,17 @@ msgstr ""
 "          engeller, böylece sadece yığıt değiştirilmiş olur. \n"
 "    Dizin yığıtını `dirs' komutuyla görebilirsiniz."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: zamanaşımı belirtimi geçersiz"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "okuma hatası: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "sadece bir işlev veya betikten kaynaklı olarak `return' yapılabilir"
 
@@ -734,17 +734,17 @@ msgstr "sadece bir işlev veya betikten kaynaklı olarak `return' yapılabilir"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "bir işlev ve bir değişken aynı anda unset yapılamaz"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: unset yapılamaz"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s:unset yapılamaz: %s salt okunur"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: bir dizi değişkeni değil"
@@ -758,11 +758,11 @@ msgstr "%s: bir işlev değil"
 msgid "shift count"
 msgstr "shift sayısı"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "kabuk seçenekleri aynı anda hem atanıp hem de iptal edilemez"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: kabuk seçenek ismi geçersiz"
@@ -804,7 +804,7 @@ msgstr "%s bir işlevdir\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s bir kabuk yerleşiğidir\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s %s'dir\n"
@@ -814,26 +814,26 @@ msgstr "%s %s'dir\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s çitilmiş (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: sınırlama argümanı geçersiz"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': hatalı komut"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: sınır alınamıyor: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr ""
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: sınır değiştirilemiyor: %s"
@@ -852,7 +852,7 @@ msgstr "`%c': simgesel kip işleci geçersiz"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': simgesel kip karakteri geçersiz"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -866,23 +866,23 @@ msgstr "son komut: %s\n"
 msgid "Aborting..."
 msgstr "Çıkılıyor..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "bilinmeyen komut hatası"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "hatalı komut türü"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "hatalı bağlantı"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "hatalı sıçrama"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: bağlanmamış değişken"
@@ -897,103 +897,118 @@ msgstr "\agirdi beklerken zamanaşımı: auto-logout\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "/dev/null'dan standart girdiye yönlendirme yapılamaz: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': biçim karakteri geçersiz"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "yazma hatası: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: kısıtlı: komut adında `/' kullanamazsınız"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: komut yok"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s %s'dir\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: hatalı yorumlayıcı"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: ikili dosya çalıştırılamıyor"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s bir kabuk yerleşiğidir\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "fd %d, fd %d olarak yinelenemiyor"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "ifade özyineleme düzeyi aşıldı"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "özyineleme yığıtı alttan taştı"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "ifadede sözdizimi hatası"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "değişken olmayana atama yapmaya çalışıldı"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "sıfırla bölme"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "yazılım hatası: bad expassign token"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "koşullu ifade için `:' bekleniyordu"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "üs sıfırdan küçük"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "belirteç ön-arttırım veya ön-eksiltim sonrası bekleniyordu"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "eksik `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "sözdizimi hatası: terim umuluyordu"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "sözdizimi hatası: geçersiz aritmetik işleci"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "geçersiz sayı tabanı"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "değer taban için fazla büyük"
 
-#: expr.c:1435
+#: expr.c:1504
 #, fuzzy, c-format
 msgid "%s: expression error\n"
 msgstr "%s: tamsayı ifadesi bekleniyordu"
@@ -1002,164 +1017,164 @@ msgstr "%s: tamsayı ifadesi bekleniyordu"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: üst dizinlere erişilemiyor"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, fuzzy, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "fd %d için geciktirmeme kipi sıfırlanamıyor"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "fd %d tanıtıcısındaki bash girdisi için yeni dosya tanıtıcısı ayrılamıyor"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: yeni fd %d için tampon zaten var"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "çatallanan pid %d, çalışan iş %d içinde görünüyor"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "durdurulan %2$ld süreç gruplu iş %1$d  siliniyor"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: böyle bir pid yok"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld bu kabuğun bir alt sürecine ait değil"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: süreç %ld için kayıt yok"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: iş %d durdu"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: iş sonlanmış"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: iş %d zaten artalanda"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s: uyarı: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "bu kabukta iş denetimi yok"
 
@@ -1229,7 +1244,7 @@ msgstr "register_alloc: %p zaten ayrılmış olarak tabloda değil mi?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p zaten serbest bırakılmış olarak tabloda değil mi?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "geçersiz taban"
 
@@ -1252,22 +1267,22 @@ msgstr "%s: hatalı ağ yolu belirtimi"
 msgid "network operations not supported"
 msgstr "desteklenmeyen ağ işlemleri"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor"
@@ -1298,118 +1313,118 @@ msgstr "sözdizimi hatası: `;' beklenmiyordu"
 msgid "syntax error: `((%s))'"
 msgstr "sözdizimi hatası: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: hatalı yönerge türü %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: yönlendirme yönergesi `%d' aralık dışında"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "`%c' için eşleşme aranırken beklenmedik dosya sonu"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "`]]' aranırken beklenmedik dosya sonu"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "koşullu ifadede sözdizimi hatası: beklenmedik dizgecik `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "koşullu ifadede sözdizimi hatası"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "beklenmedik dizgecik `%s', `)' umuluyordu"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "`)' umuluyordu"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "koşullu tek terimli işlece beklenmedik argüman `%s'"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "koşullu tek terimli işlece beklenmedik argüman"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "beklenmedik dizgecik `%s', koşullu iki terimli işleç umuluyordu"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "koşullu iki terimli işleç umuluyordu"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "koşullu iki terimli işlece beklenmedik argüman `%s'"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "koşullu iki terimli işlece beklenmedik argüman"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "koşullu komutta beklenmeyen dizgecik `%c'"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "koşullu komutta beklenmeyen dizgecik `%s'"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "koşullu komutta beklenmeyen dizgecik %d"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "beklenmeyen dizgecik `%s' yakınında sözdizimi hatası"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "`%s' yakınında sözdizimi hatası"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "sözdizimi hatası: beklenmeyen dosya sonu"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "sözdizimi hatası"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Kabuğu bırakmak için \"%s\" kullanın.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "`)' için eşleşme aranırken beklenmedik dosya sonu"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "completion: `%s' işlevi yok"
@@ -1419,26 +1434,26 @@ msgstr "completion: `%s' işlevi yok"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: hatalı bağlayıcı `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: dosya tanıtıcı geçersiz: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': geçersiz biçim karakteri"
@@ -1476,33 +1491,33 @@ msgstr "%s: dizi üyesine liste atanamaz"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port ağ olmaksızın desteklenmiyor"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "yönlendirme hatası: fd yinelenemiyor"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "/tmp bulunamadı, lütfen oluşturun!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp geçerli bir dizinin adı olmalıdır"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: geçersiz seçenek"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Hiç ismim yok!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr ""
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1511,44 +1526,44 @@ msgstr ""
 "Kullanım:\t%s [GNU uzun seçeneği] [seçenek] ...\n"
 "\t%s [GNU uzun seçeneği] [seçenek] betik-dosyası ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU uzun seçenekleri:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Kabuk seçenekleri:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD veya -c KOMUT veya -O shopt_seçeneği\t(sadece çağrı için)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s ya da -o seçeneği\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Kabuk seçenekleriyle ilgili daha fazla bilgi için `%s -c \"help set\"' "
 "yazın.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Kabuk yerleşik komutlarıyla ilgili bilgi almak için `%s -c help' yazın.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 "Yazılım hatalarını raporlamak için `bashbug' komutunu kullanınız.\n"
 "Çeviri hatalarını ise <gnu-tr@belgeler.org> adresine bildiriniz.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: geçersiz işlem"
@@ -1724,83 +1739,83 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: dizi üyesine liste atanamaz"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "süreç ikamesi için borulama yapılamıyor"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "süreç ikamesi için alt süreç yapılamıyor"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "isimli boru %s okumak için açılamıyor"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "isimli boru %s yazmak için açılamıyor"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "isimli boru %s fd %d olarak yinelenemiyor"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "komut ikamesi için boru yapılamıyor"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "komut ikamesi için alt süreç yapılamıyor"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: boru fd 1 olarak yinelenemiyor"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parametre boş ya da değer atanmamış"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: altdizge ifadesi < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: hatalı ikame"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: bu yolla atama yapılmaz"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, fuzzy, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "eşleşme yok: %s"
@@ -1837,79 +1852,79 @@ msgstr "%s: iki terimli işleci bekleniyordu"
 msgid "missing `]'"
 msgstr "eksik `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "geçersiz sinyal numarası"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps:trap_list[%d] içinde hatalı değer: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr ""
 "run_pending_traps: sinyal yakalayıcı SIG_DFL'dir, kendime %d (%s) göndererek"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler:hatalı sinyal %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "`%s'nin işlev tanımının içeri aktarılmasında hata"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "kabuk düzeyi (%d) çok yüksek, 1 yapılıyor"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: geçerli etki alanında hiç işlev bağlamı yok"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: geçerli etki alanında hiç işlev bağlamı yok"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: parametre boş ya da değer atanmamış"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "%2$s için exportstr içinde geçersiz karakter %1$d"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "%s için exportstr içinde `=' yok"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: kabuk değişkenlerinin başı bir işlev bağlamı değil"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: genel değişkenler bağlamı yok"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 "pop_scope: kabuk değişkenlerinin başı bir geçici ortam etki alanı değil"
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: açılamıyor: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: dosya tanıtıcı geçersiz: %s"
@@ -1982,7 +1997,7 @@ msgstr ""
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2180,7 +2195,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2188,7 +2203,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2386,6 +2401,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2427,7 +2444,7 @@ msgstr ""
 "      -s                 Makroları çağıran tuş dizilerini ve değerlerini\n"
 "                         girdi olarak kullanılabilir biçimde listeler."
 
-#: builtins.c:326
+#: builtins.c:328
 #, fuzzy
 msgid ""
 "Exit for, while, or until loops.\n"
@@ -2442,7 +2459,7 @@ msgstr ""
 "    FOR, WHILE veya UNTIL döngülerinin sonraki yinelemesinden devam edilir.\n"
 "    N verilirse dışa doğru N. döngüden devam edilir. N >= 1 olmalıdır."
 
-#: builtins.c:338
+#: builtins.c:340
 #, fuzzy
 msgid ""
 "Resume for, while, or until loops.\n"
@@ -2457,7 +2474,7 @@ msgstr ""
 "    FOR, WHILE veya UNTIL döngülerinin sonraki yinelemesinden devam edilir.\n"
 "    N verilirse dışa doğru N. döngüden devam edilir. N >= 1 olmalıdır."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2471,7 +2488,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2505,7 +2522,7 @@ msgstr ""
 "döneceğini\n"
 "    belirtir; tepe çerçeve 0. çerçevedir."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2529,13 +2546,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2561,7 +2583,7 @@ msgstr ""
 "seçeneği\n"
 "    sembolik bağların mutlaka izlenmesini sağlar."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2577,7 +2599,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 #, fuzzy
 msgid ""
 "Null command.\n"
@@ -2590,7 +2612,7 @@ msgstr ""
 "\r:\n"
 "    Etkisizdir; bu komut birşey yapmaz. Sıfır çıkış kodu döndürülür."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2598,7 +2620,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 #, fuzzy
 msgid ""
 "Return an unsuccessful result.\n"
@@ -2609,7 +2631,7 @@ msgstr ""
 "\rfalse\n"
 "    Başarısız bir sonuç döndürür."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2628,7 +2650,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2693,14 +2715,14 @@ msgstr ""
 "kullanılmış\n"
 "    gibi yerel yapar."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2715,12 +2737,14 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 #, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2732,6 +2756,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2768,7 +2793,7 @@ msgstr ""
 "    -E seçeneği ile yukarıdaki karakterlerin yorumlanmasını öntanımlı\n"
 "    olarak etkin olduğu sistemlerde bile kapatabilirsiniz."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2781,7 +2806,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2808,7 +2833,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2820,7 +2845,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 #, fuzzy
 msgid ""
 "Parse option arguments.\n"
@@ -2912,7 +2937,7 @@ msgstr ""
 "başka\n"
 "    argümanlar verilmişse bunları çözümler."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2935,7 +2960,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 #, fuzzy
 msgid ""
 "Exit the shell.\n"
@@ -2947,7 +2972,7 @@ msgstr ""
 "    N durumu ile dönerek kabuk çıkar. N verilmezse son çalıştırılan komutun\n"
 "    çıkış durumu döner."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2956,7 +2981,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 #, fuzzy
 msgid ""
 "Display or execute commands from the history list.\n"
@@ -3011,7 +3036,7 @@ msgstr ""
 "    Böylece `r cc' yazarak `cc' ile başlayan son komut,\n"
 "    r' yazarak en son komut çalıştırılabilir."
 
-#: builtins.c:743
+#: builtins.c:751
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -3028,7 +3053,7 @@ msgstr ""
 "    Eğer İŞ_BELİRTİMİ belirtilmemişse kabuk iş belirtimi olarak\n"
 "    o an ki işi kullanır."
 
-#: builtins.c:758
+#: builtins.c:766
 #, fuzzy
 msgid ""
 "Move jobs to the background.\n"
@@ -3046,7 +3071,7 @@ msgstr ""
 "    `&' ile başlatılmışçasına İŞ_BELİRTİMİni artalana yerleştirir.\n"
 "    İŞ_BELİRTİMİ verilmemişse, iş belirtimi olarak o an ki iş kullanılır."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3070,7 +3095,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3092,7 +3117,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 #, fuzzy
 msgid ""
 "Display or manipulate the history list.\n"
@@ -3150,7 +3175,7 @@ msgstr ""
 "    damgasını basacak olan strftime(3) işlevine biçim girdisi olur; aksi\n"
 "    takdirde hiç zaman damgası basılmaz."
 
-#: builtins.c:857
+#: builtins.c:865
 #, fuzzy
 msgid ""
 "Display status of jobs.\n"
@@ -3187,7 +3212,7 @@ msgstr ""
 "    ARGümanlar  ile  belirtilen tüm iş belirtimleri,  işlerin süreç grup\n"
 "    liderinin süreç grup kimliğine yerleştirilip KOMUT çalıştırılır."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3204,7 +3229,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 #, fuzzy
 msgid ""
 "Send a signal to a job.\n"
@@ -3242,7 +3267,7 @@ msgstr ""
 "    sınırını  aşarsanız  başka  bir  süreci  öldürecek bir süreci başlatmak\n"
 "    zorunda kalmazsınız."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3327,7 +3352,7 @@ msgstr ""
 "\n"
 "    Son ifade'nin sonucu 0 ise dönüş durumu 1 dir, aksi takdirde 0 dır."
 
-#: builtins.c:971
+#: builtins.c:979
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3365,14 +3390,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "\rread [-ers] [-u DSYTNT] [-t ZMAŞM] [-p İSTEM] [-a DİZİ]\n"
@@ -3420,7 +3448,7 @@ msgstr ""
 "    okuma zamanaşımına düşmedikçe ya da -u seçeneği ile sağlanan\n"
 "    DoSYaTaNıTıcı geçersiz olmadıkça dönüş durumu sıfırdır."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3432,7 +3460,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3499,7 +3527,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3608,7 +3636,7 @@ msgstr ""
 "    atanır. Özel parametre # ise N'e ayarlanır. Hiç argüman verilmezse,\n"
 "    tüm kabuk değişkenleri basılır."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3628,7 +3656,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3647,7 +3675,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3667,7 +3695,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3678,7 +3706,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 #, fuzzy
 msgid ""
 "Execute commands from a file in the current shell.\n"
@@ -3706,7 +3734,7 @@ msgstr ""
 "parametreler\n"
 "    değiştirilmez."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3720,7 +3748,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3878,7 +3906,7 @@ msgstr ""
 "    küçüklük, büyüklük, küçüklük veya eşitlik, büyüklük veya eşitlik varsa\n"
 "    ifadenin sonucu doğrudur."
 
-#: builtins.c:1311
+#: builtins.c:1321
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3890,7 +3918,7 @@ msgstr ""
 "   test yerleşiği ile aynıdır, fakat son argüman açan `[' ile eşleşen\n"
 "   kapatan `]' olmak zorundadır."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3902,7 +3930,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -3963,7 +3991,7 @@ msgstr ""
 "    numaraları  ile  birlikte  listelemesini  sağlar.  Kabuğa  bir  sinyal\n"
 "    göndermek isterseniz \"kill -SİGNAL $$\" sözdizimini kullanabilirsiniz."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3993,7 +4021,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 #, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
@@ -4023,6 +4051,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4070,7 +4101,7 @@ msgstr ""
 "    için 512 baytlık blok sayısı olarak,  -n  ve  -u  için birimsiz,  kalan\n"
 "    seçenekler için 1024 baytlık blok sayısı olarak belirtilmelidir."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4088,24 +4119,31 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
+"\rwait [N]\n"
+"    Belirtilen süreci bekler ve sonlandırma  durumunu  raporlar.  N\n"
+"    verilmezse, o an etkin olan tüm süreçler için beklenir ve sıfır\n"
+"    durumu ile dönülür. N bir süreç kimliği olabileceği gibi bir iş\n"
+"    belirtimi de olabilir; bir iş belirtimi verilirse işin\n"
+"    boruhattındaki tüm süreçler için beklenir."
 
-#: builtins.c:1482
+#: builtins.c:1495
 #, fuzzy
 msgid ""
 "Wait for process completion and return exit status.\n"
@@ -4126,7 +4164,7 @@ msgstr ""
 "    belirtimi de olabilir; bir iş belirtimi verilirse işin\n"
 "    boruhattındaki tüm süreçler için beklenir."
 
-#: builtins.c:1497
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4145,7 +4183,7 @@ msgstr ""
 "    yoksa, `in \"$@\"' belirtilmiş gibi kümeyi oluşturan her parametre\n"
 "    için KOMUTlar birer kere çalıştırılır."
 
-#: builtins.c:1511
+#: builtins.c:1524
 #, fuzzy
 msgid ""
 "Arithmetic for loop.\n"
@@ -4172,7 +4210,7 @@ msgstr ""
 "    İFADE1, İFADE2 ve İFADE3 aritmetik ifadelerdir. Verilmeyen her\n"
 "    ifade için 1 verilmiş gibi işlem yapılır."
 
-#: builtins.c:1529
+#: builtins.c:1542
 #, fuzzy
 msgid ""
 "Select words from a list and execute commands.\n"
@@ -4212,7 +4250,7 @@ msgstr ""
 "    değişkeninde tutulur. Her seçimden sonra bir break komutu ile\n"
 "    sonlandırılıncaya kadar komutlar çalıştırılır."
 
-#: builtins.c:1550
+#: builtins.c:1563
 #, fuzzy
 msgid ""
 "Report time consumed by pipeline's execution.\n"
@@ -4236,7 +4274,7 @@ msgstr ""
 "    istatistiklerinin  biraz farklı bir biçimde basılmasını sağlar;  çıktı\n"
 "    biçimi olarak TIMEFORMAT değişkeninin değerini kullanır."
 
-#: builtins.c:1567
+#: builtins.c:1580
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4251,7 +4289,7 @@ msgstr ""
 "    SÖZcük ile eşleşen ilk KALIP'a karşı düşen KOMUTları çalıştırır.\n"
 "    `|' çok sayıda kalıbı ayırmak için kullanılır."
 
-#: builtins.c:1579
+#: builtins.c:1592
 #, fuzzy
 msgid ""
 "Execute commands based on conditional.\n"
@@ -4286,7 +4324,7 @@ msgstr ""
 "    çıkış durumudur.  Bir komut çalıştırılmamışsa  ve hiçbir koşul\n"
 "    doğru sonuç vermemişse sıfır döner."
 
-#: builtins.c:1596
+#: builtins.c:1609
 #, fuzzy
 msgid ""
 "Execute commands as long as a test succeeds.\n"
@@ -4301,7 +4339,7 @@ msgstr ""
 "    `while KOMUTlar; listesinin çıkış durumu sıfır olduğu sürece\n"
 "    `do KOMUTlar;' listesi çalıştırılır."
 
-#: builtins.c:1608
+#: builtins.c:1621
 #, fuzzy
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
@@ -4316,7 +4354,7 @@ msgstr ""
 "    `until KOMUTlar; listesinin çıkış durumu sıfırdan farklı olduğu sürece\n"
 "    `do KOMUTlar;' listesi çalıştırılır."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4329,7 +4367,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4343,7 +4381,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 #, fuzzy
 msgid ""
 "Group commands as a unit.\n"
@@ -4358,7 +4396,7 @@ msgstr ""
 "    KOMUTlar bir grup olarak çalıştırılır. Bu, bir komut kümesini bir\n"
 "    yönlendirmede kullanmanın tek yoludur."
 
-#: builtins.c:1660
+#: builtins.c:1673
 #, fuzzy
 msgid ""
 "Resume job in foreground.\n"
@@ -4379,7 +4417,7 @@ msgstr ""
 "    İŞ_BELİRTİMİ'nden sonra bir & gelmesi işin `bg' komutununa argüman\n"
 "    olarak kullanılmış gibi artalana yerleştirilmesine sebep olur."
 
-#: builtins.c:1675
+#: builtins.c:1688
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expression.\n"
@@ -4394,7 +4432,7 @@ msgstr ""
 "    Verilen aritmetik İFADE aritmetik değerlendirme kurallarına göre\n"
 "    değerlendirilir. \"let İFADE\" ile eşdeğerdir."
 
-#: builtins.c:1687
+#: builtins.c:1700
 #, fuzzy
 msgid ""
 "Execute conditional command.\n"
@@ -4437,7 +4475,7 @@ msgstr ""
 "   olarak ele alınır ve kalıp eşleştirmesi uygulanır. && ve || işleçleri\n"
 "   eğer ilk ifade sonuç için belirleyici ise ikincisine bakmazlar."
 
-#: builtins.c:1713
+#: builtins.c:1726
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -4558,7 +4596,7 @@ msgstr ""
 "                       gerektiğine karar vermek için kullanılan kalıpların\n"
 "                       ikinokta imi ayraçlı listesi.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 #, fuzzy
 msgid ""
 "Add directories to stack.\n"
@@ -4610,7 +4648,7 @@ msgstr ""
 "\n"
 "    Dizin yığıtını `dirs' komutuyla görebilirsiniz."
 
-#: builtins.c:1804
+#: builtins.c:1817
 #, fuzzy
 msgid ""
 "Remove directories from stack.\n"
@@ -4651,7 +4689,7 @@ msgstr ""
 "          engeller, böylece sadece yığıt değiştirilmiş olur. \n"
 "    Dizin yığıtını `dirs' komutuyla görebilirsiniz."
 
-#: builtins.c:1834
+#: builtins.c:1847
 #, fuzzy
 msgid ""
 "Display directory stack.\n"
@@ -4697,7 +4735,7 @@ msgstr ""
 "    -N   dirs seçeneksiz çağrıldığında gösterdiği listenin sağından\n"
 "         sıfırla başlayarak sayılan N'inci girdiyi gösterir."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -4718,7 +4756,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4737,8 +4775,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -4763,7 +4801,7 @@ msgstr ""
 "    biçimde çıktılamasını sağlar. -v seçeneği çıktının standart çıktıya\n"
 "    basılması yerine DEĞİŞKENe atanmasını sağlar. "
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -4790,7 +4828,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -4810,7 +4848,7 @@ msgstr ""
 "    amacıyla tasarlanmıştır. İsteğe bağlı SÖZCÜK argümanı sağlandığı\n"
 "    takdirde eşleşmelerden sadece SÖZCÜK ile eşleşenler üretilir."
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -4841,7 +4879,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -4882,7 +4920,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 138d66ecdf0c8acf1b7c7031993d048822fc9f67..4c4613f7f8adaead99f6ff050256da7d5fb107e0 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 098ba728f91eaf81be3212c54d2f3284f959f97b..49a2d2452c886d095f5ae2f1b3618dd12f80281f 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,63 +8,64 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2010-06-01 14:53+0300\n"
 "Last-Translator: Maxim V. Dziumanenko <dziumanenko@gmail.com>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language: uk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "неправильний індекс масиву"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: неможливо перетворити індексований масив на асоціативний"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: неправильний ключ асоціативного масиву"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: означення нечислових елементів неможливе"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: при означенні асоціативних масивів потрібно вказувати ключ"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: не вдається створити: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 "bash_execute_unix_command: не вдається знайти відповідне призначення для "
 "команди"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: перший непробільний символ не є `\"'"
 
 # c-format
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "нема заключної `%c' у %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: пропущено двокрапку-роздільник"
@@ -74,36 +75,36 @@ msgstr "%s: пропущено двокрапку-роздільник"
 msgid "`%s': invalid alias name"
 msgstr "`%s': неправильна назва набору призначень клавіш"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "редагування рядку не ввімкнено"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': неправильна назва набору призначень клавіш"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: не вдається прочитати: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': не вдається зняти призначення"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': невідома назва функції"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s не призначено жодної клавіші.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s можна запустити за допомогою "
@@ -126,11 +127,15 @@ msgstr ""
 "    \n"
 "    Якщо EXPR не вказано, повертає "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "змінну HOME не встановлено"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "забагато аргументів"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "змінну OLDPWD не встановлено"
 
@@ -139,7 +144,7 @@ msgstr "змінну OLDPWD не встановлено"
 msgid "line %d: "
 msgstr "рядок %d: "
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "попередження: "
@@ -149,11 +154,7 @@ msgstr "попередження: "
 msgid "%s: usage: "
 msgstr "%s: використовуйте: "
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "забагато аргументів"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: параметр потребує аргументу"
@@ -168,7 +169,7 @@ msgstr "%s: потрібен числовий аргумент"
 msgid "%s: not found"
 msgstr "%s: не знайдено"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: неправильний параметр"
@@ -178,7 +179,7 @@ msgstr "%s: неправильний параметр"
 msgid "%s: invalid option name"
 msgstr "%s: невірна назва параметру"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': неправильний ідентифікатор"
@@ -191,7 +192,7 @@ msgstr "неправильне вісімкове число"
 msgid "invalid hex number"
 msgstr "неправильне шістнадцяткове число"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "неправильне число"
 
@@ -205,7 +206,7 @@ msgstr "%s: сигнал вказано невірно"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': не є ідентифікатором процесу чи завдання"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: змінна призначена лише для читання"
@@ -277,26 +278,26 @@ msgstr "%s: помилка отримання поточної директор
 msgid "%s: ambiguous job spec"
 msgstr "%s: завдання вказано неоднозначно"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: неправильна назва дії"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: не вказана специфіцкація завершення"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "попередження: можливо параметр -F працює не так, як ви очікуєте"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "попередження: можливо параметр -C працює не так, як ви очікуєте"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "наразі функція завершення рядку не виконується"
 
@@ -308,7 +309,7 @@ msgstr "може використовуватися лише усередині
 msgid "cannot use `-f' to make functions"
 msgstr "`-f' не використовується для створення функцій"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: незмінна функція"
@@ -318,7 +319,7 @@ msgstr "%s: незмінна функція"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: неможливо знищити масив таким чином"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: неможливо перетворити асоціативний масив на індексований"
@@ -347,8 +348,8 @@ msgstr "%s: завантажений не динамічно"
 msgid "%s: cannot delete: %s"
 msgstr "%s: не вдається вилучити: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: це директорія"
@@ -363,8 +364,7 @@ msgstr "%s: не є звичайним файлом"
 msgid "%s: file is too large"
 msgstr "%s: файл завеликий"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: не вдається виконати бінарний файл"
@@ -490,7 +490,7 @@ msgstr "-anrw можуть зустрічатися лише один раз"
 msgid "history position"
 msgstr "позиція у історії команд"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: невдалий пошук по історії команд"
@@ -513,7 +513,7 @@ msgstr "%s: аргументи мають бути ідентифікатора
 msgid "Unknown error"
 msgstr "Невідома помилка"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "очікувався вираз"
 
@@ -522,12 +522,12 @@ msgstr "очікувався вираз"
 msgid "%s: not an indexed array"
 msgstr "%s: не є масивом"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: неправильно вказаний дескриптор файлу"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: неправильний дескриптор файлу: %s"
@@ -555,31 +555,31 @@ msgstr "порожня назва змінної-масиву"
 msgid "array variable support required"
 msgstr "змінні-масиви не підтримуються"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': пропущено символ у шаблоні"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s: неправильно вказаний термін часу"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': невірний символ у шаблоні"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "попередження: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "пропущено шістнадцяткову цифру у \\x"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, fuzzy, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "пропущено шістнадцяткову цифру у \\x"
@@ -733,17 +733,17 @@ msgstr ""
 "    \n"
 "    Вбудована команда `dirs' показує стек директорій."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, fuzzy, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: неправильно вказаний термін часу"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "помилка читання: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 "`return' працює лише у функції чи скрипті, запущеному за допомогою `source'"
@@ -752,17 +752,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "не можна одночасно знищити і функцію і змінну"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: не вдається знищити"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: не вдається знищити: %s лише для читання"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: не є масивом"
@@ -776,11 +776,11 @@ msgstr "%s: не є функцією"
 msgid "shift count"
 msgstr "кількість зсувів"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "не можна одночасно встановлювати й скасовувати параметри оболонки"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: неправильне ім’я параметру оболонки"
@@ -822,7 +822,7 @@ msgstr "%s є функцією\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s є вбудованою командою оболонки\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s — це %s\n"
@@ -834,26 +834,26 @@ msgstr "%s — це %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s знаходиться в кеші (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: невірний аргумент обмеження"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': неправильна команда"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: не вдається отримати значення обмеження: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "значення обмеження"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: не вдається змінити обмеження: %s"
@@ -872,7 +872,7 @@ msgstr "`%c': невірний оператор у символьному реж
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': невірний символ у символьному режимі"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr " рядок "
 
@@ -886,23 +886,23 @@ msgstr "остання команда: %s\n"
 msgid "Aborting..."
 msgstr "Припинення..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "невідома помилка команди"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "неправильний тип команди"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "неправильний з’єднувальний оператор"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "неправильний перехід"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: неозначена змінна"
@@ -917,102 +917,117 @@ msgstr "\aчас очікування вводу вичерпано: автом
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "не вдається переспрямувати /dev/null на стандартний ввід: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: `%c': невірний символ шаблону"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "помилка каналу"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: обмеження: не можна вказувати `/' у імені команди"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: команду не знайдено"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, fuzzy, c-format
 msgid "%s: %s"
 msgstr "%s — це %s\n"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: неправильний інтерпретатор"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: не вдається виконати бінарний файл"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s є вбудованою командою оболонки\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "не вдається створити копію файлового дескриптору %d у %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "рівень вкладення виразів перевищено"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "нестача стеку рекурсії"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "синтаксична помилка у виразі"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "спроба призначення не-змінної"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "ділення на 0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "вада: неправильна лексема у виразі"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "очікувалася `:' умовного виразу"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "експонента менша за 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "пре-інкремент чи пре-декремент потребують ідентифікатор"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "відсутня `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "синтаксична помилка: очікувався операнд"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "синтаксична помилка: невірний арифметичний оператор"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (позначка помилки \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "невірна арифметична основа"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "завелике значення основи"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: помилка у виразі\n"
@@ -1021,168 +1036,168 @@ msgstr "%s: помилка у виразі\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: не вдається отримати доступ до директорій вищого рівня"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "не вдається перевстановити режим без затримки файлового дескриптору %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 "не вдається отримати новий файловий дескриптор для вводу bash з файлового "
 "дескриптору %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: для нового файлового дескриптору %d вже існує буфер"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 "ідентифікатор відгалуженого процесу %d знайдено у працюючому завданні %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "вилучення зупиненого завдання %d, що має групу процесів %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, fuzzy, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: процес %5ld (%s) у the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 "add_process: ідентифікатор процесу %5ld (%s) вважається все ще працюючим"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: ідентифікатор процесу не існує"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Сигнал %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Завершено"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Зупинено"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Зупинено(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Працює"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Зроблено(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Вихід %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Невідомий стан"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(збережено знімок оперативної пам’яті)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (РД: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "зміна групи дочірнього процесу (%ld на %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: процес %ld не є відгалуженим від цієї оболонки"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Нема запису для процесу %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: завдання %d зупинене"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: завдання завершилося"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: завдання %d вже працює в фоні"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: рядок %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (збережено знімок оперативної пам’яті)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(тепер РД: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: помилка getpgrp"
 
-#: jobs.c:3669
+#: jobs.c:3703
 #, fuzzy
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: line discipline"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "не вдається встановити групу процесу для терміналу (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "ця оболонка не може керувати завданнями"
 
@@ -1255,7 +1270,7 @@ msgstr "register_alloc: %p вже позначений як виділений 
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p вже позначений як вільний у таблиці?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "неправильна основа"
 
@@ -1278,22 +1293,22 @@ msgstr "%s: неправильно вказаний мережевий шлях"
 msgid "network operations not supported"
 msgstr "мережеві операції не підтримуються"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "xrealloc: %s:%d: не вдається виділити %lu байтів"
 
-#: locale.c:249
+#: locale.c:265
 #, fuzzy, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "xrealloc: %s:%d: не вдається виділити %lu байтів"
@@ -1324,118 +1339,118 @@ msgstr "синтаксична помилка: неочікувана `;'"
 msgid "syntax error: `((%s))'"
 msgstr "синтаксична помилка: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: неправильний тип інструкції %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, fuzzy, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "here-document з рядка %d закінчено кінцем файлу (очікувалося `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: інструкція переспрямування `%d' поза межами"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "файл скінчився раніше, ніж було знайдено відповідний `%c'"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "файл скінчився раніше, ніж було знайдено `]]'"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "синтаксична помилка в умовному виразі: неочікувана лексема `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "синтаксична помилка в умовному виразі"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "неочікувана лексема `%s', очікувалася `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "очікувалася `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "неочікуваний аргумент унарного умовного оператору `%s'"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "неочікуваний аргумент унарного умовного оператору"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "неочікувана лексема `%s', очікувався бінарний умовний оператор"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "очікувався бінарний умовний оператор"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "неочікуваний аргумент бінарного умовного оператора `%s'"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "неочікуваний аргумент бінарного умовного оператора"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "неочікувана лексема `%c' в умовній команді"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "неочікувана лексема `%s' в умовній команді"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "неочікувана лексема %d в умовній команді"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "синтаксична помилка коло неочікуваної лексеми `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "синтаксична помилка коло `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "синтаксична помилка: раптово скінчився файл"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "синтаксична помилка"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Використовуйте \"%s\", щоб вийти з оболонки.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "файл скінчився, перш ніж було знайдено відповідну `)'"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "завершення: функцію `%s' не знайдено"
@@ -1445,26 +1460,26 @@ msgstr "завершення: функцію `%s' не знайдено"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: неправильний з’єднувальний оператор `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, fuzzy, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "%d: неправильний дескриптор файлу: %s"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': неправильний символ шаблону"
@@ -1502,33 +1517,33 @@ msgstr "%s: неможливо означити елемент масиву сп
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port не підтримується"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "помилка переспрямування: не вдається створити копію дескриптора файлу"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "не вдається знайти /tmp, будь ласка створіть його!"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp має бути назвою дійсної директорії"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: невірний параметр"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "У мене нема імені!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, версія %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1537,44 +1552,44 @@ msgstr ""
 "Використовуйте:\t%s [довгий параметр GNU] [параметр] ...\n"
 "\t%s [довгий параметр GNU] [параметр] файл_сценарію ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Довгі параметри GNU:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Параметри оболонки:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD чи -c команда чи -O параметр_shopt\t\t(тільки на початку)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s чи -o параметр\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Введіть `%s -c \"help set\"', щоб отримати більше інформації про параметри "
 "оболонки.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Введіть `%s -c help', щоб отримати більше інформації про вбудовані команди "
 "оболонки.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr ""
 "Щоб повідомити про помилку в програмі, використовуйте команду `bashbug'.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: невірна операція"
@@ -1748,85 +1763,85 @@ msgstr "Невідомий сигнал №"
 msgid "Unknown Signal #%d"
 msgstr "Невідомий сигнал №%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "неправильна заміна: немає заключної `%s' у %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: неможливо означити елемент масиву списком"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "не вдається створити канал для підставляння процесу"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "не вдається створити дочірній процес для підставляння процесу"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "не вдається відкрити іменований канал %s для читання"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "не вдається відкрити іменований канал %s для запису"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "не вдається створити канал для підставляння команди"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "не вдається створити дочірній процес для підставляння команди"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 "command_substitute: не вдається створити копію каналу із файловим "
 "дескриптором 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: параметр нульової довжини чи не вказаний"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: підрядок коротший за 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: неправильна заміна"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: не можна призначити таким чином"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "неправильна заміна: немає заключної \"`\" у %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "нема відповідника: %s"
@@ -1863,16 +1878,16 @@ msgstr "%s: очікувався бінарний оператор"
 msgid "missing `]'"
 msgstr "відсутня `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "неправильний номер сигналу"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: неправильне значення у trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1880,68 +1895,68 @@ msgstr ""
 "run_pending_traps: обробник сигналу є SIG_DFL, %d (%s) повторно надсилається "
 "собі"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: неправильний сигнал %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "помилка імпортування означення функції `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "рівень оболонки (%d) занадто високий, перевстановлено у 1"
 
-#: variables.c:1932
+#: variables.c:1941
 #, fuzzy
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 "make_local_variable: немає контексту функції у поточному оточенні виконання"
 
-#: variables.c:3182
+#: variables.c:3192
 #, fuzzy
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 "all_local_variables: немає контексту функції у поточному оточенні виконання"
 
-#: variables.c:3427
+#: variables.c:3437
 #, fuzzy, c-format
 msgid "%s has null exportstr"
 msgstr "%s: параметр нульової довжини чи не вказаний"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "невірний символ %d у рядку експорту для %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "немає `=' у рядку експорту для %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 "pop_var_context: перший елемент shell_variables не є контекстом функції"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: немає контексту global_variables"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 "pop_scope: перший елемент shell_variables не є тимчасовим оточенням виконання"
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: не вдається відкрити: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, fuzzy, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%d: неправильний дескриптор файлу: %s"
@@ -2019,8 +2034,9 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] ім’я [ім’я ...]"
 
 #: builtins.c:51
+#, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m keymap] [-f файл] [-q ім’я] [-u ім’я] [-r послідовність-"
@@ -2233,7 +2249,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] ім’я [ім’я ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [обмеження]"
 
 #: builtins.c:172
@@ -2241,7 +2258,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [режим-доступу]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [ідентифікатор]"
 
 #: builtins.c:179
@@ -2429,6 +2447,7 @@ msgstr ""
 "    Завершується невдало, якщо ІМ’Я не є визначеним псевдонімом."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2462,6 +2481,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2508,7 +2529,7 @@ msgstr ""
 "    Команда завершується успішно, якщо вказані правильні параметри та не\n"
 "    виникло помилки під час виконання."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2526,7 +2547,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо N менше за 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2544,7 +2565,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо N менше 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2568,7 +2589,7 @@ msgstr ""
 "    Команда повертає код завершення ВБУДОВАНОЇ-КОМАНДИ або помилку, якщо\n"
 "    ВБУДОВАНА-КОМАНДА не є вбудованою командою оболонки."
 
-#: builtins.c:365
+#: builtins.c:367
 #, fuzzy
 msgid ""
 "Return the context of the current subroutine call.\n"
@@ -2597,7 +2618,7 @@ msgstr ""
 "    Команда завершується невдало, якщо оболонка зараз не виконує функцію\n"
 "    або якщо ВИРАЗ є неправильним."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2621,13 +2642,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2660,7 +2686,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо директорію змінити не вдалося."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2689,7 +2715,7 @@ msgstr ""
 "    Команда завершується невдало, якщо вказано неправильний параметр чи\n"
 "    не вдається отримати доступ до поточної робочої директорії."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2705,7 +2731,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завжди успішна."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2717,7 +2743,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завжди успішна."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2729,7 +2755,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завжди завершується невдало."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2766,7 +2792,7 @@ msgstr ""
 "буде\n"
 "    знайдено."
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2838,7 +2864,7 @@ msgstr ""
 "виникло\n"
 "    помилки під час виконання."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2848,7 +2874,7 @@ msgstr ""
 "    \n"
 "    Команда вийшла з ужитку. Дивіться `help declare'."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2876,11 +2902,14 @@ msgstr ""
 "    Команда завершується невдало, якщо вказано невірні параметри, якщо\n"
 "    трапилася помилка або якщо оболонка зараз не виконує функцію."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2892,6 +2921,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2935,7 +2965,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо виникне помилка запису."
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2957,7 +2987,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо трапиться помилка запису."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -3012,7 +3042,7 @@ msgstr ""
 "    Команда завершується невдало, якщо ІМ’Я не є вбудованою командою\n"
 "    оболонки або якщо трапиться помилка під час виконання."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -3034,7 +3064,7 @@ msgstr ""
 "команди\n"
 "    є порожнім рядком, команда завершується успішно."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3119,7 +3149,7 @@ msgstr ""
 "    Команда завершується успішно, якщо знайдено параметр; помилково, якщо\n"
 "    параметри скінчилися або трапилася помилка."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3160,7 +3190,7 @@ msgstr ""
 "    Команда завершується невдало, якщо команду не буде знайдено або якщо\n"
 "    трапиться помилка переспрямування."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3172,7 +3202,7 @@ msgstr ""
 "    Виходить з оболонки, повертаючи статус N. Якщо N не вказано, береться\n"
 "    статус останньої запущеної команди."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3186,7 +3216,7 @@ msgstr ""
 "команду\n"
 "    запущено не у оболонці сеансу."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3241,7 +3271,7 @@ msgstr ""
 "    Команда завершується зі статусом запущених команд, або помилкою, якщо\n"
 "    трапиться помилка."
 
-#: builtins.c:743
+#: builtins.c:751
 #, fuzzy
 msgid ""
 "Move job to the foreground.\n"
@@ -3264,7 +3294,7 @@ msgstr ""
 "    Команда завершується зі статусом завершення завдання, що переведене\n"
 "    у пріоритетний режим, або помилку, якщо трапиться помилка."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3289,7 +3319,7 @@ msgstr ""
 "якщо\n"
 "    трапиться помилка."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3334,7 +3364,7 @@ msgstr ""
 "    Команда завершується невдало, якщо ІМ’Я не вдається знайти або якщо\n"
 "    вказано невірний параметр."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3377,7 +3407,7 @@ msgstr ""
 "    невірний параметр."
 
 # WTF??? history list += history + history file ???
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3446,7 +3476,7 @@ msgstr ""
 "виникло\n"
 "    помилки під час виконання."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3491,7 +3521,7 @@ msgstr ""
 "    виникло помилки під час виконання. При використанні -x команда\n"
 "    завершується зі статусом завершення КОМАНДИ."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3523,7 +3553,7 @@ msgstr ""
 "    Команда завершується невдало, якщо вказано неправильний параметр чи\n"
 "    ЗАВДАННЯ."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3565,7 +3595,7 @@ msgstr ""
 "    Команда завершується успішно, якщо вказані правильні аргументи та не\n"
 "    трапилося помилки під час виконання."
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3652,7 +3682,7 @@ msgstr ""
 "    Якщо результатом обчислення останнього АРГУМЕНТУ є 0, let повертає 1,\n"
 "    інакше — 0."
 
-#: builtins.c:971
+#: builtins.c:979
 #, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
@@ -3690,14 +3720,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Читає рядок зі стандартного вводу та розбиває його на поля.\n"
@@ -3742,7 +3775,7 @@ msgstr ""
 "час\n"
 "    очікування, або якщо із -u вказано неправильний файловий дескриптор."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3763,7 +3796,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає N, або помилку, якщо викликана не у функції чи сценарії."
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3830,7 +3863,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3938,7 +3971,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується успішно, якщо вказані правильні параметри."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3975,7 +4008,7 @@ msgstr ""
 "ІМ’Я\n"
 "    доступне лише для читання."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -4008,7 +4041,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується успішно, якщо вказано правильні параметри та ІМЕНА."
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4045,7 +4078,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується успішно, якщо вказано правильні параметри та ІМЕНА."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4063,7 +4096,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо N менше за нуль чи більше за $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4087,7 +4120,7 @@ msgstr ""
 "або\n"
 "    помилку, якщо ФАЙЛ не вдається прочитати."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4112,7 +4145,7 @@ msgstr ""
 "    Команда завершується невдало, якщо не ввімкнене керування завданнями чи\n"
 "    якщо трапиться помилка."
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -4272,7 +4305,7 @@ msgstr ""
 "вказано\n"
 "    невірний аргумент чи ВИРАЗ хибний."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4285,7 +4318,7 @@ msgstr ""
 "останнім\n"
 "    аргументом має бути `]'."
 
-#: builtins.c:1320
+#: builtins.c:1330
 #, fuzzy
 msgid ""
 "Display process times.\n"
@@ -4305,7 +4338,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завжди успішна."
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
@@ -4382,7 +4415,7 @@ msgstr ""
 "    Команда завершується успішно, якщо вказані правильні параметри та "
 "СИГНАЛИ."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4434,7 +4467,8 @@ msgstr ""
 "якщо\n"
 "    хоч одне з них не вдасться знайти."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4463,6 +4497,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4521,7 +4558,7 @@ msgstr ""
 "    Команда завершується невдало, якщо вказано неправильний параметр чи\n"
 "    трапилася помилка під час виконання."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4555,21 +4592,22 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується успішно, якщо вказано правильну МАСКУ та параметри."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Чекає завершення виконання завдання та повертає його код завершення.\n"
 "    \n"
@@ -4585,7 +4623,7 @@ msgstr ""
 "вказано\n"
 "    неправильні параметри чи ІДЕНТИФІКАТОР."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4612,7 +4650,7 @@ msgstr ""
 "вказано\n"
 "    неправильний ІДЕНТИФІКАТОР чи параметр."
 
-#: builtins.c:1497
+#: builtins.c:1510
 #, fuzzy
 msgid ""
 "Execute commands for each member in a list.\n"
@@ -4634,7 +4672,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення останньої виконаної команди."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4664,7 +4702,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення останньої виконаної команди."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4703,7 +4741,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення останньої виконаної команди."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4731,7 +4769,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення ЛАНЦЮЖКА-КОМАНД."
 
-#: builtins.c:1567
+#: builtins.c:1580
 #, fuzzy
 msgid ""
 "Execute commands based on pattern matching.\n"
@@ -4751,7 +4789,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення останньої виконаної команди."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4784,7 +4822,7 @@ msgstr ""
 "    Команда повертає код завершення останньої виконаної команди або нуль,\n"
 "    якщо жодна з перевірених умов не була істинною."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4802,7 +4840,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення останньої виконаної команди."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4821,7 +4859,7 @@ msgstr ""
 "    Команда повертає код завершення останньої виконаної команди."
 
 # WTF? How can it return exit code of _asynchronous_ process...
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4845,7 +4883,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає код завершення КОМАНДИ."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4871,7 +4909,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується невдало, якщо ІМ’Я є незмінним."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4890,7 +4928,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Конструкція повертає код завершення останньої виконаної команди."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4915,7 +4953,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда повертає статус продовженого завдання."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4933,7 +4971,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується успішно, якщо результат обчислення ненульовий."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4982,7 +5020,7 @@ msgstr ""
 "    Код завершення:\n"
 "    Команда завершується успішно, якщо ВИРАЗ істинний."
 
-#: builtins.c:1713
+#: builtins.c:1726
 #, fuzzy
 msgid ""
 "Common shell variable names and usage.\n"
@@ -5086,7 +5124,7 @@ msgstr ""
 "    HISTIGNORE\tРозділений двокрапкою список шаблонів, що використовуються\n"
 "    \t\tпри визначенні, чи зберігати команду у списку історії.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5144,7 +5182,7 @@ msgstr ""
 "    Команда завершується невдало, якщо вказаний неправильний аргумент чи\n"
 "    якщо не вдається змінити поточну директорію."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5195,7 +5233,7 @@ msgstr ""
 "    Команда завершується невдало, якщо вказано невірний аргумент чи якщо\n"
 "    не вдається змінити поточну директорію."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5250,7 +5288,7 @@ msgstr ""
 "якщо\n"
 "    трапиться помилка."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5286,7 +5324,7 @@ msgstr ""
 "    Команда завершується успішно, якщо ПАРАМЕТР ввімкнено; невдало, якщо\n"
 "    вказано неправильні параметри чи ПАРАМЕТР вимкнено."
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5305,8 +5343,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5344,7 +5382,7 @@ msgstr ""
 "або\n"
 "    якщо трапиться помилка запису чи присвоєння."
 
-#: builtins.c:1913
+#: builtins.c:1926
 #, fuzzy
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
@@ -5389,7 +5427,7 @@ msgstr ""
 "    Команда завершується успішно, якщо вказано правильні параметри та не\n"
 "    трапиться помилки під час виконання."
 
-#: builtins.c:1941
+#: builtins.c:1954
 #, fuzzy
 msgid ""
 "Display possible completions depending on the options.\n"
@@ -5412,7 +5450,7 @@ msgstr ""
 "    Команда завершується успішно, якщо вказано правильні параметри і не\n"
 "    трапиться помилки під час виконання."
 
-#: builtins.c:1956
+#: builtins.c:1969
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
@@ -5467,7 +5505,7 @@ msgstr ""
 "    Команда завершується успішно, якщо вказано правильні параметри та\n"
 "    вказівки завершень для ІМЕН існують."
 
-#: builtins.c:1986
+#: builtins.c:1999
 #, fuzzy
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
@@ -5547,7 +5585,7 @@ msgstr ""
 "або\n"
 "    якщо МАСИВ є незмінним."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 32b989046f4d9b7ea9637b32b71bc2c3f556b4cd..71e750021aa9911214b999f5cec14f80ba1bba37 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index 2f4484e56119b59417d8c598836562e610da0aeb..1f3326055e42ba25e3517959649eb92c54b07fe5 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,67 +1,72 @@
 # Vietnamese translation for BASH (Bourne Again SHell).
-# Copyright © 2010 Free Software Foundation, Inc.
+# Copyright © 2012 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
 # Clytie Siddall <clytie@riverland.net.au>, 2008, 2009, 2010.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bash 4.1\n"
+"Project-Id-Version: bash-4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
-"PO-Revision-Date: 2010-02-11 19:42+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
+"PO-Revision-Date: 2012-03-04 14:59+0700\n"
+"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "sai mảng in thấp"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr "%s: không thể chuyển đổi mảng theo số mũ sang mảng kết hợp"
+msgstr "%s: không thể chuyển đổi mảng kiểu chỉ số sang mảng kết hợp"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
-msgstr "%s: khoá màng kết hợp không hợp lệ"
+msgstr "%s: khoá mng kết hợp không hợp lệ"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
-msgstr "%s: không thể cấp phát cho chỉ số không thuộc số"
+msgstr "%s: không thể gán cho chỉ số không thuộc kiểu số"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: phải sử dụng chữ thấp khi gán mảng kết hợp"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: không thể tạo %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr "bash_execute_unix_command: không tìm thấy sơ đồ phím cho câu lệnh"
+msgstr "bash_execute_unix_command: không tìm thấy ánh xạ cho câu lệnh"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
-"%s: ký tự khác khoảng trắng đầu tiên không phải là dấu sổ chéo ngược « / »"
+"%s: ký tự khác khoảng trắng đầu tiên không phải là dấu sổ chéo ngược `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
-msgstr "thiếu « %c » đóng trong %s"
+msgstr "thiếu đấu đóng `%c' trong %s"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: thiếu dấu hai chấm định giới"
@@ -69,38 +74,38 @@ msgstr "%s: thiếu dấu hai chấm định giới"
 #: builtins/alias.def:132
 #, c-format
 msgid "`%s': invalid alias name"
-msgstr "« %s »: sai đặt tên bí danh"
+msgstr "`%s': sai tên bí danh"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "chưa bật sửa đổi dòng"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
-msgstr "« %s »: tên sơ đồ phím không hợp lệ"
+msgstr "`%s': tên ánh xạ phím không hợp lệ"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: không thể đọc %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
-msgstr "« %s »: không thể hủy tổ hợp"
+msgstr "`%s': không thể tháo"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
-msgstr "« %s »: tên hàm không rõ"
+msgstr "`%s': tên hàm không rõ"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s không được tổ hợp với phím.\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s có thể được gọi thông qua "
@@ -111,11 +116,7 @@ msgstr "đếm vòng"
 
 #: builtins/break.def:137
 msgid "only meaningful in a `for', `while', or `until' loop"
-msgstr ""
-"chỉ có nghĩa trong vòng lặp:\n"
-" • for\ttrong\n"
-" • while\ttrong khi\n"
-" • until\tđến khi"
+msgstr "chỉ có nghĩa trong vòng lặp `for', `while' hay `until'"
 
 #: builtins/caller.def:133
 msgid ""
@@ -125,22 +126,26 @@ msgid ""
 msgstr ""
 "Trả lại ngữ cảnh của lời gọi thường trình con hiện thời.\n"
 "\n"
-"    Không có BTHỰC thì trà lại "
+"    Không có BIỂUTHỨC thì trả lại "
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
-msgstr "Chưa đặt biến môi trường HOME (nhà)"
+msgstr "Chưa đặt biến môi trường HOME"
+
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "quá nhiều đối số"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
-msgstr "Chưa đặt biến môi trường OLDPWD (mật khẩu cũ)"
+msgstr "Chưa đặt biến môi trường OLDPWD"
 
 #: builtins/common.c:101
 #, c-format
 msgid "line %d: "
 msgstr "dòng %d:"
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "cảnh báo :"
@@ -150,11 +155,7 @@ msgstr "cảnh báo :"
 msgid "%s: usage: "
 msgstr "%s: sử dụng:"
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "quá nhiều đối số"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: tùy chọn cần thiết một đối số"
@@ -169,7 +170,7 @@ msgstr "%s: cần thiết đối số thuộc số"
 msgid "%s: not found"
 msgstr "%s: không tìm thấy"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: tùy chọn không hợp lệ"
@@ -179,10 +180,10 @@ msgstr "%s: tùy chọn không hợp lệ"
 msgid "%s: invalid option name"
 msgstr "%s: tên tùy chọn không hợp lệ"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
-msgstr "« %s »: không phải đồ nhận diện hợp lệ"
+msgstr "`%s': không phải đồ nhận diện hợp lệ"
 
 #: builtins/common.c:238
 msgid "invalid octal number"
@@ -192,7 +193,7 @@ msgstr "số bát phân không hợp lệ"
 msgid "invalid hex number"
 msgstr "số thập lục không hợp lệ"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "số không hợp lệ"
 
@@ -204,9 +205,9 @@ msgstr "%s: sai xác định tín hiệu"
 #: builtins/common.c:257
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr "« %s »: không phải đặc tả hợp lệ cho PID hoặc công việc"
+msgstr "`%s': không phải một pid hoặc công việc"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: biến chỉ đọc"
@@ -278,26 +279,26 @@ msgstr "%s: gặp lỗi khi lấy thư mục hiện thời: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: đặc tả công việc mơ hồ"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: tên hành vi không hợp lệ"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: không có đặc tả điền nốt"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "cảnh báo: tùy chọn « -F » có lẽ không hoạt động như mong đợi"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "cảnh báo: tùy chọn « -C » có lẽ không hoạt động như mong đợi"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "hiện thời không thực thi chức năng điền nốt"
 
@@ -309,7 +310,7 @@ msgstr "chỉ có thể được dùng trong một hàm"
 msgid "cannot use `-f' to make functions"
 msgstr "không thể dùng « -f » để tạo hàm"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: hàm chỉ đọc"
@@ -319,7 +320,7 @@ msgstr "%s: hàm chỉ đọc"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: không thể phá hủy biến mảng bằng cách này"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: không thể chuyển đổi mảng kết hợp sang mảng theo số mũ"
@@ -348,8 +349,8 @@ msgstr "%s không phải được nạp động"
 msgid "%s: cannot delete: %s"
 msgstr "%s: không thể xoá: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: là thư mục"
@@ -364,8 +365,7 @@ msgstr "%s: không phải là tập tin chuẩn"
 msgid "%s: file is too large"
 msgstr "%s: tập tin quá lớn"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: không thể thực hiện tập tin nhị phân"
@@ -451,7 +451,7 @@ msgstr[0] "Câu lệnh trình bao tương ứng với từ khoá `"
 msgid ""
 "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
 msgstr ""
-"không có chủ đề trợ giúp tương ứng với « %s ». Hãy thử câu lệnh:\n"
+"không có chủ đề trợ giúp tương ứng với `%s'. Hãy thử câu lệnh:\n"
 " • help help\n"
 " • man -k %s\n"
 " • info %s"
@@ -489,7 +489,7 @@ msgstr "chỉ có thể dùng một của những tùy chọn « -a », « -n »
 msgid "history position"
 msgstr "vị trí lịch sử"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: lỗi mở rộng lịch sử"
@@ -512,7 +512,7 @@ msgstr "%s: đối số phải là mã số của tiến trình (PID) hoặc cô
 msgid "Unknown error"
 msgstr "Lỗi không rõ"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "đợi biểu thức"
 
@@ -521,12 +521,12 @@ msgstr "đợi biểu thức"
 msgid "%s: not an indexed array"
 msgstr "%s: không phải biến phụ lục"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: sai xác định bộ mô tả tập tin"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: bộ mô tả tập tin không hợp lệ: %s"
@@ -554,34 +554,34 @@ msgstr "%s: tên biến mảng vẫn trống"
 msgid "array variable support required"
 msgstr "cần thiết hỗ trợ biến mảng"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
-msgstr "« %s »: thiếu ký tự định dạng"
+msgstr "`%s': thiếu ký tự định dạng"
 
-#: builtins/printf.def:448
-#, fuzzy, c-format
+#: builtins/printf.def:451
+#, c-format
 msgid "`%c': invalid time format specification"
-msgstr "%s: sai xác định quá hạn"
+msgstr "`%c': đặc tả định dạng cho thời gian không đúng"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "« %c »: ký tự định dạng không hợp lệ"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "cảnh báo : %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "thiếu chữ số thập phân cho \\x"
 
-#: builtins/printf.def:855
-#, fuzzy, c-format
+#: builtins/printf.def:869
+#, c-format
 msgid "missing unicode digit for \\%c"
-msgstr "thiếu chữ số thập phân cho \\x"
+msgstr "thiếu chữ số unicode cho \\%c"
 
 #: builtins/pushd.def:195
 msgid "no other directory"
@@ -730,17 +730,17 @@ msgstr ""
 "\n"
 "\tDựng sẵn « dirs » sẽ hiển thị đống thư mục."
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: sai xác định quá hạn"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "lỗi đọc: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 "chỉ có thể « return » (trở về) từ một hàm hoặc văn lệnh được gọi từ nguồn"
@@ -749,17 +749,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "không thể hủy đặt đồng thời một hàm VÀ một biến"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: không thể hủy đặt"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: không thể hủy đặt: %s chỉ đọc"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: không phải biến mảng"
@@ -773,11 +773,11 @@ msgstr "%s: không phải hàm"
 msgid "shift count"
 msgstr "đếm dời"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "không thể đồng thời đặt và hủy đặt các tùy chọn trình bao"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: tên tùy chọn trình bao không hợp lệ"
@@ -802,7 +802,7 @@ msgstr "không thể ngưng trình bao đăng nhập"
 #: builtins/type.def:234
 #, c-format
 msgid "%s is aliased to `%s'\n"
-msgstr "%s có bí danh tới « %s »\n"
+msgstr "%s có bí danh tới `%s'\n"
 
 #: builtins/type.def:255
 #, c-format
@@ -819,7 +819,7 @@ msgstr "%s là hàm\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s là dựng sẵn trình bao\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s là %s\n"
@@ -829,26 +829,26 @@ msgstr "%s là %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s có ký hiệu lộn xộn (%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: đối số giới hạn không hợp lệ"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "« %c »: câu lệnh sai"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: không thể lấy giới hạn: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "giới hạn"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: không thể sửa đổi giới hạn: %s"
@@ -867,7 +867,7 @@ msgstr "« %c »: toán từ chế độ tượng trưng không hợp lệ"
 msgid "`%c': invalid symbolic mode character"
 msgstr "« %c »: ký tự chế độ tượng trưng không hợp lệ"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr "dòng"
 
@@ -881,23 +881,23 @@ msgstr "câu lệnh cuối cùng: %s\n"
 msgid "Aborting..."
 msgstr "Hủy bỏ..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "lỗi lệnh không rõ"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "kiểu lệnh sai"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "bộ kết nối sai"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "sai nhảy"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: biến chưa tổ hợp"
@@ -912,102 +912,117 @@ msgstr "\tquá hạn trong khi đợi dữ liệu nhập nên tự động đăn
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "không thể chuyển hướng đầu vào tiêu chuẩn từ « /dev/null »: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "ĐỊNH DẠNG THỜI GIAN: « %c »: ký tự định dạng không hợp lệ"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "lỗi ống dẫn"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: bị hạn chế: không thể ghi rõ dấu sổ chéo « / » trong tên câu lệnh"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: không tìm thấy lệnh"
 
-#: execute_cmd.c:4959
-#, fuzzy, c-format
+#: execute_cmd.c:5098
+#, c-format
 msgid "%s: %s"
-msgstr "%s là %s\n"
+msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: bộ thông dịch sai"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: không thể thực hiện tập tin nhị phân"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s là dựng sẵn trình bao\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "không thể nhân đôi fd %d tới fd %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "vượt quá giới hạn mức độ đệ quy của biểu thức"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "trán ngược đống đệ quy"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "lỗi cú pháp trong biểu thức"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "thử gán cho đồ không phải biến"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "chia cho không"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "lỗi (bug): hiệu bài ấn định biểu thức sai"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "đợi dấu hai chấm « : » cho biểu thức điều kiện"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "số mũ nhỏ hơn 0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "đợi đồ nhận diện đằng sau tăng/giảm dần sẵn"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "thiếu dấu ngoặc đóng « ) »"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "lỗi cú pháp: đợi toán hạng"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "lỗi cú pháp: toán tử số học không hợp lệ"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr "%s%s%s: %s (hiệu bài lỗi là « %s »)"
+msgstr "%s%s%s: %s (hiệu bài lỗi là \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "cơ số (số học) không hợp lệ"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "cơ số có giá trị quá lớn"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: lỗi biểu thức\n"
@@ -1016,165 +1031,165 @@ msgstr "%s: lỗi biểu thức\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: không thể truy cập thư mục cấp trên"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "không thể đặt lại chế độ nodelay (không hoãn) cho fd %d"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "không thể cấp phát bộ mô tả tập tin mớ cho dữ liệu nhập bash từ fd %d"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: đã có bộ đệm cho fd mới %d"
 
 # Nghĩa chữ ?
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp pipe"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "tiến trình con đã tạo (PID %d) xuất hiện trong công việc đang chạy %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "đang xoá công việc bị dừng chạy %d với nhóm tiến trình %ld"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: tiến trình %5ld (%s) trong the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: pid %5ld (%s) được đánh dấu vẫn hoạt động"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: không có PID (mã số tiến trình) như vậy"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "Tín hiệu %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "Hoàn tất"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "Bị dừng"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Bị dừng(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "Đang chạy"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "Hoàn tất(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "Thoát %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "Không rõ trạng thái"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(lõi bị đổ)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "setpgid tiến trình con (%ld thành %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld không phải là tiến trình con của trình bao này"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Không có mục ghi về tiến trình %ld"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: công việc %d bị dừng chạy"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: công việc bị chấm dứt"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: công việc %d đã chạy trong nền"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: đang bật WNOHANG để tránh bị chặn vô hạn"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: dòng %d:"
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (lõi bị đổ)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd bây giờ: %s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp bị lỗi"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: kỷ luật dòng"
 
 # Nghĩa chữ : dừng dịch
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "không thể đặt nhóm tiến trình cuối cùng (%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "không có điều khiển công việc trong trình bao này"
 
@@ -1245,7 +1260,7 @@ msgstr "register_alloc: %p đã có trong bảng như được cấp phát ?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p đã có trong bảng như còn rảnh ?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "cơ số không hợp lệ"
 
@@ -1268,22 +1283,22 @@ msgstr "%s: đặc tả đường dẫn mạng sai"
 msgid "network operations not supported"
 msgstr "không hỗ trợ thao tác mạng"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: không thể chuyển đổi miền địa phương (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: không thể chuyển đổi miền địa phương (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: không thể chuyển đổi miền địa phương (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: không thể chuyển đổi miền địa phương (%s): %s"
@@ -1314,150 +1329,149 @@ msgstr "lỗi cú pháp: dấu chấm phẩy « ; » bất thường"
 msgid "syntax error: `((%s))'"
 msgstr "lỗi cú pháp: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: kiểu chỉ dẫn sai %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
-"tài liệu này ở dòng %d định giới bằng kết thúc tập tin (mong đợi « %s »)"
+msgstr "tài liệu này ở dòng %d định giới bằng kết thúc tập tin (mong đợi `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: chỉ dẫn chuyển hướng « %d » ở ngoại phạm vi"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "gặp kết thúc tập tin bất thường trong khi tìm « %c » tương ứng"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "gặp kết thúc tập tin bất thường trong khi tìm « ]] »"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr "gặp lỗi cú pháp trong biểu thức điều kiện: hiệu bài bất thường « %s »"
+msgstr "gặp lỗi cú pháp trong biểu thức điều kiện: hiệu bài bất thường `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "gặp lỗi cú pháp trong biểu thức điều kiện"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
-msgstr "gặp hiệu bài bất thường « %s », còn mong đợi dấu ngoặc đóng « ) »"
+msgstr "gặp hiệu bài bất thường `%s', còn mong đợi dấu ngoặc đóng « ) »"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "đợi dấu đóng ngoặc « ) »"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
-msgstr "đối số bất thường « %s » tới toán tử nguyên phân điều kiện"
+msgstr "đối số bất thường `%s' tới toán tử nguyên phân điều kiện"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "đối số bất thường tới toán tử nguyên phân điều kiện"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "hiệu bài bất thường « %s » còn đợi toán tử nhị phân điều kiện"
+msgstr "hiệu bài bất thường `%s' còn đợi toán tử nhị phân điều kiện"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "đợi toán tử nhị phân điều kiện"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
-msgstr "đối số bất thường « %s » tới toán tử nhị phân điều kiện"
+msgstr "đối số bất thường `%s' tới toán tử nhị phân điều kiện"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "đối số bất thường tới toán tử nhị phân điều kiện"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "gặp hiệu bài bất thường « %c » trong câu lệnh điều kiện"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
-msgstr "gặp hiệu bài bất thường « %s » trong câu lệnh điều kiện"
+msgstr "gặp hiệu bài bất thường `%s' trong câu lệnh điều kiện"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "gặp hiệu bài bất thường « %d » trong câu lệnh điều kiện"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
-msgstr "gặp lỗi cú pháp ở gần hiệu bài bất thường « %s »"
+msgstr "gặp lỗi cú pháp ở gần hiệu bài bất thường `%s'"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
-msgstr "gặp lỗi cú pháp gần « %s »"
+msgstr "gặp lỗi cú pháp gần `%s'"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "lỗi cú pháp: kết thúc tập tin bất thường"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "lỗi cú pháp"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
-msgstr "Dùng « %s » để rời trình bao.\n"
+msgstr "Dùng `%s' để rời trình bao.\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 "gặp kết thúc tập tin bất thường trong khi tìm dấu ngoặc đóng « ) » tương ứng"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
-msgstr "completion: không tìm thấy hàm « %s »"
+msgstr "completion: không tìm thấy hàm `%s'"
 
 #: pcomplib.c:182
 #, c-format
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: bộ kết nối sai « %d »"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: sai đặt bộ mô tả tập tin"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: con trỏ tập tin NULL (vô giá trị)"
 
 # Nghĩa chữ ?
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: « %c »: ký tự định dạng không hợp lệ"
@@ -1496,33 +1510,33 @@ msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 "/dev/(tcp|udp)/host/port không được hỗ trợ khi không có chức năng chạy mạng"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "gặp lỗi chuyển hướng nên không thể nhân đôi fd"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "không tìm thấy « /tmp », hãy tạo."
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "« /tmp » phải là tên thư mục hợp lệ"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: tùy chọn không hợp lệ"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "Không có tên."
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "bash của GNU, phiên bản %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1531,43 +1545,43 @@ msgstr ""
 "Sử dụng:\t%s [tùy chọn GNU dài] [tùy chọn] ...\n"
 "\t%s [tùy chọn GNU dài] [tùy chọn] tập-tin-văn-lệnh ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "Tùy chọn GNU dài:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Tùy chọn trình bao :\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD hoặc -c lệnh or -O shopt_option\t\t(chỉ cuộc gọi)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s hoặc -o tùy chọn\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr ""
 "Gõ câu lệnh trợ giúp « %s -c \"help set\" » để xem thêm thông tin về các tùy "
 "chọn trình bao.\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr ""
 "Gõ câu lệnh trợ giúp « %s -c help » để xem thêm thông tin về các câu lệnh "
 "trình bao dựng sẵn.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Dùng lệnh « bashbug » để thông báo lỗi.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: thao tác không hợp lệ"
@@ -1741,72 +1755,72 @@ msgstr "Không rõ tín hiệu #"
 msgid "Unknown Signal #%d"
 msgstr "Không rõ tín hiệu #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
-msgstr "sai thay thế: không có « %s » đóng trong %s"
+msgstr "sai thay thế: không có `%s' đóng trong %s"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: không thể gán danh sách cho bộ phận của mảng"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "không thể tạo ống dẫn để thay thế tiến trình"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "không thể tạo tiến trình con để thay thế tiến trình"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "không thể mở ống dẫn đặt tên %s để đọc"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "không thể mở ống dẫn đặt tên %s để ghi"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "không thể nhân đôi ống dẫn đặt tên %s thành fd %d"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "không thể tạo ống dẫn để thay thế lệnh"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "không thể tạo tiến trình con để thay thế lệnh"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: không thể nhân đôi ống dẫn thành fd 1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: tham số vô giá trị hoặc chưa được đặt"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: biểu thức chuỗi phụ < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: sai thay thế"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: không thể gán bằng cách này"
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
@@ -1814,12 +1828,12 @@ msgstr ""
 "phiên bản trình bao mới sẽ ép buộc ước lượng dưới dạng một hàm thay thế số "
 "học"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "sai thay thế: không có « ` » đóng trong %s"
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "không khớp: %s"
@@ -1856,16 +1870,16 @@ msgstr "%s: đợi toán tử nhị phân"
 msgid "missing `]'"
 msgstr "thiếu dấu ngoặc vụ đóng « ] »"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "số thứ tự tín hiệu không hợp lệ"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: giá trị sai trong danh sách trap_list[%d]: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
@@ -1873,75 +1887,74 @@ msgstr ""
 "run_pending_traps: bộ xử lý tín hiệu là SIG_DFL, đang gửi lại %d (%s) cho "
 "mình"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: tín hiệu sai %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
-msgstr "gặp lỗi khi nhập lời xác định hàm cho « %s »"
+msgstr "gặp lỗi khi nhập lời xác định hàm cho `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "cấp trình bao (%d) quá cao nên đặt lại thành 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: không có ngữ cảnh hàm ở phạm vi hiện thời"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: không có ngữ cảnh hàm ở phạm vi hiện thời"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s có chuỗi xuất (exportstr) vô giá trị"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "sai ký tự %d trong chuỗi exportstr cho %s"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "không có dấu bằng « = » trong chuỗi exportstr cho %s"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 "pop_var_context: đầu của shell_variables (các biến trình bao) không phải là "
 "ngữ cảnh hàm"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 "pop_var_context: không có ngữ cảnh global_variables (các biến toàn cục)"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 "pop_scope: đầu của shell_variables (các biến trình bao) không phải là phạm "
 "vi môi trường tạm thời"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: không thể mở dưới dạng TẬP_TIN"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: sai đặt giá trị cho bộ mô tả tập tin vết"
 
 #: version.c:46
-#, fuzzy
 msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Tác quyền © năm 2009 của Tổ chức Phần mềm Tự do."
+msgstr "Tác quyền © năm 2011 của Tổ chức Quỹ  Phần mềm Tự do, Inc."
 
 #: version.c:47
 msgid ""
@@ -2009,8 +2022,9 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] tên [tên ...]"
 
 #: builtins.c:51
+#, fuzzy
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 "bind [-lpvsPVS] [-m sơ_đồ_phím] [-f tên_tập_tin] [-q tên] [-u tên] [-r "
@@ -2034,9 +2048,8 @@ msgid "caller [expr]"
 msgstr "caller [b_thức]"
 
 #: builtins.c:64
-#, fuzzy
 msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [tmục]"
+msgstr "cd [-L|-P] [thư mục]"
 
 #: builtins.c:66
 msgid "pwd [-LP]"
@@ -2059,14 +2072,12 @@ msgid "command [-pVv] command [arg ...]"
 msgstr "command [-pVv] command [arg ...]"
 
 #: builtins.c:76
-#, fuzzy
 msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [tên[=giá_trị] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [tên[=giá-trị] ...]"
 
 #: builtins.c:78
-#, fuzzy
 msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] tên[=giá_trị] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] tên[=giá-trị] ..."
 
 #: builtins.c:80
 msgid "local [option] name[=value] ..."
@@ -2177,9 +2188,8 @@ msgid "return [n]"
 msgstr "return [n]"
 
 #: builtins.c:140
-#, fuzzy
 msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o tùy_chọn] [đối_số ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o tên-tùy-chọn] [--] [đối-số ...]"
 
 #: builtins.c:142
 msgid "unset [-f] [-v] [name ...]"
@@ -2193,12 +2203,8 @@ msgstr ""
 "export -p"
 
 #: builtins.c:146
-#, fuzzy
 msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
-"readonly [-af] [tên[=giá_trị] ...]\n"
-"\thay\n"
-"readonly -p"
+msgstr "readonly [-aAf] [tên[=giá_trị] ...] hay readonly -p"
 
 #: builtins.c:148
 msgid "shift [n]"
@@ -2237,7 +2243,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] tên [tên ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [giới_hạn]"
 
 #: builtins.c:172
@@ -2245,7 +2252,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [chế_độ]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "đợi [id]"
 
 #: builtins.c:179
@@ -2430,6 +2438,7 @@ msgstr ""
 "Trả lại thành công nếu không có TÊN là một bí danh không tồn tại."
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2463,6 +2472,8 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2502,7 +2513,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tbind trả lại 0 nếu không đưa ra tùy chọn không nhận ra hay gặp lỗi."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2520,7 +2531,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrạng thái thoát là 0 nếu N không nhỏ hơn hay bằng 1."
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2539,7 +2550,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrạng thái thoát là 0 nếu N không nhỏ hơn hay bằng 1."
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2565,7 +2576,7 @@ msgstr ""
 "\thoặc sai nếu SHELL-BUILTIN không phải là một\n"
 "\tdựng sẵn trình bao."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2593,7 +2604,7 @@ msgstr ""
 "\tTrả lại 0 nếu trình bao đang chạy chức năng trình bao,\n"
 "\t\tB_THỨC cũng hợp lệ."
 
-#: builtins.c:383
+#: builtins.c:385
 #, fuzzy
 msgid ""
 "Change the shell working directory.\n"
@@ -2617,44 +2628,55 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
 "when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
-"Chuyển đổi thư mục làm việc của trình bao.\n"
-"\n"
-"\tChuyển đổi thư mục hiện thời sang TMỤC.\n"
-"\tThư mục mặc định là giá trị của biến trình bao HOME.\n"
-"\n"
-"\tBiến CDPATH thì xác định đường dẫn tìm kiếm cho thư mục chứa TMỤC.\n"
-"\tCác tên thư mục xen kẽ trong CDPATH cũng định giới bằng dấu hai chấm « : "
-"».\n"
-"\tMột tên thư mục trống tương đương với thư mục hiện tại.\n"
-"\tNếu TMỤC bắt đầu với dấu chéo « / » thì không dùng CDPATH.\n"
-"\n"
-"\tNếu không tìm thấy thư mục, và đặt biến trình bao « cdable_vars »,\n"
-"\t\tthì giả sử từ là một tên biến.\n"
-"\tNếu biến đó có giá trị thì giá trị này được dùng cho TMỤC.\n"
-"\n"
-"\tTùy chọn:\n"
-"\t\t-L\tép buộc theo liên kết tượng trưng\n"
-"\t\t-P\tdùng cấu trúc thư mục vật lý mà không theo liên kết tượng trưng\n"
-"\n"
-"\tMặc định là theo liên kết tượng trưng, như là tùy chọn « -L » đưa ra.\n"
-"\n"
-"\tTrạng thái thoát:\n"
-"\tTrả lại 0 nếu thư mục được chuyển đổi; không thì khác số không."
+"Chuyển đổi thư mục làm việc của shell.\n"
+"    \n"
+"    Chuyển đổi thư mục hiện thời sang THƯMỤC.Thư mục mặc định là giá trị "
+"của\n"
+"     biến HOME.\n"
+"    \n"
+"    Biến CDPATH thì xác định đường dẫn tìm kiếm cho thư mục chứa.\n"
+"    THƯMỤC. Các tên thư mục xen kẽ trong CDPATH cũng định giới bằng dấu hai "
+"chấm (:).\n"
+"    Một tên thư mục trống tương đương với thư mục hiện tại. Nếu THƯMỤC bắt "
+"đầu\n"
+"    với dấu chéo (/) thì không dùng CDPATH.\n"
+"    \n"
+"    Nếu không tìm thấy thư mục, và biến `cdable_vars' được đặt,\n"
+"    thì lệnh sẽ giả định là một tên biến. Nếu biến đó có giá trị,\n"
+"    thì giá trị này được dùng cho THƯMỤC.\n"
+"    \n"
+"    Tùy chọn:\n"
+"        -L\tép buộc cho phép liên kết tượng trưng\n"
+"        -P\tdùng cấu trúc thư mục vật lý mà không theo liên kết tượng trưng\n"
+"    \n"
+"        -e\tnếu tùy chọn -P được áp dụng, và thư mục làm việc hiện hành\n"
+"    \tkhông thể được phân giải được, thoát ra với trạng thái khác không\n"
+"    Mặc định là cho phép liên kết tượng trưng, như là tùy chọn `-L' đưa ra.\n"
+"    \n"
+"    Trạng thái thoát:\n"
+"    Trả về 0 nếu thư mục được chuyển đổi, và nếu $PWD được đặt thành công "
+"khi\n"
+"    -P được sử dụng; không thì khác số không."
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2682,7 +2704,7 @@ msgstr ""
 "\t\tTrả lại 0 nếu không đưa ra tùy chọn sai\n"
 "\t\tvà nếu đọc được thư mục hiện thời."
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2698,7 +2720,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng thành công."
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2710,7 +2732,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng thành công."
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2722,7 +2744,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng không thành công."
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2756,8 +2778,7 @@ msgstr ""
 "Trả lại trạng thái thoát của câu LỆNH, hoặc bị lỗi nếu không tìm thấy câu "
 "LỆNH."
 
-#: builtins.c:479
-#, fuzzy
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2796,38 +2817,39 @@ msgid ""
 msgstr ""
 "Đặt các giá trị và thuộc tính của biến.\n"
 "\n"
-"\tTuyên bố mỗi biến và gán cho nó một số thuộc tính.\n"
-"\tKhông đưa ra TÊN thì hiển thị các thuộc tính và giá trị của mọi giá trị.\n"
+"\tKhai báo biến và gán cho nó một số thuộc tính. Nếu không đưa ra TÊN \n"
+"\tthì hiển thị các thuộc tính và giá trị của mọi giá trị.\n"
 "\n"
 "\tTùy chọn:\n"
-"\t\t-f\thạn chế hành động, hoặc hiển thị đối với tên và mô tả của chức năng\n"
-"\t\t-F\thiển thị chỉ đối với tên chức năng\n"
+"\t\t-f\thạn chế hành động, hoặc hiển thị tên hàm và định nghĩa\n"
+"\t\t-F\thạn chế về trình bày để chỉ hiển thị tên mà thôi\n"
 "\t\t\t(và số thứ tự dòng và tập tin nguồn khi gỡ lỗi)\n"
+"\t\t-g\ttạo biến toàn cục khi sử dụng trong hàm của shell; nếu không\n"
+"\t\t\tthì bị bỏ qua\n"
 "\t\t-p\thiển thị các thuộc tính và giá trị của mỗi TÊN\n"
 "\n"
-"\tTùy chọn cũng đặt thuộc tính:\n"
-"\t\t-a\tđặt TÊN là mảng theo số mũ (nếu được hỗ trợ)\n"
-"\t\t-A\tđặt TÊN là mảng kết hợp (nếu được hỗ trợ)\n"
-"\t\t-i\tđặt TÊN có thuộc tính « integer » (số nguyên)\n"
+"\tTùy chọn dùng để đặt thuộc tính:\n"
+"\t\t-a\ttạo TÊN là mảng chỉ số (nếu được hỗ trợ)\n"
+"\t\t-A\ttạo TÊN là mảng kết hợp (nếu được hỗ trợ)\n"
+"\t\t-i\ttạo TÊN có thuộc tính `integer' (số nguyên)\n"
 "\t\t-l\tchuyển đổi TÊN sang chữ thường khi được gán\n"
 "\t\t-r\tđặt TÊN là chỉ đọc\n"
-"\t\t-t\tđặt TÊN có thuộc tính « trace » (theo vết)\n"
-"\t\t-u\tchuyển đổi TÊN sang chữ hoa khi được gán\n"
+"\t\t-t\tđặt TÊN có thuộc tính `trace' (theo vết)\n"
+"\t\t-u\tchuyển đổi TÊN sang chữ HOA khi được gán\n"
 "\t\t-x\tđặt TÊN xuất\n"
 "\n"
-"\tDùng « + » thay cho « - » thì tắt thuộc tính đưa ra.\n"
+"\tDùng `+' thay cho `-' thì tắt thuộc tính đưa ra.\n"
 "\n"
 "\tBiến có thuộc tính số nguyên thì định giá theo số học\n"
-"\t\t(xem câu lệnh « let ») khi biến có giá trị được gán.\n"
-"\n"
-"\tKhi dùng trong chức năng, « declare » (tuyên bố) đặt TÊN là cục bộ,\n"
-"\t\tnhư khi dùng câu lệnh « local » (cục bộ).\n"
+"\t\t(xem câu lệnh `let') khi biến có giá trị được gán.\n"
 "\n"
+"\tKhi dùng trong hàm, `declare' (tuyên bố) đặt TÊN là cục bộ,\n"
+"\t\tnhư khi dùng câu lệnh `local' (cục bộ). Tùy chọn -g sẽ làm mất hiệu lực\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hoặc gặp lỗi."
+"\tTrả lại thành công trừ phi đưa ra tùy chọn sai hoặc gặp lỗi."
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2837,7 +2859,7 @@ msgstr ""
 "\n"
 "\tQuá cũ. Xem « help declare »."
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2864,11 +2886,14 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi,\n"
 "\tvà nếu trình bao đang chạy chức năng."
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2880,6 +2905,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2921,7 +2947,7 @@ msgstr ""
 "\t\t\\v\tkhoảng tab theo chiều dọc\n"
 "\t\t\\\\\tgạch chéo ngược"
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2943,7 +2969,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không gặp lỗi ghi."
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2995,7 +3021,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu TÊN là một dựng sẵn trình bao, và không gặp lỗi."
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -3016,7 +3042,7 @@ msgstr ""
 "\tTrả lại trạng thái thoát của câu lệnh,\n"
 "\thay thành công nếu câu lệnh vô giá trị."
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3102,7 +3128,7 @@ msgstr ""
 "\tkhông thành công nếu gặp kết thúc các tùy chọn,\n"
 "\thoặc nếu gặp lỗi."
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -3143,7 +3169,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu tìm được câu LỆNH và không gặp lỗi chuyển hướng."
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -3156,7 +3182,7 @@ msgstr ""
 "\tKhông đưa ra N thì trạng thái thoát\n"
 "\tlà trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -3169,7 +3195,7 @@ msgstr ""
 "\tThoát khỏi một trình bao đăng nhập, với trạng thái thoát N.\n"
 "\tTrả lại lỗi nếu không được thực thi trong trình bao đăng nhập."
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -3224,7 +3250,7 @@ msgstr ""
 "\tTrả lại thành công hay trạng thái của câu lệnh được thực thi;\n"
 "\t\tgặp lỗi thì khác số không."
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3246,7 +3272,7 @@ msgstr ""
 "\tTrạng thái của câu lệnh được nâng lên trước;\n"
 "\tgặp lỗi thì không thành công."
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -3270,7 +3296,7 @@ msgstr ""
 "\tTrả lại thành công nếu chức năng điều khiển công việc được bật\n"
 "\tvà không gặp lỗi."
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -3314,7 +3340,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu tìm được TÊN và không đưa ra tùy chọn sai."
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3355,7 +3381,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu tìm được MẪU và không đưa ra tùy chọn sai."
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3422,7 +3448,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3466,7 +3492,7 @@ msgstr ""
 "\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi.\n"
 "\tĐưa ra « -x » thì trả lại trạng thái thoát của câu LỆNH."
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3498,7 +3524,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay JOBSPEC sai."
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3540,8 +3566,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:926
-#, fuzzy
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -3587,46 +3612,50 @@ msgid ""
 msgstr ""
 "Định giá biểu thức số học.\n"
 "\n"
-"\tĐịnh giá mỗi ĐỐI_SỐ như là một biểu thức số học.\n"
-"\tViệc định giá xảy ra theo số nguyên có độ rộng cố định\n"
-"\tmà không kiểm tra có tràn chưa,\n"
-"\tdù trường hợp chia cho không được bắt và đặt cờ là một lỗi.\n"
-"\tTheo đây có danh sách các toán tử được nhóm lại\n"
-"\ttheo cấp các toán tử cùng quyền đi trước.\n"
+"\tĐịnh giá mỗi ĐỐI_SỐ như là một biểu thức số học. Việc định giá xảy ra\n"
+"\ttheo số nguyên có độ rộng cố định mà không kiểm tra có tràn chưa dù "
+"trường\n"
+"\tchia cho không được bắt và đặt cờ là một lỗi. Theo đây có danh sách các "
+"toán tử\n"
+"\t được nhóm lại theo cấp các toán tử cùng quyền đi trước.\n"
 "\tDanh sách các cấp có thứ tự quyền đi trước giảm.\n"
 "\n"
 "\tid++, id--\tbiến đổi sau khi tăng/giảm dần\n"
 "\t++id, --id\tbiến đổi trước khi tăng/giảm dần\n"
 "\t-, +\ttrừ, cộng nguyên phân\n"
-"\t!, ~\tphủ định lôgic và theo vị trí bit\n"
+"\t!, ~\tlôgic và phủ định trên bit\n"
 "\t**\tmũ hoá\n"
 "\t*, /, %\tphép nhân, phép chia, số dư\n"
-"\t+, -\tphép công, phép trừ\n"
-"\t<<, >>\tdời theo vị trí bit bên trái/phải\n"
+"\t+, -\tphép cng, phép trừ\n"
+"\t<<, >>\tphép dịch bit bên trái/phải\n"
 "\t<=, >=, <, >\tso sánh\n"
 "\t==, !=\t bất đẳng thức, đẳng thức\n"
-"\t&\tAND (và) theo vị trí bit\n"
-"\t^\tXOR (hoặc loại từ) theo vị trí bit\n"
-"\t||\tOR (hoặc) theo vị trí bit\n"
+"\t&\tAND (và) trên bit\n"
+"\t^\tXOR (hoặc loại từ) trên bit\n"
+"\t||\tOR (hoặc) trên bit\n"
 "\tb_thức ? b_thức : b_thức\ttoán từ điều kiện\n"
-"\t=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=\tgán\n"
-"\n"
-"\tCho phép biến trình bao dưới dạng toán hạng.\n"
-"\tTên của biến được thay thế bằng giá trị của nó\n"
-"\t(bị ép buộc thành một số nguyên rộng cố định)\n"
-"\tbên trong một biểu thức.\n"
-"\tBiến không cần có thuộc tính số nguyên được bật\n"
-"\tđể được dùng làm biểu thức.\n"
-"\n"
-"\tCác toán tử được định giá theo thứ tự quyền đi trước.\n"
-"\tCác biểu thức con nằm trong dấu ngoặc vẫn còn được định giá trước tiên,\n"
-"\tthì có quyền cao hơn các quy tắc đi trước bên trên.\n"
+"\t=, *=, /=, %=,\n"
+"+=, -=, <<=, >>=,\n"
+"&=, ^=, |=\tgán\n"
+"\n"
+"\tCho phép biến trình bao dưới dạng toán hạng. Tên của biến\n"
+"\tđược thay thế bằng giá trị của nó (bị ép buộc thành một số nguyên rộng cố "
+"định)\n"
+"\tbên trong một biểu thức. Biến không cần có thuộc tính số nguyên\n"
+"\tđược bật để được dùng làm biểu thức.\n"
+"\n"
+"\tCác toán tử được định giá theo thứ tự quyền đi trước. Các biểu thức con "
+"nằm trong\n"
+"\tdấu ngoặc được định giá trước tiên, và có quyền cao hơn các quy tắc đi "
+"trước\n"
+"\tbên trên.\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tNếu ĐỐI_SỐ cuối cùng được định giá thành 0 thì let trả lại 1;\n"
-"\tkhông thì let trả lại 0."
+"\tNếu ĐỐI_SỐ cuối cùng được định giá thành 0 thì trả về 1;\n"
+"\tkhông thì trả về 0."
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -3663,14 +3692,17 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "Đọc một dòng từ đầu vào tiêu chuẩn, sau đó chia nó ra nhiều trường.\n"
@@ -3716,7 +3748,7 @@ msgstr ""
 "\thay quá hạn đọc, hay đưa ra bộ mô tả tập tin sai\n"
 "\tlàm đối số tới « -u »."
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3738,7 +3770,7 @@ msgstr ""
 "\tTrả lại N, hoặc bị lỗi nếu trình bao không đang chạy\n"
 "\t\tmột chức năng hay văn lệnh."
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3805,7 +3837,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3837,37 +3869,38 @@ msgstr ""
 "\t\t-k\tmọi đối số gán được đặt vào môi trường cho một câu lệnh,\n"
 "\t\t\tkhông phải chỉ những đối số nằm trước tên câu lệnh\n"
 "\t\t-m\tbật chức năng điều khiển công việc\n"
-"\t\t-n\tÄ\91ọc câu lệnh mà không thực thi\n"
+"\t\t-n\tÄ\90ọc câu lệnh mà không thực thi\n"
 "\t\t-o tên_tùy_chọn\tđặt biến tương ứng với tùy chọn này:\n"
-"\t\t\t• allexport\tbằng -a\n"
-"\t\t\t• braceexpand\tbằng -B\n"
-"\t\t\t• emacs\tdùng một giao diện chỉnh sửa dòng kiểu emacs\n"
-"\t\t\t• errexit\tbằng -e\n"
-"\t\t\t• errtrace\tbằng -E\n"
-"\t\t\t• functrace\tbằng -T\n"
-"\t\t\t• hashall\tbằng -h\n"
+"\t\t\tallexport\tgiống với  -a\n"
+"\t\t\tbraceexpand\tgiống với -B\n"
+"\t\t\temacs\tdùng một giao diện chỉnh sửa dòng kiểu emacs\n"
+"\t\t\terrexit\tbằng -e\n"
+"\t\t\terrtrace\tbằng -E\n"
+"\t\t\tfunctrace\tbằng -T\n"
+"\t\t\thashall\tbằng -h\n"
 "\t\t\t• histexpand\tbằng -H\n"
-"\t\t\t• history\tbật lược sử câu lệnh\n"
-"\t\t\t• ignoreeof\ttrình bao sẽ không thoát khi đọc ký tự kết thúc tập tin\n"
-"\t\t\t• interactive-comments\tcho phép ghi chú trong câu lệnh tương tác\n"
-"\t\t\t• keyword\tbằng -k\n"
-"\t\t\t• monitor\tbằng -m\n"
-"\t\t\t• noclobber\tbằng -C\n"
-"\t\t\t• noexec\tbằng -n\n"
-"\t\t\t• noglob\tbằng -f\n"
-"\t\t\t• nolog\thiện thời được chấp nhận nhưng bị bỏ qua\n"
-"\t\t\t• notify\tbằng -b\n"
-"\t\t\t• nounset\tbằng -u\n"
-"\t\t\t• onecmd\tbằng -t\n"
-"\t\t\t• physical\tbằng -P\n"
-"\t\t\t• pipefail\tgiá trị trả lại của một ống dẫn\n"
+"\t\t\thistory\tbật lịch sử câu lệnh\n"
+"\t\t\tignoreeof\ttrình bao sẽ không thoát khi đọc ký tự kết thúc tập tin "
+"EOF\n"
+"\t\t\tinteractive-comments\tcho phép ghi chú trong câu lệnh tương tác\n"
+"\t\t\tkeyword\tbằng -k\n"
+"\t\t\tmonitor\tbằng -m\n"
+"\t\t\tnoclobber\tbằng -C\n"
+"\t\t\tnoexec\tbằng -n\n"
+"\t\t\tnoglob\tbằng -f\n"
+"\t\t\tnolog\thiện thời được chấp nhận nhưng bị bỏ qua\n"
+"\t\t\tnotify\tbằng -b\n"
+"\t\t\tnounset\tbằng -u\n"
+"\t\t\tonecmd\tbằng -t\n"
+"\t\t\tphysical\tbằng -P\n"
+"\t\t\tpipefail\tgiá trị trả lại của một ống dẫn\n"
 "\t\t\t\tlà trạng thái của câu lệnh cuối cùng\n"
 "\t\t\t\tthoát với trạng thái khác số không,\n"
 "\t\t\t\thay số không nếu không có câu lệnh\n"
 "\t\t\t\tthoát với trạng thái khác số không\n"
-"\t\t\t• posix\tthay đổi ứng xử của bash\n"
+"\t\t\tposix\tthay đổi ứng xử của bash\n"
 "\t\t\t\tmà thao tác mặc định khác với tiêu chuẩn Posix,\n"
-"\t\t\t\tđể tùy theo tiêu chuẩn\n"
+"\t\t\t\tđể khớp với tiêu chuẩn\n"
 "\t\t\t• privileged\tbằng -p\n"
 "\t\t\t• verbose\tbằng -v\n"
 "\t\t\t• vi\tdùng một giao diện chỉnh sửa kiểu vi\n"
@@ -3875,37 +3908,38 @@ msgstr ""
 "\t\t-p\tbật khi nào mã số thật và mã số có kết quả\n"
 "\t\t\tkhông tương ứng với nhau.\n"
 "\t\t\tTắt tính năng xử lý tập tin $ENV\n"
-"\t\t\tvà nhập chức năng trình bao.\n"
-"\t\t\tViá»\87c tắt tùy chá»\8dn này thì gêy ra UID và GID có kết quả\n"
-"\t\t\tđược đặt thành UID và GID thật.\n"
+"\t\t\tvà nhập các hàm vào trình bao.\n"
+"\t\t\tViá»\87c tắt tùy chá»\8dn này thì gây ra uid và gid có kết quả\n"
+"\t\t\tđược đặt thành uid và gid thật.\n"
 "\t\t-t\tthoát sau khi đọc và thực thi một câu lệnh\n"
 "\t\t-u\txử lý biến chưa đặt là lỗi khi thay thế\n"
 "\t\t-v\tin ra mỗi dòng nhập vào trình bao khi nó được đọc\n"
-"\t\t-x\tin ra mỗi câu lệnh và đối số tương ứng\n"
-"\t\t\tkhi nó được thực thi\n"
+"\t\t-x\tin ra mỗi câu lệnh và đối số tương ứng khi nó được thực thi\n"
 "\\t-B\ttrình bao sẽ mở rộng các dấu ngoặc móc\n"
-"\t\t-C\tđặt thì không cho phép ghi đề lên tập tin bình thường\n"
+"\t\t-C\tNếu đặt thì không cho phép ghi đè lên tập tin bình thường\n"
 "\t\t\tđã tồn tại bằng cách chuyển hướng kết xuất\n"
-"\t\t-E\tđặt thì bẫy ERR được chức năng trình bao kế thừa\n"
-"\t\t-H\tbật chức năng thay thế kiểu !\n"
-"\t\t\tCờ này được đặt theo mặc định khi trình bao tương tác\n"
+"\t\t-E\tNếu đặt thì bẫy ERR được chức năng trình bao kế thừa\n"
+"\t\t-H\t Bật! bật chức năng thay thế kiểu. Cờ này được bật\n"
+"\t\t\ttheo mặc định khi trình bao tương tác\n"
 "\t\t-P\tđặt thì không theo liên kết tượng trưng\n"
 "\t\t\tkhi thực thi câu lệnh như cd mà chuyển đổi thư mục hiện tại\n"
-"\t\t-T\tđặt thì bẩy DEBUG (gỡ lỗi) được chức năng trình bao kế thừa\n"
-"\t\t-\tgán bất cứ đối số còn lại nào cho những tham số thuộc vị trí.\n"
-"\t\t\tHai tùy chọn « -x » và « -v » đều bị tắt.\n"
-"\n"
-"\tViệc dùng « + » hơn là « - » thì gây ra các cờ này bị tắt.\n"
-"\tCác cờ cũng có thể được dùng khi gọi trình bao.\n"
-"\tCũng có thể tìm thấy tập cờ hiện thời trong « $- ».\n"
-"\tCác đối số còn lại là tham số thuộc vị trí,\n"
-"\tvà được gán (theo thứ tự) cho $1, $2, .. $n.\n"
+"\t\t-T\tNếu đặt thì bẫy DEBUG (gỡ lỗi) được các hàm của trình bao kế thừa\n"
+"\t\t--\tGán bất cứ đối số còn lại nào cho những tham số thuộc vị trí.\n"
+"\t\t\tNếu không còn thừa lại đối số nào, tham số vị trí\n"
+"\t\t\tìm kiếm được đặt.\n"
+"\t\t-\tGán bất cứ đối số còn lại nào cho những tham số thuộc vị trí.\n"
+"\t\t\tHai tùy chọn -x và -v đều bị tắt.\n"
+"\n"
+"\tViệc dùng + hơn là - thì gây ra các cờ này bị tắt.\n"
+"\tCác cờ cũng có thể được dùng khi gọi trình bao. Giá trị\n"
+"\tcác cờ hiện hành có thể tìm thấy trong biến $-. Các đối số còn lại\n"
+"\tlà tham số thuộc vị trí, và được gán (theo thứ tự) cho $1, $2, .. $n.\n"
 "\tKhông đưa ra đối số thì in ra mọi biến trình bao.\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không gặp tùy chọn sai."
+"\tTrả lại thành công trừ phi gặp tùy chọn sai."
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3938,7 +3972,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai, và TÊN không chỉ đọc."
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3972,7 +4006,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai,"
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4008,7 +4042,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai."
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4026,7 +4060,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu N không âm hay lớn hơn $#."
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4053,7 +4087,7 @@ msgstr ""
 "TÊN_TẬP_TIN;\n"
 "\tkhông thành công nếu không thể đọc TÊN_TẬP_TIN."
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4078,8 +4112,7 @@ msgstr ""
 "\tTrả lại thành công nếu chức năng điều khiển công việc đã được bật, và "
 "không gặp lỗi."
 
-#: builtins.c:1231
-#, fuzzy
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4161,25 +4194,29 @@ msgid ""
 msgstr ""
 "Định giá biểu thức điều kiện.\n"
 "\n"
-"Thoát với trạng thái 0 (đúng) hoặc 1 (sai), phụ thuộc vào phép tính B_THỨC.\n"
-"Biểu thức kiểu nguyên phân hoặc nhị phân cũng được.\n"
-"Biểu thức nguyên phân thường dùng để kiểm tra trạng thái của tập tin.\n"
-"Cũng có đối số chuỗi, và toán tử so sánh thuộc số.\n"
+"    Thoát với trạng thái 0 (đúng) hoặc 1 (sai), phụ thuộc vào việc định giá "
+"B_THỨC.\n"
+"    Biểu thức kiểu nguyên phân hoặc nhị phân cũng được.\n"
+"    Biểu thức nguyên phân thường dùng để kiểm tra trạng thái của tập tin.\n"
+"    Cũng có đối số chuỗi, và toán tử so sánh thuộc số.\n"
+"    \n"
+"    Cách ứng xử của test còn phụ thuộc vào số đối số. Đọc\n"
+"    sổ tay hướng dẫn của bash để có được mô tả đầy đủ.\n"
 "    \n"
 "    Toán tử tập tin:\n"
 "    \n"
 "        -a TẬP_TIN        Đúng nếu tập tin có phải tồn tại.\n"
-"        -b TẬP_TIN        Đúng nếu tập tin là đặc biệt về khối.\n"
+"        -b TẬP_TIN        Đúng nếu tập tin là khối đặc biệt .\n"
 "        -c TẬP_TIN        Đúng nếu tập tin là đặc biệt về ký tự.\n"
 "        -d TẬP_TIN        Đúng nếu tập tin là một thư mục.\n"
 "        -e TẬP_TIN        Đúng nếu tập tin có phải tồn tại.\n"
-"        -f TẬP_TIN        Đúng nếu tập tin có phải tồn tại\n"
-"\t\t\t\t\tcũng là một tập tin bình thường.\n"
+"        -f TẬP_TIN        Đúng nếu tập tin có phải tồn tại và là tệp tin "
+"thường\n"
 "        -g TẬP_TIN        Đúng nếu tập tin là set-group-id (đặt mã số "
 "nhóm).\n"
 "        -h TẬP_TIN        Đúng nếu tập tin là một liên kết tượng trưng.\n"
 "        -L TẬP_TIN        Đúng nếu tập tin là một liên kết tượng trưng.\n"
-"        -k TẬP_TIN        Đúng nếu tập tin có bit « dính » được đặt.\n"
+"        -k TẬP_TIN        Đúng nếu tập tin có bit `dính' được đặt.\n"
 "        -p TẬP_TIN        Đúng nếu tập tin là một ống dẫn đặt tên.\n"
 "        -r TẬP_TIN        Đúng nếu tập tin cho bạn đọc được.\n"
 "        -s TẬP_TIN        Đúng nếu tập tin có phải tồn tại và không phải "
@@ -4189,7 +4226,7 @@ msgstr ""
 "cuối.\n"
 "        -u TẬP_TIN        Đúng nếu tập tin is set-user-id.\n"
 "        -w TẬP_TIN        Đúng nếu tập tin cho bạn ghi vào được.\n"
-"        -x TẬP_TIN        Đúng nếu tập tin cho bạn thực hiện được.\n"
+"        -x TẬP_TIN        Đúng nếu tập tin cho bạn thực thi được.\n"
 "        -O TẬP_TIN        Đúng nếu tập tin được bạn sở hữu một cách hiệu "
 "quả.\n"
 "        -G TẬP_TIN        Đúng nếu tập tin được nhóm của bạn sở hữu\n"
@@ -4198,12 +4235,12 @@ msgstr ""
 "cùng.\n"
 "    \n"
 "      TẬP_TIN1 -nt TẬP_TIN2  Đúng nếu tập tin 1 mới hơn tập tin 2\n"
-"\t\t(tùy theo ngày sửa đổi)\n"
+"\t\t(dựa theo ngày sửa đổi)\n"
 "    \n"
 "      TẬP_TIN1 -ot TẬP_TIN2  Đúng nếu tập tin 1 cũ hơn tập tin 2.\n"
 "    \n"
-"      TẬP_TIN1 -ef TẬP_TIN2  Đúng nếu tập tin 1 là một liên kết cứng\n"
-"\t\t\t\t\t\ttới tập tin 2.\n"
+"      TẬP_TIN1 -ef TẬP_TIN2  Đúng nếu tập tin 1 là một liên kết cứng tới tập "
+"tin 2.\n"
 "    \n"
 "    Toán tử chuỗi:\n"
 "    \n"
@@ -4222,6 +4259,7 @@ msgstr ""
 "    Toán tử khác:\n"
 "    \n"
 "        -o TÙY_CHỌN      Đúng nếu tùy chọn trình bao này đã được bật.\n"
+"        -v BIẾN\t Đúng nếu BIẾN được đặt\n"
 "        ! B_THỨC         Đúng nếu biểu thức này không đúng.\n"
 "        B_THỨC1 -a B_THỨC2 \t\tĐúng nếu cả hai biểu thức này là đúng.\n"
 "        B_THỨC1 -o B_THỨC2 \t\tĐúng nếu một của hai biểu thức này là đúng.\n"
@@ -4235,10 +4273,10 @@ msgstr ""
 "\t\t-ge\t\tlớn hơn hoặc bằng\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu B_THỨC định giá thành Đúng;\n"
-"\tkhông thành công nếu B_THỨC định giá thành Sai hay đưa ra đối số sai."
+"\tTrả lại thành công nếu B_THỨC định giá  Đúng;\n"
+"\tkhông thành công nếu B_THỨC định giá thành Sai hay đối số được chỉ ra sai."
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4251,7 +4289,7 @@ msgstr ""
 "\tnhưng đối số cuối cùng phải là một « ] » nghĩa chữ,\n"
 "\tđổ tương ứng với « [ » mở."
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -4270,8 +4308,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tLúc nào cũng thành công."
 
-#: builtins.c:1332
-#, fuzzy
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -4314,26 +4351,35 @@ msgid ""
 "    Returns success unless a SIGSPEC is invalid or an invalid option is "
 "given."
 msgstr ""
-"Bắt các tín hiệu và dữ kiện khác.\n"
+"Bắt các tín hiệu và sự kiện khác.\n"
 "\n"
-"\tXác định và kích hoạt các bộ xử lý cần chạy khi trình bao\n"
+"\tĐịnh nghĩa và kích hoạt các bộ xử lý cần chạy khi trình bao\n"
 "\tnhận được tín hiệu hay điều kiện khác.\n"
 "\n"
 "\tĐỐI_SỐ là một câu lệnh cần đọc và thực thi khi trình bao\n"
-"\tnhận được (các) tín hiệu ĐẶC_TẢ_TÍN_HIỆU.\n"
-"\tNếu không đưa ra ĐỐI_SỐ\n"
+"\tnhận được (các) tín hiệu ĐẶC_TẢ_TÍN_HIỆU. Nếu không đưa ra ĐỐI_SỐ\n"
 "\t(và cung cấp chỉ một ĐẶC_TẢ_TÍN_HIỆU riêng lẻ),\n"
-"\thoặc đưa ra « - », mỗi tín hiệu được ghi rõ\n"
-"\tthì được đặt lại về giá trị gốc.\n"
-"\tNếu ĐỐI_SỐ là chuỗi vô giá trị\n"
-"\tthì mỗi ĐẶC_TẢ_TÍN_HIỆU bị bỏ qua\n"
+"\thoặc đưa ra `-', mỗi tín hiệu được ghi rõ thì được đặt lại về giá trị "
+"gốc.\n"
+"\tNếu ĐỐI_SỐ là chuỗi vô giá trị thì mỗi ĐẶC_TẢ_TÍN_HIỆU bị bỏ qua\n"
 "\tbởi trình bao và những câu lệnh nó gọi.\n"
 "\n"
-"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là EXIT (0),\n"
-"\tthì ĐỐI_SỐ được thực thi khi thoát khỏi trình bao.\n"
-"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là DEBUG,\n"
-"\tĐỐI_SỐ được thực thi đằng trước mỗi câu lệnh đơn giản.\n"
-"\n"
+"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là EXIT (0), thì ĐỐI_SỐ được thực thi khi "
+"thoát khỏi trình bao.\n"
+"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là DEBUG, ĐỐI_SỐ được thực thi đằng trước "
+"mỗi câu lệnh đơn giản.\n"
+"   Nếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là RETURN, ĐỐI_SỐ được thực thi mỗi khi "
+"hàm của shell hay một\n"
+"    script được chạy . hoặc nguồn builtins kết thúc việc thi hành.  "
+"ĐẶC_TẢ_TÍN_HIỆU\n"
+"    của ERR nghĩa là thực thi ĐỐI_SỐ mỗi khi lệnh gặp lỗi để\n"
+"    thoát ra khi tùy chọn -e được bật.\n"
+"    \n"
+"    \n"
+"    Nếu không có đối số nào được áp dụng, bẫy sẽ in ra danh sách của các "
+"lệnh có liên đới\n"
+"    đến từ tín hiệu.\n"
+"    \n"
 "\tTùy chọn:\n"
 "\t\t-l\tin ra danh sách các tên tín hiệu và số thứ tự tương ứng\n"
 "\t\t-p\thiển thị các câu lệnh bắt tương ứng với mỗi ĐẶC_TẢ_TÍN_HIỆU\n"
@@ -4346,10 +4392,10 @@ msgstr ""
 "\tdùng « kill -signal $$ ».\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra ĐẶC_TẢ_TÍN_HIỆU sai\n"
+"\tTrả lại thành công trừ phi đưa ra ĐẶC_TẢ_TÍN_HIỆU sai\n"
 "\thay tùy chọn sai."
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4408,7 +4454,8 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu tìm thấy tất cả các TÊN; không thì bị lỗi."
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -4437,6 +4484,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4496,7 +4546,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4531,21 +4581,22 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu không có CHẾ_ĐỘ sai hay tùy chọn sai."
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "Đợi công việc chạy xong, sau đó trả lại trạng thái thoát.\n"
 "\n"
@@ -4560,7 +4611,7 @@ msgstr ""
 "\tTrả lại trạng thái của ID; không thành công nếu ID sai\n"
 "\t\thoặc đưa ra tùy chọn sai."
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4587,7 +4638,7 @@ msgstr ""
 "\tkhông thành công nếu ID sai,\n"
 "\thoặc nếu đưa ra tùy chọn sai."
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4611,7 +4662,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4640,7 +4691,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4679,7 +4730,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4710,7 +4761,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrạng thái trả lai là trạng thái trả lại của PIPELINE."
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4729,7 +4780,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -4766,7 +4817,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4785,7 +4836,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4804,7 +4855,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4827,7 +4878,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái thoát của câu LỆNH."
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -4851,7 +4902,7 @@ msgstr ""
 "\tTráng thái thoát:\n"
 "\tTrả lại thành công nếu TÊN không phải chỉ đọc."
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4870,7 +4921,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của câu lệnh cuối cùng được chạy."
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4895,7 +4946,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại trạng thái của công việc đã tiếp tục lại."
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4913,7 +4964,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại 1 nếu BIỂU_THỨC tính là 0; không thì trả lại 0."
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -4954,7 +5005,8 @@ msgstr ""
 "    \tB_THỨC1 || B_THỨC2\n"
 "\tĐúng nếu một của B_THỨC1 và B_THỨC2 là đúng; không thì sai\n"
 "    \n"
-"Khi dùng toán từ « == » và « != », chuỗi bên phải toán tử được dùng làm mẫu,\n"
+"Khi dùng toán từ « == » và « != », chuỗi bên phải toán tử được dùng làm "
+"mẫu,\n"
 "\tvà thực hiện chức năng khớp mẫu.\n"
 "Toán tử « && » và « || » không tính B_THỨC2 nếu B_THỨC1 là đủ\n"
 "\tđể tính giá trị của biểu thức.\n"
@@ -4962,7 +5014,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\t0 hay 1 phụ thuộc vào giá trị của BIỂU_THỨC."
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5068,7 +5120,7 @@ msgstr ""
 "\tđược ùng để quyết định những câu lệnh nào nên được lưu\n"
 "\tvào danh sách lịch sử.\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5122,7 +5174,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra đối số sai,\n"
 "\tcũng không sai chuyển đổi thư mục."
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5175,7 +5227,7 @@ msgstr ""
 "\tTrả lại thành công nếu không đưa ra đối số sai,\n"
 "\tcũng không sai chuyển đổi thư mục."
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5231,7 +5283,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5268,7 +5320,7 @@ msgstr ""
 "\tTrả lại thành công nếu TÊN_TÙY_CHỌN được bật;\n"
 "\tkhông thành công nếu đưa ra tùy chọn sai hay TÊN_TÙY_CHỌN bị tắt."
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -5287,8 +5339,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -5301,29 +5353,32 @@ msgid ""
 "assignment\n"
 "    error occurs."
 msgstr ""
-"Định dạng và in ra các ĐỐI_SỐ tùy theo ĐỊNH_DẠNG.\n"
+"Định dạng và in ra các ĐỐI_SỐ tùy theo ĐỊNH_DẠNG được diều khiển.\n"
 "\n"
 "\tTùy chọn:\n"
-"\t\t-v BIẾN\tgán kết xuất cho biến trình bao này,\n"
+"\t\t-v BIẾN\tgán kết xuất cho biến shell này\n"
 "\t\t\thơn là hiển thị nó trên đầu ra tiêu chuẩn\n"
 "\n"
 "\tĐỊNH_DẠNG là một chuỗi ký tự mà chứa ba kiểu đối tượng:\n"
-"\t\t• ký tự bình thường\tđược sao chép sang đầu ra tiêu chuẩn\n"
-"\t\t• dãy ký tự thoát\t00 chuyển đổi và sao chép sang đầu ra tiêu chuẩn\n"
-"\t\tđặc tả định dạng\tmỗi đặc tả gây ra in đối số kế tiếp.\n"
+"\t\tký tự bình thường, được sao chép sang đầu ra tiêu chuẩn;\n"
+"\t\tdãy ký tự thoát, dùng để chuyển đổi sau đó sao chép sang đầu ra tiêu "
+"chuẩn; và\n"
+"\t\tđặc tả định dạng, mỗi đặc tả gây ra in đối số kế tiếp.\n"
 "\n"
 "\tThêm vào đặc tả định dạng tiêu chuẩn được diễn tả\n"
-"\ttrong printf(1) và printf(3), printf đọc được:\n"
+"\ttrong printf(1) và printf(3), printf được diễn giả như sau:\n"
 "\n"
 "\t\t%b\tmở rộng dãy thoát kiểu gạch chéo ngược trong đối số tương ứng\n"
-"\t\t%q\ttrích dẫn đối số bằng một cách có thể dùng lại được\n"
-"\t\t\tlàm dữ liệu nhập vào trình bao\n"
+"\t\t%q\ttrích dẫn đối số bằng một cách có thể dùng lại được làm dữ liệu nhập "
+"vào trình bao\n"
+"      %(fmt)T xuất ra chuỗi ngày tháng là kết quả khi sử dụng FMT là định "
+"dạng\n"
+"            cho strftime(3)\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi kiểu ghi hay "
-"gán."
+"\tTrả lại thành công trừ phi đưa ra tùy chọn sai hay gặp lỗi khi ghi hay gán."
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -5371,7 +5426,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -5393,8 +5448,7 @@ msgstr ""
 "\tTrạng thái thoát:\n"
 "\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi."
 
-#: builtins.c:1956
-#, fuzzy
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -5426,33 +5480,32 @@ msgid ""
 msgstr ""
 "Sửa đổi hoặc hiển thị các tùy chọn điền nốt.\n"
 "\n"
-"\tSửa đổi các tùy chọn điền nốt đối với mỗi TÊN,\n"
-"\thoặc nếu không đưa ra TÊN thì chức năng điền nốt đang chạy.\n"
-"\tKhông đưa ra tùy chọn thì in ra các tùy chọn điền nốt\n"
-"\tđối với mỗi TÊN hay đặc tả điền nốt hiện thời.\n"
+"\tSửa đổi các tùy chọn điền nốt đối với mỗi TÊN, hoặc nếu không đưa ra TÊN \n"
+"\tthì chức năng điền nốt hiện tại sẽ được thi hành, nếu không TÙY_CHỌN được "
+"chỉ ra, in ra\n"
+"\tcác tùy chọn điền nốt cho mỗi TÊN hay các đặc tính kỹ thuật hiện có\n"
 "\n"
 "\tTùy chọn\"\n"
-"\t\t-o tùy_chọn\tđặt tùy chọn điền nốt này đối với mỗi TÊN\n"
-"   \t-D\t\tSửa đổi các tuỳ chọn về sự điền nốt câu lệnh « mặc định "
-"» (default)\n"
-"    \t-E\t\tSửa đổi các tuỳ chọn về sự điền nốt câu lệnh « trống » (empty)\n"
+"\t\t-o tùy_chọn\tđặt TÙY_CHỌN điền nốt này đối với mỗi TÊN\n"
+"   \t-D\t\tSửa đổi các TÙY_CHỌN về sự điền nốt câu lệnh `mặc "
+"định' (default)\n"
+"    \t-E\t\tSửa đổi các TÙY_CHỌN  về sự điền nốt câu lệnh `trống' (empty)\n"
 "\n"
-"\tDùng « +o » thay cho « -o » thì tắt tùy chọn đưa ra.\n"
+"\tDùng `+o' thay cho `-o' thì tắt tùy chọn đưa ra.\n"
 "\n"
 "\tĐối số :\n"
 "\n"
 "\tMỗi TÊN tham chiếu đến một câu lệnh cho đó một đặc tả điền nốt\n"
-"\tphải được xác định trước dùng dựng sẵn « complete ».\n"
-"\tKhông đưa ra TÊN thì « compopt » phải được gọi\n"
-"\tbởi một chức năng đang tạo việc điền nốt,\n"
-"\tcác tùy chọn về hàm tạo việc điền nốt đang chạy cũng được sửa đổi.\n"
+"\tphải được xác định trước dùng dựng sẵn « complete ». Nếu không đưa ra TÊN\n"
+"\tđể áp dụng,  thì « compopt » phải được gọi bởi một hàm đang tạo\n"
+"\t việc điền nốt, và các tùy chọn về hàm tạo việc điền nốt đang chạy\n"
+"\tcũng được sửa đổi.\n"
 "\n"
 "\tTrạng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai,\n"
-"\tvà TÊN có một đặc tả điền nốt được xác định."
+"\tTrả lại thành công trừ phi đưa ra tùy chọn sai, hoặc TÊN\n"
+"\tcó một đặc tả điền nốt được xác định."
 
-#: builtins.c:1986
-#, fuzzy
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -5492,16 +5545,16 @@ msgid ""
 "or\n"
 "    not an indexed array."
 msgstr ""
-"Đọc các dòng từ đầu vào tiêu chuẩn vào một biến mảng phụ lục.\n"
+"Đọc các dòng từ đầu vào tiêu chuẩn vào một biến mảng chỉ số.\n"
 "\n"
 "\tĐọc các dòng từ đầu vào tiêu chuẩn vào biến mảng MẢNG,\n"
-"\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn « -u ».\n"
-"\tBiến TẬP_TIN_SƠ_ĐỒ là MẢNG mặc định.\n"
+"\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn -u.\n"
+"\tBiến MAPFILE là MẢNG mặc định.\n"
 "\n"
 "\tTùy chọn:\n"
 "\t\t-n SỐ\tsao chép nhiều nhất SỐ dòng. Nếu SỐ là 0 thì sao chép mọi dòng.\n"
 "\t\t-O GỐC\tbắt đầu gán cho MẢNG ở chỉ mục GỐC. Chỉ mục mặc định là 0.\n"
-"\t\t-s SỐ\thủy SỐ dòng đầu tiên được đọc.\n"
+"\t\t-s SỐ\tbỏ qua SỐ dòng đầu tiên được đọc.\n"
 "\t\t-t\tgỡ bỏ một ký tự dòng mới theo sau khỏi mỗi dòng được đọc.\n"
 "\t\t-u FD\tđọc các dòng từ bộ mô tả tập tin FD thay vào từ đầu vào tiêu "
 "chuẩn.\n"
@@ -5509,9 +5562,9 @@ msgstr ""
 "\t\t-c LƯỢNG\tghi rõ số các dòng được đọc giữa hai lần gọi GỌI_NGƯỢC.\n"
 "\n"
 "\tĐối số :\n"
-"\tMẢNG\ttên biến mảg cần dùng cho dữ liệu tập tin.\n"
+"\tMẢNG\ttên biến mảng cần dùng cho dữ liệu tập tin.\n"
 "\n"
-"\tNếu đưa ra « -C » mà không có « -c » thì lượng mặc định là 5000.\n"
+"\tNếu đưa ra -C mà không có -c thì lượng mặc định là 5000.\n"
 "\tKhi ước lượng lời GỌI_NGƯỢC thì nó nhận chỉ số của phần tử mảng\n"
 "\tkế tiếp được gán dưới dạng một đối số bổ sung.\n"
 "\n"
@@ -5519,10 +5572,11 @@ msgstr ""
 "\t\tsẽ xoá sạch MẢNG trước khi gán cho nó.\n"
 "\n"
 "\tTráng thái thoát:\n"
-"\tTrả lại thành công nếu không đưa ra tùy chọn sai và MẢNG không phải chỉ "
-"đọc."
+"\tTrả lại thành công trừ phi đưa ra tùy chọn sai và MẢNG không phải chỉ đọc "
+"hay\n"
+"không là một mảng chỉ số."
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
index 2ccc4b1e061bccda925b05bfdb7d45b810916649..acac850398465f797ff6f2a87e615c963c599981 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index ab17b93d2a1a1c009882ec2d149a89aadc5e7388..dd7126bbbe466106c971b78ca64733a0ebbb648a 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash 4.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2011-09-07 10:32+0800\n"
 "Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -18,50 +18,50 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr "数组下标不正确"
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: 无法将索引数组转化为关联数组"
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s: 无效的关联数组键"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: 无法为非数字的索引赋值"
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: 为关联数组赋值时必须使用下标"
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: 无法创建: %s"
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: 无法为命令找到键映射"
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: 第一个非空字符不是 `\"'"
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "%2$s 中没有闭合的 `%1$c'"
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: 缺少冒号分隔符"
@@ -71,36 +71,36 @@ msgstr "%s: 缺少冒号分隔符"
 msgid "`%s': invalid alias name"
 msgstr "`%s': 无效的别名"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr "未启用行编辑"
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr "`%s': 无效的键映射名"
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s: 无法读取: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr "`%s': 无法解除绑定"
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s': 未知函数名"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr "%s 未与任何键绑定。\n"
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr "%s 可以被调用,通过"
@@ -123,11 +123,15 @@ msgstr ""
 "    \n"
 "    不带 EXPR 时,返回"
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME 未设定"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "参数太多"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD 未设定"
 
@@ -136,7 +140,7 @@ msgstr "OLDPWD 未设定"
 msgid "line %d: "
 msgstr "第 %d 行:"
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, c-format
 msgid "warning: "
 msgstr "警告:"
@@ -146,11 +150,7 @@ msgstr "警告:"
 msgid "%s: usage: "
 msgstr "%s: 用法:"
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "参数太多"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: 选项需要一个参数"
@@ -165,7 +165,7 @@ msgstr "%s: 需要数字参数"
 msgid "%s: not found"
 msgstr "%s: 未找到"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: 无效选项"
@@ -175,7 +175,7 @@ msgstr "%s: 无效选项"
 msgid "%s: invalid option name"
 msgstr "%s: 无效的选项名"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s': 不是有效的标识符"
@@ -188,7 +188,7 @@ msgstr "无效的八进制数"
 msgid "invalid hex number"
 msgstr "无效的十六进制数"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr "无效数字"
 
@@ -202,7 +202,7 @@ msgstr "%s: 无效的信号声明"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s': 不是有效的进程号或者任务声明"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: 只读变量"
@@ -274,26 +274,26 @@ msgstr "%s: 获取当前目录时出错: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s: 模糊的任务声明"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s: 无效的动作名"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: 没有补全声明"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "警告: -F 选项可能不像您预期的那样工作"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "警告: -C 选项可能不像您预期的那样工作"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr "当前未执行补完功能"
 
@@ -305,7 +305,7 @@ msgstr "只能在函数中使用"
 msgid "cannot use `-f' to make functions"
 msgstr "无法用 `-f' 生成函数"
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s: 只读函数"
@@ -315,7 +315,7 @@ msgstr "%s: 只读函数"
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: 无法以这种方式销毁数组变量"
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: 无法将关联数组转化为索引数组"
@@ -344,8 +344,8 @@ msgstr "%s: 未以动态方式加载"
 msgid "%s: cannot delete: %s"
 msgstr "%s: 无法删除: %s"
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: 是一个目录"
@@ -360,8 +360,7 @@ msgstr "%s: 不是常规文件"
 msgid "%s: file is too large"
 msgstr "%s: 文件太大"
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: 无法执行二进制文件"
@@ -444,8 +443,10 @@ msgstr[0] "Shell 命令匹配关键字 `"
 
 #: builtins/help.def:168
 #, c-format
-msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr "没有与 `%s' 匹配的帮助主题。尝试 `help help' 或 `man -k %s' 或 `info %s'。"
+msgid ""
+"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr ""
+"没有与 `%s' 匹配的帮助主题。尝试 `help help' 或 `man -k %s' 或 `info %s'。"
 
 #: builtins/help.def:185
 #, c-format
@@ -479,7 +480,7 @@ msgstr "最多只能使用 -anrw 选项中的一个"
 msgid "history position"
 msgstr "历史位置"
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: 历史扩展失败"
@@ -502,7 +503,7 @@ msgstr "%s: 参数必须是进程或任务 ID"
 msgid "Unknown error"
 msgstr "未知错误"
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr "需要表达式"
 
@@ -511,12 +512,12 @@ msgstr "需要表达式"
 msgid "%s: not an indexed array"
 msgstr "%s: 不是一个索引数组"
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: 无效的文件描述符声明"
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: 无效的文件描述符: %s"
@@ -544,31 +545,31 @@ msgstr "空数组变量名"
 msgid "array variable support required"
 msgstr "需要数组变量支持"
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr "`%s': 缺少格式字符"
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "`%c': 无效的时间格式声明"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "`%c': 无效格式字符"
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, c-format
 msgid "warning: %s: %s"
 msgstr "警告: %s: %s"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr "使用了 \\x 但缺少十六进制数"
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "使用了 \\%c 但缺少 unicode 数"
@@ -604,10 +605,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
 "显示当前记住的目录列表。 目录\n"
@@ -713,17 +716,17 @@ msgstr ""
 "    \n"
 "    `dirs' 内建变量显示目录栈。"
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: 无效的超时声明"
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr "读错误: %d: %s"
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr "只能从函数或者源脚本返回(`return')"
 
@@ -731,17 +734,17 @@ msgstr "只能从函数或者源脚本返回(`return')"
 msgid "cannot simultaneously unset a function and a variable"
 msgstr "无法同时取消设定一个函数和一个变量"
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: 无法取消设定"
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: 无法取消设定: 只读 %s"
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: 不是数组变量"
@@ -755,11 +758,11 @@ msgstr "%s: 不是函数"
 msgid "shift count"
 msgstr "位移计数"
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr "无法同时设定和取消设定 shell 选项"
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: 无效的 shell 选项名"
@@ -801,7 +804,7 @@ msgstr "%s 是函数\n"
 msgid "%s is a shell builtin\n"
 msgstr "%s 是 shell 内建\n"
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr "%s 是 %s\n"
@@ -811,26 +814,26 @@ msgstr "%s 是 %s\n"
 msgid "%s is hashed (%s)\n"
 msgstr "%s 已经哈希操作(%s)\n"
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr "%s: 无效的 limit 参数"
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c': 命令错误"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: 无法获取 limit 值: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr "limit"
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: 无法修改 limit 值: %s"
@@ -849,7 +852,7 @@ msgstr "`%c': 无效的符号状态运算符"
 msgid "`%c': invalid symbolic mode character"
 msgstr "`%c': 无效的符号状态字符"
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr "行"
 
@@ -863,23 +866,23 @@ msgstr "上一个命令: %s\n"
 msgid "Aborting..."
 msgstr "中止..."
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "未知的命令错误"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "错误的命令类型"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "错误的条件连接符"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr "错误的跳转"
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: 未绑定的变量"
@@ -894,102 +897,117 @@ msgstr "\a 等待输入超时:自动注销\n"
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "无法从 /dev/null 重定向标准输入: %s"
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "时间格式: `%c': 无效的格式字符"
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 msgid "pipe error"
 msgstr "管道错误"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: 受限的: 无法在命令名中使用 `/'"
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s: 未找到命令"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: 解释器错误"
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s: 无法执行二进制文件"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s 是 shell 内建\n"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "无法复制文件描述符 %d 到文件描述符 %d"
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr "表达式递归层次越界"
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr "递归栈下溢"
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "表达式中有语法错误"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr "尝试给非变量赋值"
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr "除0"
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr "错误:表达式赋值符号错误"
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr "条件表达式需要 `:'"
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr "指数小于0"
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "预增符或预减符后应跟有标识符"
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr "缺少 `)'"
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr "语法错误: 需要操作数"
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr "语法错误: 无效的算术运算符"
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (错误符号是 \"%s\")"
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr "无效的算数进制"
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr "数值太大不可为算数进制的基"
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: 表达式错误\n"
@@ -998,163 +1016,163 @@ msgstr "%s: 表达式错误\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: 无法访问父目录"
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "无法为文件描述符 %d 重置nodelay模式"
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr "无法从文件描述符 %d 为 bash 的输入获取一个新的文件描述符"
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr "save_bash_input: 已经存在新的文件描述符 %d 的缓冲区"
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: 进程组管道"
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "生成的进程号 %d 显示为运行中的任务 %d"
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "删除进程组 %2$ld 中已停止的任务 %1$d"
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr "add_process: 进程 %5ld(%s) 进入 the_pipeline"
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: 进程号 %5ld(%s) 标注为仍活着"
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: 无此进程号"
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr "信号 %d"
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr "已完成"
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr "已停止"
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr "已停止(%s)"
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr "运行中"
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr "已完成(%d)"
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr "退出 %d"
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr "未知状态"
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr "(核心已转储)"
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (工作目录: %s)"
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "子进程 setpgid (%ld 到 %ld)"
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: 进程号 %ld 不是当前 shell 的子进程"
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wiat_for: 没有进程 %ld 的记录"
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: 任务 %d 已停止"
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: 任务已经终止"
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: 任务 %d 已在后台"
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: 打开 WNOHANG 以避免无限阻塞"
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: 行 %d: "
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr " (核心已转储)"
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(当前工作目录:%s)\n"
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp 失败"
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: 行规则"
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "无法设定终端进程组(%d)"
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr "此 shell 中无任务控制"
 
@@ -1223,7 +1241,7 @@ msgstr "register_alloc: %p 在表中显示为已分配?\n"
 msgid "register_free: %p already in table as free?\n"
 msgstr "register_free: %p 在表中显示为已释放?\n"
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr "无效的基"
 
@@ -1246,22 +1264,22 @@ msgstr "%s: 错误的网络路径声明"
 msgid "network operations not supported"
 msgstr "不支持网络操作"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: 无法改变区域选项 (%s)"
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: 无法改变区域选项 (%s): %s"
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: 无法改变区域选项 (%s)"
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: 无法改变区域选项 (%s): %s"
@@ -1292,118 +1310,118 @@ msgstr "语法错误: 需要 `;'"
 msgid "syntax error: `((%s))'"
 msgstr "语法错误: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: 错误的指令类型 %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "立即文档在第 %d 行被文件结束符分隔 (需要 `%s')"
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection: 重定向指令 `%d' 越界"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "寻找匹配的 `%c' 是遇到了未预期的文件结束符"
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr "寻找 `]]' 是遇到了未预期的文件结束符"
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "条件表达式中有语法错误: 未预期的符号 `%s'"
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "条件表达式中有语法错误"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "未预期的符号 `%s' ,需要 `)'"
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "需要 `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "一元条件运算符使用了未预期的参数 `%s'"
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr "一元条件运算符使用了未预期的参数"
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "未预期的符号 `%s',需要二元条件运算符"
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr "需要二元条件运算符"
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "二元条件运算符使用了未预期的参数 `%s'"
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr "二元条件运算符使用了未预期的参数"
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "条件命令中有未预期的符号 `%c'"
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "条件命令中有未预期的符号 `%s'"
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "条件命令中有未预期的符号 %d"
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "未预期的符号 `%s' 附近有语法错误"
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "`%s' 附近有语法错误"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr "语法错误: 未预期的文件结尾"
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "语法错误"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "使用 \"%s\" 退出 shell 。\n"
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "寻找匹配的 `)' 时遇到了未预期的文件结束符"
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr "补完: 未找到函数 `%s'"
@@ -1413,26 +1431,26 @@ msgstr "补完: 未找到函数 `%s'"
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr "progcomp_insert: %s: 空的补完声明"
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr "print_command: 错误的条件连接符 `%d'"
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr "xtrace_set: %d: 无效的文件描述符"
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr "xtrace_set: 空的文件指针"
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: `%c': 无效的格式字符"
@@ -1470,33 +1488,33 @@ msgstr "%s: 无法将文件描述符赋值给变量"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "没有网络时不支持 /dev/(tcp|udp)/host/port"
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr "重定向错误: 无法复制文件描述符"
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr "无法找到 /tmp ,请创建"
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr "/tmp 必须为有效的目录名"
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: 无效的选项"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "没有名字!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash,版本 %s-(%s)\n"
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1505,39 +1523,39 @@ msgstr ""
 "用法:\t%s [GNU 长选项] [选项] ...\n"
 "\t%s [GNU 长选项] [选项] 脚本文件 ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU 常选项:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Shell 选项:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD 或 -c 命令 或 -O shopt选项\t\t(仅适合调用)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s 或 -o 选项\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "请输入`%s -c \"help set\"' 以获得关于 shell 选项的更多信息\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "请输入 `%s -c help' 以获得关于 shell 内建命令的更多信息.\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "请使用`bashbug' 命令来报告错误.\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: 无效的操作"
@@ -1712,81 +1730,83 @@ msgstr "未知信号 #"
 msgid "Unknown Signal #%d"
 msgstr "未知信号 #%d"
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "错误的替换: 在 %2$s 中没有闭合的 `%1$s'"
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: 无法将链表赋值给数组成员"
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr "无法为进程替换创建管道"
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr "无法为进程替换创建子进程"
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "无法打开命名管道 %s 进行读取"
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "无法打开命名管道 %s 进行写入"
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "无法将命名管道 %s 作为文件描述符 %d 复制"
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr "无法为命令替换创建管道"
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr "无法为命令替换创建子进程"
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: 无法将管道复制为文件描述符1"
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: 参数为空或未设置"
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: 子串表达式 < 0"
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: 错误的替换"
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: 无法这样赋值"
 
-#: subst.c:7684
-msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+#: subst.c:7697
+msgid ""
+"future versions of the shell will force evaluation as an arithmetic "
+"substitution"
 msgstr "未来版本的 shell 会强制估值为算数替换"
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "错误的替换: 在 %s 中没有闭合的 \"`\""
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr "无匹配: %s"
@@ -1823,76 +1843,77 @@ msgstr "%s: 需要二元表达式"
 msgid "missing `]'"
 msgstr "缺少 `]'"
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "无效的信号数"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: trap_list[%d] 中的错误值: %p"
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
-msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgid ""
+"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: 信号处理器是 SIG_DFL,重新发送 %d (%s) 给自己"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: 错误的信号 %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "`%s' 函数定义导入错误"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "shell 层次 (%d) 太高,重置为 1"
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: 当前作用域中没有函数上下文"
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: 当前作用域中没有函数上下文"
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s 有空的 exportstr"
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "%2$s 的 exportstr 中有无效的字符 %1$d"
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "%s 的 exportstr 中没有 `='"
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr "pop_var_context: shell_variables 的头部不是函数上下文"
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: 没有 global_variables 上下文"
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr "pop_scope: shell_variables 的头部不是临时环境作用域"
 
-#: variables.c:4786
+#: variables.c:4821
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: 无法作为文件打开"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: 追踪文件描述符的值无效"
@@ -1902,8 +1923,12 @@ msgid "Copyright (C) 2011 Free Software Foundation, Inc."
 msgstr "版权所有 (C) 2011 自由软件基金会"
 
 #: version.c:47
-msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: version.c:86 version2.c:83
 #, c-format
@@ -1927,8 +1952,12 @@ msgstr "版权所有 (C) 2009 自由软件基金会\n"
 
 #: version2.c:87
 #, c-format
-msgid "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
-msgstr "许可证 GPLv2+: GNU GPL 许可证第二版或者更新版本 <http://gnu.org/licenses/gpl.html>\n"
+msgid ""
+"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+msgstr ""
+"许可证 GPLv2+: GNU GPL 许可证第二版或者更新版本 <http://gnu.org/licenses/gpl."
+"html>\n"
 
 #: xmalloc.c:91
 #, c-format
@@ -1959,8 +1988,13 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] 名称 [名称 ...]"
 
 #: builtins.c:51
-msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr "bind [-lpvsPVS] [-m 键映射] [-f 文件名] [-q 名称] [-u 名称] [-r 键序列] [-x 键序列:shell命令] [键序列:行读取函数 或 行读取命令]"
+#, fuzzy
+msgid ""
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr ""
+"bind [-lpvsPVS] [-m 键映射] [-f 文件名] [-q 名称] [-u 名称] [-r 键序列] [-x "
+"键序列:shell命令] [键序列:行读取函数 或 行读取命令]"
 
 #: builtins.c:54
 msgid "break [n]"
@@ -2067,8 +2101,12 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [模式 ...]"
 
 #: builtins.c:121
-msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr "history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]"
+msgid ""
+"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
+"[arg...]"
+msgstr ""
+"history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 "
+"[参数...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2079,16 +2117,24 @@ msgid "disown [-h] [-ar] [jobspec ...]"
 msgstr "disown [-h] [-ar] [任务声明 ...]"
 
 #: builtins.c:132
-msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr "kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明 ... 或 kill -l [信号声明]"
+msgid ""
+"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
+"[sigspec]"
+msgstr ""
+"kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明 ... 或 kill -"
+"l [信号声明]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
 msgstr "let 参数 [参数 ...]"
 
 #: builtins.c:136
-msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
-msgstr "read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]"
+msgid ""
+"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "
+"prompt] [-t timeout] [-u fd] [name ...]"
+msgstr ""
+"read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字"
+"符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]"
 
 #: builtins.c:138
 msgid "return [n]"
@@ -2147,7 +2193,8 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] 名称 [名称 ...]"
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+#, fuzzy
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr "ulimit [-SHacdefilmnpqrstuvx] [限制]"
 
 #: builtins.c:172
@@ -2155,7 +2202,8 @@ msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [模式]"
 
 #: builtins.c:175
-msgid "wait [id]"
+#, fuzzy
+msgid "wait [id ...]"
 msgstr "wait [编号]"
 
 #: builtins.c:179
@@ -2183,7 +2231,9 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case 词 in [模式 [| 模式]...) 命令 ;;]... esac"
 
 #: builtins.c:192
-msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgid ""
+"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
+"COMMANDS; ] fi"
 msgstr "if 命令; then 命令; [ elif 命令; then 命令; ]... [ else 命令; ] fi"
 
 #: builtins.c:194
@@ -2243,24 +2293,41 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] 格式 [参数]"
 
 #: builtins.c:229
-msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o 选项] [-A 动作] [-G 全局模式] [-W 词语列表]  [-F 函数] [-C 命令] [-X 过滤模式] [-P 前缀] [-S 后缀] [名称 ...]"
+msgid ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-"
+"W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
+"suffix] [name ...]"
+msgstr ""
+"complete [-abcdefgjksuv] [-pr] [-DE] [-o 选项] [-A 动作] [-G 全局模式] [-W 词"
+"语列表]  [-F 函数] [-C 命令] [-X 过滤模式] [-P 前缀] [-S 后缀] [名称 ...]"
 
 #: builtins.c:233
-msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr "compgen [-abcdefgjksuv] [-o 选项]  [-A 动作] [-G 全局模式] [-W 词语列表]  [-F 函数] [-C 命令] [-X 过滤模式] [-P 前缀] [-S 后缀] [词语]"
+msgid ""
+"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
+"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr ""
+"compgen [-abcdefgjksuv] [-o 选项]  [-A 动作] [-G 全局模式] [-W 词语列表]  [-"
+"F 函数] [-C 命令] [-X 过滤模式] [-P 前缀] [-S 后缀] [词语]"
 
 #: builtins.c:237
 msgid "compopt [-o|+o option] [-DE] [name ...]"
 msgstr "compopt [-o|+o 选项] [-DE] [名称 ...]"
 
 #: builtins.c:240
-msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "mapfile [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] [数组]"
+msgid ""
+"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"mapfile [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] "
+"[数组]"
 
 #: builtins.c:242
-msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr "readarray [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] [数组]"
+msgid ""
+"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
+"quantum] [array]"
+msgstr ""
+"readarray [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] "
+"[数组]"
 
 #: builtins.c:254
 msgid ""
@@ -2277,7 +2344,8 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
+"    alias returns true unless a NAME is supplied for which no alias has "
+"been\n"
 "    defined."
 msgstr ""
 "定义或显示别名。\n"
@@ -2313,6 +2381,7 @@ msgstr ""
 "    返回成功,除非“名字“不是一个已存在的别名。"
 
 #: builtins.c:289
+#, fuzzy
 msgid ""
 "Set Readline key bindings and variables.\n"
 "    \n"
@@ -2324,24 +2393,30 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
+"move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their values\n"
-"      -s                 List key sequences that invoke macros and their values\n"
+"      -S                 List key sequences that invoke macros and their "
+"values\n"
+"      -s                 List key sequences that invoke macros and their "
+"values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named "
+"function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
@@ -2378,7 +2453,7 @@ msgstr ""
 "    退出状态:\n"
 "    除非使用了无法辨认的选项或者错误发生,否则返回0."
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2396,7 +2471,7 @@ msgstr ""
 "    退出状态:\n"
 "    退出状态为0除非 N 不大于或等于 1。"
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2414,13 +2489,14 @@ msgstr ""
 "    退出状态:\n"
 "    退出状态为 0 除非 N 不大于或等于1。"
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the function.\n"
+"    as a shell function, but need to execute the builtin within the "
+"function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2433,10 +2509,11 @@ msgstr ""
 "    并且希望在函数之内执行该 shell 内建的情况下有用处。\n"
 "    \n"
 "    退出状态:\n"
-"    以 SHELL-BUILTIN 内建的退出状态为准,或者如果 SHELL-BUILTIN不是一个 shell 内建时\n"
+"    以 SHELL-BUILTIN 内建的退出状态为准,或者如果 SHELL-BUILTIN不是一个 "
+"shell 内建时\n"
 "    为假。."
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2464,33 +2541,46 @@ msgstr ""
 "    除非 shell 不在执行一个 shell 函数或者 EXPR 无效,否则返回结\n"
 "    果为0。"
 
-#: builtins.c:383
+#: builtins.c:385
+#, fuzzy
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of the\n"
+"    Change the current directory to DIR.  The default DIR is the value of "
+"the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
-"    A null directory name is the same as the current directory.  If DIR begins\n"
+"    The variable CDPATH defines the search path for the directory "
+"containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon "
+"(:).\n"
+"    A null directory name is the same as the current directory.  If DIR "
+"begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is "
+"set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a "
+"value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns 0 if the directory is changed, and if $PWD is set successfully when\n"
+"    Returns 0 if the directory is changed, and if $PWD is set successfully "
+"when\n"
 "    -P is used; non-zero otherwise."
 msgstr ""
 "改变 shell 工作目录。\n"
@@ -2518,7 +2608,7 @@ msgstr ""
 "    退出状态:\n"
 "    如果目录改变,或在使用 -P 选项时 $PWD 修改成功时返回0,否则非零。"
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2546,7 +2636,7 @@ msgstr ""
 "    除非使用了无效选项或者当前目录不可读,否则\n"
 "    返回状态为0。"
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2562,7 +2652,7 @@ msgstr ""
 "    退出状态:\n"
 "    总是成功。"
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2574,7 +2664,7 @@ msgstr ""
 "    退出状态:\n"
 "    总是成功"
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2586,12 +2676,13 @@ msgstr ""
 "    退出状态:\n"
 "    总是失败。"
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke "
+"commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2618,7 +2709,7 @@ msgstr ""
 "    退出状态\n"
 "    返回 COMMAND 命令的返回状态,或者当找不到 COMMAND 命令时失败。"
 
-#: builtins.c:479
+#: builtins.c:485
 #, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
@@ -2649,7 +2740,8 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the "
+"`local'\n"
 "    command.  The `-g' option suppresses this behavior.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2687,7 +2779,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非使用了无效选项或者发生错误。"
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2697,7 +2789,7 @@ msgstr ""
 "    \n"
 "    废弃。参见 `help declare'。"
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2723,11 +2815,14 @@ msgstr ""
 "    返回成功除非使用了无效的选项、发生了错误或者 shell 不在\n"
 "    执行一个函数。"
 
-#: builtins.c:542
+#: builtins.c:548
+#, fuzzy
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2739,6 +2834,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2781,7 +2877,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非有写错误发生。"
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2803,7 +2899,7 @@ msgstr ""
 "    退出状态:\n"
 "    除非写错误发生,否则返回成功。"
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2853,11 +2949,12 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非 NAME 不是一个 shell 内建或者有错误发生。"
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the shell,\n"
+"    Combine ARGs into a single string, use the result as input to the "
+"shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
@@ -2871,7 +2968,7 @@ msgstr ""
 "    退出状态:\n"
 "    以命令的状态退出,或者在命令为空的情况下返回成功。"
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2949,12 +3046,13 @@ msgstr ""
 "    如果一个选项被找到则返回成功;如果遇到了选项的结尾或者\n"
 "    有错误发生则返回失败。"
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
+"specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2962,11 +3060,13 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, "
+"unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error occurs."
+"    Returns success unless COMMAND is not found or a redirection error "
+"occurs."
 msgstr ""
 "使用指定命令替换 shell。\n"
 "    \n"
@@ -2985,7 +3085,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非 COMMAND 命令没有找到或者出现一个重定向错误。"
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2997,11 +3097,12 @@ msgstr ""
 "    以状态 N 退出 shell。  如果 N 被省略,则退出状态\n"
 "    为最后一个执行的命令的退出状态。"
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not "
+"executed\n"
 "    in a login shell."
 msgstr ""
 "退出一个登录 shell.\n"
@@ -3009,17 +3110,19 @@ msgstr ""
 "    以状态 N 退出一个登录 shell。如果不在登录 shell 中执行,则\n"
 "    返回一个错误。"
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history list.\n"
+"    fc is used to list or edit and re-execute commands from the history "
+"list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
+"EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -3033,7 +3136,8 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error occurs."
+"    Returns success or status of executed command; non-zero if an error "
+"occurs."
 msgstr ""
 "从历史列表中显示或者执行命令。\n"
 "    \n"
@@ -3059,7 +3163,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,或者执行的命令的状态;如果错误发生则返回非零。"
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -3079,12 +3183,14 @@ msgstr ""
 "    退出状态:\n"
 "    放至前台的命令状态,或者当错误发生时为失败。"
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if "
+"they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
+"notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3099,12 +3205,13 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非任务管理没有启用或者错误发生。"
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is displayed.\n"
+"    no arguments are given, information about remembered commands is "
+"displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -3141,7 +3248,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非 NAME 命令没有找到或者使用了无效的选项。"
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -3159,7 +3266,8 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is given."
+"    Returns success unless PATTERN is not found or an invalid option is "
+"given."
 msgstr ""
 "显示内建命令的相关信息。\n"
 "    \n"
@@ -3179,7 +3287,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非 PATTERN 模式没有找到或者使用了无效选项。"
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -3206,7 +3314,8 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed "
+"otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
@@ -3241,7 +3350,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者发生错误。"
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -3283,7 +3392,7 @@ msgstr ""
 "    返回成功,除非使用了无效的选项或者有错误发生。\n"
 "    如果使用 -x选项,则返回 COMMAND 命令的退出状态。"
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -3313,7 +3422,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非使用了无效的选项或者 JOBSPEC 声明。"
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -3352,7 +3461,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者有错误发生。"
 
-#: builtins.c:926
+#: builtins.c:934
 #, fuzzy
 msgid ""
 "Evaluate arithmetic expressions.\n"
@@ -3360,7 +3469,8 @@ msgid ""
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are "
+"listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -3437,18 +3547,22 @@ msgstr ""
 "    退出状态:\n"
 "    如果最后一个 ARG 参数估值为0,则 let 返回1; 否则 let 返回0。"
 
-#: builtins.c:971
+#: builtins.c:979
+#, fuzzy
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with word\n"
+"    if the -u option is supplied.  The line is split into fields as with "
+"word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as "
+"word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY "
+"variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -3460,22 +3574,28 @@ msgid ""
 "      -n nchars\treturn after reading NCHARS characters rather than waiting\n"
 "    \t\tfor a newline, but honor a delimiter if fewer than NCHARS\n"
 "    \t\tcharacters are read before the delimiter\n"
-"      -N nchars\treturn only after reading exactly NCHARS characters, unless\n"
+"      -N nchars\treturn only after reading exactly NCHARS characters, "
+"unless\n"
 "    \t\tEOF is encountered or read times out, ignoring any delimiter\n"
 "      -p prompt\toutput the string PROMPT without a trailing newline before\n"
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input is\n"
+"      -t timeout\ttime out and return failure if a complete line of input "
+"is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times "
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 "从标准输入读取一行并将其分为不同的域。\n"
@@ -3515,7 +3635,7 @@ msgstr ""
 "    返回码为零,除非遇到了文件结束符,读超时,或者无效的文\n"
 "    件描述符作为参数传递给了 -u 选项。"
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3535,7 +3655,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回 N,或者如果 shell 不在执行一个函数或引用脚本时,失败。"
 
-#: builtins.c:1027
+#: builtins.c:1037
 #, fuzzy
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
@@ -3579,7 +3699,8 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero status\n"
+"                           or zero if no command exited with a non-zero "
+"status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -3601,7 +3722,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3695,7 +3816,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非使用了无效的参数。"
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3705,7 +3826,8 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that fails,\n"
+"    Without options, unset first tries to unset a variable, and if that "
+"fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -3729,12 +3851,13 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者 NAME 名称为只读。"
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before "
+"exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -3761,7 +3884,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者 NAME 名称。"
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3796,7 +3919,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者 NAME 名称。"
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3814,7 +3937,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非 N 为负或者大于 $#。"
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3836,7 +3959,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回 FILENAME 文件中最后一个命令的状态;如果 FILENAME 文件不可读则失败。"
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3860,7 +3983,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非没有启用任务控制或者有错误发生。"
 
-#: builtins.c:1231
+#: builtins.c:1241
 #, fuzzy
 msgid ""
 "Evaluate conditional expression.\n"
@@ -3895,7 +4018,8 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last read.\n"
+"      -N FILE        True if the file has been modified since it was last "
+"read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3916,7 +4040,8 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 "
+"lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -4009,7 +4134,7 @@ msgstr ""
 "    如果 EXPR 表达式估值为真则返回成功;如果 EXPR 表达式估值\n"
 "    为假或者使用了无效的参数则返回失败。"
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4021,11 +4146,12 @@ msgstr ""
 "    是内建命令 \"test\" 的同义词,但是最后一个参数必须是\n"
 "    字符 `]',以匹配起始的 `['。"
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of its\n"
+"    Prints the accumulated user and system times for the shell and all of "
+"its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4039,12 +4165,13 @@ msgstr ""
 "    退出状态\n"
 "    总是成功。"
 
-#: builtins.c:1332
+#: builtins.c:1342
 #, fuzzy
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives signals\n"
+"    Defines and activates handlers to be run when the shell receives "
+"signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -4053,26 +4180,34 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
-"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
+"If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
+"If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
+"a\n"
+"    script run by the . or source builtins finishes executing.  A "
+"SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause "
+"the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands associated\n"
+"    If no arguments are supplied, trap prints the list of commands "
+"associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
+"number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is "
+"given."
 msgstr ""
 "对信号和其他事件设陷阱。\n"
 "    \n"
@@ -4101,7 +4236,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者 SIGSPEC。"
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4127,7 +4262,8 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not found."
+"    Returns success if all of the NAMEs are found; fails if any are not "
+"found."
 msgstr ""
 "显示命令类型的信息。\n"
 "    \n"
@@ -4152,11 +4288,13 @@ msgstr ""
 "    退出状态:\n"
 "    如果所有的 NAME 命令都找到则返回成功;任何找不到则失败。"
 
-#: builtins.c:1399
+#: builtins.c:1409
+#, fuzzy
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and processes\n"
+"    Provides control over the resources available to the shell and "
+"processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -4180,6 +4318,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -4231,7 +4372,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者错误发生。"
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4263,19 +4404,22 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的 MODE 模式或者选项。"
 
-#: builtins.c:1464
+#: builtins.c:1477
+#, fuzzy
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all processes\n"
-"    in the job's pipeline.\n"
+"    status is zero.  If ID is a a job specification, waits for all "
+"processes\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 "等待任务完成并返回退出状态。\n"
 "    \n"
@@ -4287,7 +4431,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回 ID 进程的状态;如果使用了无效的 ID 或者选项则失败。"
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -4296,7 +4440,8 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option "
+"is\n"
 "    given."
 msgstr ""
 "等待进程完成并且返回退出状态。\n"
@@ -4309,7 +4454,7 @@ msgstr ""
 "    返回进程ID的状态;如果ID是无效的进程号或者指定了无效\n"
 "    的选项则失败。"
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4330,7 +4475,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后执行的命令的状态。"
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4360,7 +4505,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后执行的命令的状态。"
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4393,7 +4538,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后一个执行的命令的状态。"
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4421,7 +4566,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回状态即PIPELINE 的返回状态。"
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -4439,16 +4584,21 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后一个执行的命令的状态。"
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
+"the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
+"is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
-"    entire construct is the exit status of the last command executed, or zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  "
+"Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of "
+"the\n"
+"    entire construct is the exit status of the last command executed, or "
+"zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4465,7 +4615,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后一个执行的命令的状态。"
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -4483,7 +4633,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后一个执行的命令的状态。"
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -4501,7 +4651,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后一个执行的命令的状态。"
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -4523,12 +4673,13 @@ msgstr ""
 "    退出状态:\n"
 "    返回 COMMAND 命令的退出状态。"
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
+"invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
@@ -4545,7 +4696,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功除非 NAME 为只读。"
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -4563,7 +4714,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回最后一个执行的命令的状态。"
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -4587,7 +4738,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回被继续的任务的状态。"
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -4605,13 +4756,16 @@ msgstr ""
 "    退出状态\n"
 "    如果表达式估值为0则返回 1;否则返回0。"
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
-"    by the `test' builtin, and may be combined using the following operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the "
+"conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries "
+"used\n"
+"    by the `test' builtin, and may be combined using the following "
+"operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -4637,7 +4791,8 @@ msgstr ""
 "      ( EXPRESSION )\t返回 EXPRESSION 表达式的值\n"
 "      ! EXPRESSION\t\t如果 EXPRESSION表达式为假则为真,否则为假\n"
 "      EXPR1 && EXPR2\t如果 EXPR1 和 EXPR2 表达式均为真则为真,否则为假\n"
-"      EXPR1 || EXPR2\t如果 EXPR1 和 EXPR2 表达式中有一个为真则为真,否则为假\n"
+"      EXPR1 || EXPR2\t如果 EXPR1 和 EXPR2 表达式中有一个为真则为真,否则为"
+"假\n"
 "    \n"
 "    当使用 `==' 和 `!=' 操作符时,操作符右边的字符串被用作模式并且执行一个\n"
 "    匹配。当使用 `=~' 操作符时,操作符右边的字符串被当作正则表达式来进行\n"
@@ -4649,7 +4804,7 @@ msgstr ""
 "    退出状态:\n"
 "    根据 EXPRESSION 的值为0或1。"
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -4744,7 +4899,7 @@ msgstr ""
 "    HISTIGNORE\t用于决定哪些命令被存入历史文件的模式\n"
 "    \t\t列表,以冒号分隔。\n"
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -4797,7 +4952,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的参数或者目录转换失败。"
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -4844,7 +4999,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的参数或者目录变换失败。"
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -4861,10 +5016,12 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown "
+"by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
@@ -4891,12 +5048,13 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者发生错误。"
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not each\n"
+"    arguments, list all shell options with an indication of whether or not "
+"each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -4927,7 +5085,7 @@ msgstr ""
 "    如果 OPTNAME 选项被启用则返回成功;如果是\n"
 "    无效的选项或OPTNAME 被禁用则失败。"
 
-#: builtins.c:1884
+#: builtins.c:1897
 #, fuzzy
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
@@ -4936,22 +5094,28 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: plain\n"
-"    characters, which are simply copied to standard output; character escape\n"
+"    FORMAT is a character string which contains three types of objects: "
+"plain\n"
+"    characters, which are simply copied to standard output; character "
+"escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next successive\n"
+"    format specifications, each of which causes printing of the next "
+"successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf(1)\n"
-"    and printf(3), printf interprets:\n"
+"    In addition to the standard format specifications described in printf"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
-"      %(fmt)T output the date-time string resulting from using FMT as a format\n"
+"      %(fmt)T output the date-time string resulting from using FMT as a "
+"format\n"
 "            string for strftime(3)\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or assignment\n"
+"    Returns success unless an invalid option is given or a write or "
+"assignment\n"
 "    error occurs."
 msgstr ""
 "在 FORMAT 变量的控制下格式化并打印 ARGUMENTS 参数。\n"
@@ -4960,7 +5124,8 @@ msgstr ""
 "      -v var\t将输出赋值给 shell 变量 VAR 而不显示在标准输出上\n"
 "    \n"
 "    FORMAT 变量是包含三种对象的字符串:简单地被拷贝到标准输出的普通字符;\n"
-"    被变换之后拷贝到标准输入的转义字符;以及每个都会影响到下个参数的打印的    格式化声明。\n"
+"    被变换之后拷贝到标准输入的转义字符;以及每个都会影响到下个参数的打印"
+"的    格式化声明。\n"
 "    \n"
 "    在 printf(1)、printf(3) 中描述的标准控制声明之外,printf解析:\n"
 "、    \n"
@@ -4970,12 +5135,14 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者写或赋值错误发生。"
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no options\n"
-"    are supplied, existing completion specifications are printed in a way that\n"
+"    For each NAME, specify how arguments are to be completed.  If no "
+"options\n"
+"    are supplied, existing completion specifications are printed in a way "
+"that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -5012,12 +5179,13 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者错误发生。"
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches against\n"
+"    completions.  If the optional WORD argument is supplied, matches "
+"against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
@@ -5032,14 +5200,17 @@ msgstr ""
 "    退出状态:\n"
 "    除非使用了无效选项或者错误发生,否则返回成功。"
 
-#: builtins.c:1956
+#: builtins.c:1969
 #, fuzzy
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
-"    the completion currently being executed.  If no OPTIONs are given, print\n"
-"    the completion options for each NAME or the current completion specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are "
+"supplied,\n"
+"    the completion currently being executed.  If no OPTIONs are given, "
+"print\n"
+"    the completion options for each NAME or the current completion "
+"specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -5082,23 +5253,29 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项或者 NAME 名称没有定义补完声明。"
 
-#: builtins.c:1986
+#: builtins.c:1999
 #, fuzzy
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
-"    Read lines from the standard input into the indexed array variable ARRAY, or\n"
-"    from file descriptor FD if the -u option is supplied.  The variable MAPFILE\n"
+"    Read lines from the standard input into the indexed array variable "
+"ARRAY, or\n"
+"    from file descriptor FD if the -u option is supplied.  The variable "
+"MAPFILE\n"
 "    is the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
+"copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
+"index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
+"input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to "
+"CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
@@ -5108,11 +5285,13 @@ msgid ""
 "    element to be assigned and the line to be assigned to that element\n"
 "    as additional arguments.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY "
+"before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or ARRAY is readonly or\n"
+"    Returns success unless an invalid option is given or ARRAY is readonly "
+"or\n"
 "    not an indexed array."
 msgstr ""
 "从标准输入读取行到下表数组变量中。\n"
@@ -5140,7 +5319,7 @@ msgstr ""
 "    退出状态:\n"
 "    返回成功,除非使用了无效的选项,或者 ARRAY 变量是只读或者不是下标数组。"
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5161,7 +5340,8 @@ msgstr ""
 #~ "; 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"
+#~ "    The value of EXPR indicates how many call frames to go back before "
+#~ "the\n"
 #~ "    current one; the top frame is frame 0."
 #~ msgstr ""
 #~ "; 这个额外信息可被用于\n"
index b965d5f729935ca96dae5c1138978eeda7a417b9..a4169b17d5aa44ff4f19c37a4da01dc100ea02e1 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index 38de844e8a7621c42d8270a9dcab1500a910d4aa..a3bc8c040a378d6fbefaac433968f78b4e35d348 100644 (file)
@@ -7,59 +7,60 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bash-3.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-28 22:09-0500\n"
+"POT-Creation-Date: 2012-03-05 22:17-0500\n"
 "PO-Revision-Date: 2008-08-20 20:12+0800\n"
 "Last-Translator: Zi-You Dai  <ioppooster@gmail.com>\n"
 "Language-Team: Chinese (traditional)  <zh-l10n@linux.org.tw>\n"
+"Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: arrayfunc.c:50
+#: arrayfunc.c:51
 msgid "bad array subscript"
 msgstr ""
 
-#: arrayfunc.c:313 builtins/declare.def:487
+#: arrayfunc.c:330 builtins/declare.def:487
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr ""
 
-#: arrayfunc.c:480
+#: arrayfunc.c:513
 #, fuzzy, c-format
 msgid "%s: invalid associative array key"
 msgstr "%s:無效的功能名稱"
 
-#: arrayfunc.c:482
+#: arrayfunc.c:515
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr ""
 
-#: arrayfunc.c:518
+#: arrayfunc.c:557
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr ""
 
-#: bashhist.c:387
+#: bashhist.c:388
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr ""
 
-#: bashline.c:3498
+#: bashline.c:3868
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr ""
 
-#: bashline.c:3584
+#: bashline.c:3955
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr ""
 
-#: bashline.c:3613
+#: bashline.c:3984
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr ""
 
-#: bashline.c:3647
+#: bashline.c:4018
 #, c-format
 msgid "%s: missing colon separator"
 msgstr ""
@@ -69,36 +70,36 @@ msgstr ""
 msgid "`%s': invalid alias name"
 msgstr "%s:無效的功能名稱"
 
-#: builtins/bind.def:120 builtins/bind.def:123
+#: builtins/bind.def:123 builtins/bind.def:126
 msgid "line editing not enabled"
 msgstr ""
 
-#: builtins/bind.def:206
+#: builtins/bind.def:212
 #, c-format
 msgid "`%s': invalid keymap name"
 msgstr ""
 
-#: builtins/bind.def:245
+#: builtins/bind.def:251
 #, c-format
 msgid "%s: cannot read: %s"
 msgstr "%s:不能讀取: %s"
 
-#: builtins/bind.def:260
+#: builtins/bind.def:266
 #, c-format
 msgid "`%s': cannot unbind"
 msgstr ""
 
-#: builtins/bind.def:295 builtins/bind.def:325
+#: builtins/bind.def:304 builtins/bind.def:334
 #, c-format
 msgid "`%s': unknown function name"
 msgstr "`%s':未知函數名稱"
 
-#: builtins/bind.def:303
+#: builtins/bind.def:312
 #, c-format
 msgid "%s is not bound to any keys.\n"
 msgstr ""
 
-#: builtins/bind.def:307
+#: builtins/bind.def:316
 #, c-format
 msgid "%s can be invoked via "
 msgstr ""
@@ -118,11 +119,15 @@ msgid ""
 "    Without EXPR, returns "
 msgstr ""
 
-#: builtins/cd.def:235
+#: builtins/cd.def:239
 msgid "HOME not set"
 msgstr "HOME 沒有設置"
 
-#: builtins/cd.def:247
+#: builtins/cd.def:247 builtins/common.c:166 test.c:832
+msgid "too many arguments"
+msgstr "太多引數"
+
+#: builtins/cd.def:258
 msgid "OLDPWD not set"
 msgstr "OLDPWD 沒有設置"
 
@@ -131,7 +136,7 @@ msgstr "OLDPWD 沒有設置"
 msgid "line %d: "
 msgstr ""
 
-#: builtins/common.c:139 error.c:261
+#: builtins/common.c:139 error.c:265
 #, fuzzy, c-format
 msgid "warning: "
 msgstr "%s:警告:"
@@ -141,11 +146,7 @@ msgstr "%s:警告:"
 msgid "%s: usage: "
 msgstr "%s:警告:"
 
-#: builtins/common.c:166 test.c:832
-msgid "too many arguments"
-msgstr "太多引數"
-
-#: builtins/common.c:191 shell.c:500 shell.c:782
+#: builtins/common.c:191 shell.c:504 shell.c:786
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s:選項需要一個引數"
@@ -160,7 +161,7 @@ msgstr "%s:數字引數必須"
 msgid "%s: not found"
 msgstr "%s:沒有找到"
 
-#: builtins/common.c:214 shell.c:795
+#: builtins/common.c:214 shell.c:799
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s:無效選項"
@@ -170,7 +171,7 @@ msgstr "%s:無效選項"
 msgid "%s: invalid option name"
 msgstr "%s:無效選項名"
 
-#: builtins/common.c:228 general.c:231 general.c:236
+#: builtins/common.c:228 general.c:234 general.c:239
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "`%s':不是一個有效的識別符"
@@ -185,7 +186,7 @@ msgstr "無效信號數"
 msgid "invalid hex number"
 msgstr "%s:無效的號碼"
 
-#: builtins/common.c:242 expr.c:1362
+#: builtins/common.c:242 expr.c:1431
 msgid "invalid number"
 msgstr ""
 
@@ -199,7 +200,7 @@ msgstr "%s:無效的信號規格"
 msgid "`%s': not a pid or valid job spec"
 msgstr "`%s':不是一個 pid 或有效的工作規格"
 
-#: builtins/common.c:264 error.c:454
+#: builtins/common.c:264 error.c:458
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s:只讀變數"
@@ -271,26 +272,26 @@ msgstr "%s:錯誤檢索當前目錄: %s: %s\n"
 msgid "%s: ambiguous job spec"
 msgstr "%s:含糊的工作規格"
 
-#: builtins/complete.def:276
+#: builtins/complete.def:277
 #, c-format
 msgid "%s: invalid action name"
 msgstr "%s:無效的功能名稱"
 
-#: builtins/complete.def:449 builtins/complete.def:644
-#: builtins/complete.def:853
+#: builtins/complete.def:450 builtins/complete.def:645
+#: builtins/complete.def:855
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s:沒有完成的規格"
 
-#: builtins/complete.def:696
+#: builtins/complete.def:697
 msgid "warning: -F option may not work as you expect"
 msgstr "警告: -F 選項可能無法按預期工作"
 
-#: builtins/complete.def:698
+#: builtins/complete.def:699
 msgid "warning: -C option may not work as you expect"
 msgstr "警告: -C 選項可能無法按預期工作"
 
-#: builtins/complete.def:826
+#: builtins/complete.def:828
 msgid "not currently executing completion function"
 msgstr ""
 
@@ -302,7 +303,7 @@ msgstr "只能用在一個函數"
 msgid "cannot use `-f' to make functions"
 msgstr ""
 
-#: builtins/declare.def:378 execute_cmd.c:5105
+#: builtins/declare.def:378 execute_cmd.c:5253
 #, c-format
 msgid "%s: readonly function"
 msgstr "%s:只讀函數"
@@ -312,7 +313,7 @@ msgstr "%s:只讀函數"
 msgid "%s: cannot destroy array variables in this way"
 msgstr ""
 
-#: builtins/declare.def:481
+#: builtins/declare.def:481 builtins/read.def:702
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr ""
@@ -341,8 +342,8 @@ msgstr ""
 msgid "%s: cannot delete: %s"
 msgstr ""
 
-#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:4961
-#: shell.c:1457
+#: builtins/evalfile.c:135 builtins/hash.def:171 execute_cmd.c:5100
+#: shell.c:1461
 #, c-format
 msgid "%s: is a directory"
 msgstr ""
@@ -357,8 +358,7 @@ msgstr ""
 msgid "%s: file is too large"
 msgstr ""
 
-#: builtins/evalfile.c:182 builtins/evalfile.c:200 execute_cmd.c:5032
-#: shell.c:1467
+#: builtins/evalfile.c:182 builtins/evalfile.c:200 shell.c:1471
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr ""
@@ -470,7 +470,7 @@ msgstr ""
 msgid "history position"
 msgstr ""
 
-#: builtins/history.def:365
+#: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
 msgstr ""
@@ -493,7 +493,7 @@ msgstr ""
 msgid "Unknown error"
 msgstr ""
 
-#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+#: builtins/let.def:95 builtins/let.def:120 expr.c:577 expr.c:592
 msgid "expression expected"
 msgstr ""
 
@@ -502,12 +502,12 @@ msgstr ""
 msgid "%s: not an indexed array"
 msgstr ""
 
-#: builtins/mapfile.def:256 builtins/read.def:279
+#: builtins/mapfile.def:256 builtins/read.def:299
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr ""
 
-#: builtins/mapfile.def:264 builtins/read.def:286
+#: builtins/mapfile.def:264 builtins/read.def:306
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr ""
@@ -535,31 +535,31 @@ msgstr ""
 msgid "array variable support required"
 msgstr ""
 
-#: builtins/printf.def:394
+#: builtins/printf.def:397
 #, c-format
 msgid "`%s': missing format character"
 msgstr ""
 
-#: builtins/printf.def:448
+#: builtins/printf.def:451
 #, fuzzy, c-format
 msgid "`%c': invalid time format specification"
 msgstr "%s:無效的信號規格"
 
-#: builtins/printf.def:635
+#: builtins/printf.def:647
 #, c-format
 msgid "`%c': invalid format character"
 msgstr ""
 
-#: builtins/printf.def:662
+#: builtins/printf.def:673
 #, fuzzy, c-format
 msgid "warning: %s: %s"
 msgstr "%s:警告:"
 
-#: builtins/printf.def:840
+#: builtins/printf.def:854
 msgid "missing hex digit for \\x"
 msgstr ""
 
-#: builtins/printf.def:855
+#: builtins/printf.def:869
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr ""
@@ -650,17 +650,17 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 
-#: builtins/read.def:252
+#: builtins/read.def:272
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr ""
 
-#: builtins/read.def:588
+#: builtins/read.def:644
 #, c-format
 msgid "read error: %d: %s"
 msgstr ""
 
-#: builtins/return.def:73
+#: builtins/return.def:75
 msgid "can only `return' from a function or sourced script"
 msgstr ""
 
@@ -668,17 +668,17 @@ msgstr ""
 msgid "cannot simultaneously unset a function and a variable"
 msgstr ""
 
-#: builtins/set.def:808
+#: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset"
 msgstr ""
 
-#: builtins/set.def:815
+#: builtins/set.def:829
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr ""
 
-#: builtins/set.def:826
+#: builtins/set.def:841
 #, c-format
 msgid "%s: not an array variable"
 msgstr ""
@@ -692,11 +692,11 @@ msgstr ""
 msgid "shift count"
 msgstr ""
 
-#: builtins/shopt.def:264
+#: builtins/shopt.def:277
 msgid "cannot set and unset shell options simultaneously"
 msgstr ""
 
-#: builtins/shopt.def:329
+#: builtins/shopt.def:342
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr ""
@@ -738,7 +738,7 @@ msgstr ""
 msgid "%s is a shell builtin\n"
 msgstr ""
 
-#: builtins/type.def:317 builtins/type.def:391
+#: builtins/type.def:317 builtins/type.def:393
 #, c-format
 msgid "%s is %s\n"
 msgstr ""
@@ -748,26 +748,26 @@ msgstr ""
 msgid "%s is hashed (%s)\n"
 msgstr ""
 
-#: builtins/ulimit.def:376
+#: builtins/ulimit.def:379
 #, c-format
 msgid "%s: invalid limit argument"
 msgstr ""
 
-#: builtins/ulimit.def:402
+#: builtins/ulimit.def:405
 #, c-format
 msgid "`%c': bad command"
 msgstr "`%c':壞的命令"
 
-#: builtins/ulimit.def:431
+#: builtins/ulimit.def:434
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s:不能得到 limit: %s"
 
-#: builtins/ulimit.def:457
+#: builtins/ulimit.def:460
 msgid "limit"
 msgstr ""
 
-#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#: builtins/ulimit.def:472 builtins/ulimit.def:772
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s:不能修改 limit: %s"
@@ -786,7 +786,7 @@ msgstr ""
 msgid "`%c': invalid symbolic mode character"
 msgstr ""
 
-#: error.c:90 error.c:321 error.c:323 error.c:325
+#: error.c:90 error.c:325 error.c:327 error.c:329
 msgid " line "
 msgstr ""
 
@@ -800,23 +800,23 @@ msgstr "最後的命令: %s\n"
 msgid "Aborting..."
 msgstr ""
 
-#: error.c:406
+#: error.c:410
 msgid "unknown command error"
 msgstr "未知命令錯誤"
 
-#: error.c:407
+#: error.c:411
 msgid "bad command type"
 msgstr "壞的命令類型"
 
-#: error.c:408
+#: error.c:412
 msgid "bad connector"
 msgstr "壞的連接器"
 
-#: error.c:409
+#: error.c:413
 msgid "bad jump"
 msgstr ""
 
-#: error.c:447
+#: error.c:451
 #, c-format
 msgid "%s: unbound variable"
 msgstr ""
@@ -831,103 +831,118 @@ msgstr ""
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr ""
 
-#: execute_cmd.c:1168
+#: execute_cmd.c:1199
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr ""
 
-#: execute_cmd.c:2121
+#: execute_cmd.c:2240
 #, fuzzy
 msgid "pipe error"
 msgstr "寫入錯誤: %s"
 
-#: execute_cmd.c:4640
+#: execute_cmd.c:4284
+#, c-format
+msgid "%s: maximum function nesting level exceeded (%d)"
+msgstr ""
+
+#: execute_cmd.c:4777
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr ""
 
-#: execute_cmd.c:4735
+#: execute_cmd.c:4872
 #, c-format
 msgid "%s: command not found"
 msgstr "%s:命令找不到"
 
-#: execute_cmd.c:4959
+#: execute_cmd.c:5098
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: execute_cmd.c:4995
+#: execute_cmd.c:5135
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr ""
 
-#: execute_cmd.c:5144
+#: execute_cmd.c:5172
+#, fuzzy, c-format
+msgid "%s: cannot execute binary file: %s"
+msgstr "%s:不能得到 limit: %s"
+
+#: execute_cmd.c:5244
+#, fuzzy, c-format
+msgid "`%s': is a special builtin"
+msgstr "%s:不是一個內建 shell"
+
+#: execute_cmd.c:5296
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr ""
 
-#: expr.c:256
+#: expr.c:258
 msgid "expression recursion level exceeded"
 msgstr ""
 
-#: expr.c:280
+#: expr.c:282
 msgid "recursion stack underflow"
 msgstr ""
 
-#: expr.c:422
+#: expr.c:430
 msgid "syntax error in expression"
 msgstr "表達語法錯誤"
 
-#: expr.c:463
+#: expr.c:474
 msgid "attempted assignment to non-variable"
 msgstr ""
 
-#: expr.c:486 expr.c:491 expr.c:807
+#: expr.c:493 expr.c:838
 msgid "division by 0"
 msgstr ""
 
-#: expr.c:517
+#: expr.c:540
 msgid "bug: bad expassign token"
 msgstr ""
 
-#: expr.c:564
+#: expr.c:589
 msgid "`:' expected for conditional expression"
 msgstr ""
 
-#: expr.c:832
+#: expr.c:895
 msgid "exponent less than 0"
 msgstr ""
 
-#: expr.c:887
+#: expr.c:948
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr ""
 
-#: expr.c:910
+#: expr.c:973
 msgid "missing `)'"
 msgstr ""
 
-#: expr.c:959 expr.c:1282
+#: expr.c:1024 expr.c:1351
 msgid "syntax error: operand expected"
 msgstr ""
 
-#: expr.c:1284
+#: expr.c:1353
 msgid "syntax error: invalid arithmetic operator"
 msgstr ""
 
-#: expr.c:1308
+#: expr.c:1377
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr ""
 
-#: expr.c:1366
+#: expr.c:1435
 msgid "invalid arithmetic base"
 msgstr ""
 
-#: expr.c:1386
+#: expr.c:1455
 msgid "value too great for base"
 msgstr ""
 
-#: expr.c:1435
+#: expr.c:1504
 #, c-format
 msgid "%s: expression error\n"
 msgstr ""
@@ -936,163 +951,163 @@ msgstr ""
 msgid "getcwd: cannot access parent directories"
 msgstr ""
 
-#: input.c:94 subst.c:5082
+#: input.c:99 subst.c:5094
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr ""
 
-#: input.c:260
+#: input.c:265
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
 msgstr ""
 
-#: input.c:268
+#: input.c:273
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
 msgstr ""
 
-#: jobs.c:468
+#: jobs.c:470
 msgid "start_pipeline: pgrp pipe"
 msgstr ""
 
-#: jobs.c:889
+#: jobs.c:891
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr ""
 
-#: jobs.c:1007
+#: jobs.c:1009
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr ""
 
-#: jobs.c:1112
+#: jobs.c:1114
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
 msgstr ""
 
-#: jobs.c:1115
+#: jobs.c:1117
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr ""
 
-#: jobs.c:1430
+#: jobs.c:1432
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr ""
 
-#: jobs.c:1445
+#: jobs.c:1447
 #, c-format
 msgid "Signal %d"
 msgstr ""
 
-#: jobs.c:1459 jobs.c:1484
+#: jobs.c:1461 jobs.c:1486
 msgid "Done"
 msgstr ""
 
-#: jobs.c:1464 siglist.c:123
+#: jobs.c:1466 siglist.c:123
 msgid "Stopped"
 msgstr ""
 
-#: jobs.c:1468
+#: jobs.c:1470
 #, c-format
 msgid "Stopped(%s)"
 msgstr ""
 
-#: jobs.c:1472
+#: jobs.c:1474
 msgid "Running"
 msgstr ""
 
-#: jobs.c:1486
+#: jobs.c:1488
 #, c-format
 msgid "Done(%d)"
 msgstr ""
 
-#: jobs.c:1488
+#: jobs.c:1490
 #, c-format
 msgid "Exit %d"
 msgstr ""
 
-#: jobs.c:1491
+#: jobs.c:1493
 msgid "Unknown status"
 msgstr ""
 
-#: jobs.c:1578
+#: jobs.c:1580
 #, c-format
 msgid "(core dumped) "
 msgstr ""
 
-#: jobs.c:1597
+#: jobs.c:1599
 #, c-format
 msgid "  (wd: %s)"
 msgstr ""
 
-#: jobs.c:1805
+#: jobs.c:1807
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr ""
 
-#: jobs.c:2133 nojobs.c:585
+#: jobs.c:2135 nojobs.c:585
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr ""
 
-#: jobs.c:2360
+#: jobs.c:2372
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr ""
 
-#: jobs.c:2637
+#: jobs.c:2653
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr ""
 
-#: jobs.c:2859
+#: jobs.c:2875
 #, c-format
 msgid "%s: job has terminated"
 msgstr ""
 
-#: jobs.c:2868
+#: jobs.c:2884
 #, c-format
 msgid "%s: job %d already in background"
 msgstr ""
 
-#: jobs.c:3089
+#: jobs.c:3105
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr ""
 
-#: jobs.c:3538
+#: jobs.c:3571
 #, fuzzy, c-format
 msgid "%s: line %d: "
 msgstr "%s:警告:"
 
-#: jobs.c:3552 nojobs.c:814
+#: jobs.c:3585 nojobs.c:818
 #, c-format
 msgid " (core dumped)"
 msgstr ""
 
-#: jobs.c:3564 jobs.c:3577
+#: jobs.c:3597 jobs.c:3610
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr ""
 
-#: jobs.c:3609
+#: jobs.c:3642
 msgid "initialize_job_control: getpgrp failed"
 msgstr ""
 
-#: jobs.c:3669
+#: jobs.c:3703
 msgid "initialize_job_control: line discipline"
 msgstr ""
 
-#: jobs.c:3679
+#: jobs.c:3713
 msgid "initialize_job_control: setpgid"
 msgstr ""
 
-#: jobs.c:3707
+#: jobs.c:3734 jobs.c:3743
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr ""
 
-#: jobs.c:3712
+#: jobs.c:3748
 msgid "no job control in this shell"
 msgstr ""
 
@@ -1160,7 +1175,7 @@ msgstr ""
 msgid "register_free: %p already in table as free?\n"
 msgstr ""
 
-#: lib/sh/fmtulong.c:101
+#: lib/sh/fmtulong.c:102
 msgid "invalid base"
 msgstr ""
 
@@ -1183,22 +1198,22 @@ msgstr "%s:壞的網路路徑規格"
 msgid "network operations not supported"
 msgstr "不支持網路操作"
 
-#: locale.c:192
+#: locale.c:204
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:194
+#: locale.c:206
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr ""
 
-#: locale.c:247
+#: locale.c:263
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr ""
 
-#: locale.c:249
+#: locale.c:265
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr ""
@@ -1229,118 +1244,118 @@ msgstr "語法錯誤: `;' 意外"
 msgid "syntax error: `((%s))'"
 msgstr "語法錯誤: `((%s))'"
 
-#: make_cmd.c:575
+#: make_cmd.c:578
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document:壞的指示類型 %d"
 
-#: make_cmd.c:659
+#: make_cmd.c:662
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr ""
 
-#: make_cmd.c:756
+#: make_cmd.c:759
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
 msgstr "make_redirection:重新導向指示 `%d' 超出範圍"
 
-#: parse.y:3173 parse.y:3444
+#: parse.y:3173 parse.y:3448
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr ""
 
-#: parse.y:4025
+#: parse.y:4038
 msgid "unexpected EOF while looking for `]]'"
 msgstr ""
 
-#: parse.y:4030
+#: parse.y:4043
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr ""
 
-#: parse.y:4034
+#: parse.y:4047
 msgid "syntax error in conditional expression"
 msgstr "語法錯誤,在有條件的表達"
 
-#: parse.y:4112
+#: parse.y:4125
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr ""
 
-#: parse.y:4116
+#: parse.y:4129
 msgid "expected `)'"
 msgstr "預期 `)'"
 
-#: parse.y:4144
+#: parse.y:4157
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr ""
 
-#: parse.y:4148
+#: parse.y:4161
 msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
-#: parse.y:4194
+#: parse.y:4207
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4198
+#: parse.y:4211
 msgid "conditional binary operator expected"
 msgstr ""
 
-#: parse.y:4220
+#: parse.y:4233
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr ""
 
-#: parse.y:4224
+#: parse.y:4237
 msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
-#: parse.y:4235
+#: parse.y:4248
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr ""
 
-#: parse.y:4238
+#: parse.y:4251
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr ""
 
-#: parse.y:4242
+#: parse.y:4255
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr ""
 
-#: parse.y:5566
+#: parse.y:5590
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr ""
 
-#: parse.y:5584
+#: parse.y:5608
 #, c-format
 msgid "syntax error near `%s'"
 msgstr ""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error: unexpected end of file"
 msgstr ""
 
-#: parse.y:5594
+#: parse.y:5618
 msgid "syntax error"
 msgstr "語法錯誤"
 
-#: parse.y:5656
+#: parse.y:5680
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr ""
 
-#: parse.y:5818
+#: parse.y:5842
 msgid "unexpected EOF while looking for matching `)'"
 msgstr ""
 
-#: pcomplete.c:1030
+#: pcomplete.c:1079
 #, c-format
 msgid "completion: function `%s' not found"
 msgstr ""
@@ -1350,26 +1365,26 @@ msgstr ""
 msgid "progcomp_insert: %s: NULL COMPSPEC"
 msgstr ""
 
-#: print_cmd.c:296
+#: print_cmd.c:300
 #, c-format
 msgid "print_command: bad connector `%d'"
 msgstr ""
 
-#: print_cmd.c:368
+#: print_cmd.c:373
 #, c-format
 msgid "xtrace_set: %d: invalid file descriptor"
 msgstr ""
 
-#: print_cmd.c:373
+#: print_cmd.c:378
 msgid "xtrace_set: NULL file pointer"
 msgstr ""
 
-#: print_cmd.c:377
+#: print_cmd.c:382
 #, c-format
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr ""
 
-#: print_cmd.c:1478
+#: print_cmd.c:1503
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr ""
@@ -1407,33 +1422,33 @@ msgstr "%s:只讀變數"
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
-#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
+#: redir.c:818 redir.c:930 redir.c:993 redir.c:1142
 msgid "redirection error: cannot duplicate fd"
 msgstr ""
 
-#: shell.c:333
+#: shell.c:337
 msgid "could not find /tmp, please create!"
 msgstr ""
 
-#: shell.c:337
+#: shell.c:341
 msgid "/tmp must be a valid directory name"
 msgstr ""
 
-#: shell.c:884
+#: shell.c:888
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c:無效選項"
 
-#: shell.c:1652
+#: shell.c:1662
 msgid "I have no name!"
 msgstr "我沒有名字!"
 
-#: shell.c:1795
+#: shell.c:1807
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr ""
 
-#: shell.c:1796
+#: shell.c:1808
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1442,39 +1457,39 @@ msgstr ""
 "用法:\t%s [GNU 長選項] [選項] ...\n"
 "\t%s [GNU 長選項] [選項] script-file ...\n"
 
-#: shell.c:1798
+#: shell.c:1810
 msgid "GNU long options:\n"
 msgstr "GNU 長選項:\n"
 
-#: shell.c:1802
+#: shell.c:1814
 msgid "Shell options:\n"
 msgstr "Shell 選項:\n"
 
-#: shell.c:1803
+#: shell.c:1815
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD 或 -c 命令或 -O shopt_option\t\t(只有引用)\n"
 
-#: shell.c:1818
+#: shell.c:1830
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t-%s or -o 選項\n"
 
-#: shell.c:1824
+#: shell.c:1836
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "輸入 `%s -c \"help set\"' 更多訊息關於 shell 選項。\n"
 
-#: shell.c:1825
+#: shell.c:1837
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "輸入 `%s -c help' 更多訊息關於內建 shell 命令。\n"
 
-#: shell.c:1826
+#: shell.c:1838
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "使用 `bashbug' 命令報告臭蟲。\n"
 
-#: sig.c:638
+#: sig.c:647
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d:無效操作"
@@ -1650,83 +1665,83 @@ msgstr ""
 msgid "Unknown Signal #%d"
 msgstr ""
 
-#: subst.c:1333 subst.c:1502
+#: subst.c:1335 subst.c:1506
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr ""
 
-#: subst.c:2795
+#: subst.c:2801
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr ""
 
-#: subst.c:4979 subst.c:4995
+#: subst.c:4991 subst.c:5007
 msgid "cannot make pipe for process substitution"
 msgstr ""
 
-#: subst.c:5027
+#: subst.c:5039
 msgid "cannot make child for process substitution"
 msgstr ""
 
-#: subst.c:5072
+#: subst.c:5084
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr ""
 
-#: subst.c:5074
+#: subst.c:5086
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr ""
 
-#: subst.c:5092
+#: subst.c:5104
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr ""
 
-#: subst.c:5284
+#: subst.c:5296
 msgid "cannot make pipe for command substitution"
 msgstr ""
 
-#: subst.c:5322
+#: subst.c:5334
 msgid "cannot make child for command substitution"
 msgstr ""
 
-#: subst.c:5339
+#: subst.c:5351
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr ""
 
-#: subst.c:5859
+#: subst.c:5875
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr ""
 
-#: subst.c:6125 subst.c:6140
+#: subst.c:6141 subst.c:6156
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr ""
 
-#: subst.c:7271
+#: subst.c:7284
 #, c-format
 msgid "%s: bad substitution"
 msgstr ""
 
-#: subst.c:7347
+#: subst.c:7361
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr ""
 
-#: subst.c:7684
+#: subst.c:7697
 msgid ""
 "future versions of the shell will force evaluation as an arithmetic "
 "substitution"
 msgstr ""
 
-#: subst.c:8149
+#: subst.c:8165
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr ""
 
-#: subst.c:9036
+#: subst.c:9056
 #, c-format
 msgid "no match: %s"
 msgstr ""
@@ -1763,77 +1778,77 @@ msgstr ""
 msgid "missing `]'"
 msgstr ""
 
-#: trap.c:207
+#: trap.c:209
 msgid "invalid signal number"
 msgstr "無效信號數"
 
-#: trap.c:337
+#: trap.c:329
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr ""
 
-#: trap.c:341
+#: trap.c:333
 #, c-format
 msgid ""
 "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
 msgstr "run_pending_traps: 信號處理是 SIG_DFL, resending %d (%s) to myself"
 
-#: trap.c:393
+#: trap.c:379
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler:壞的信號 %d"
 
-#: variables.c:363
+#: variables.c:366
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "錯誤,輸入的函數定義為 `%s'"
 
-#: variables.c:755
+#: variables.c:764
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr ""
 
-#: variables.c:1932
+#: variables.c:1941
 msgid "make_local_variable: no function context at current scope"
 msgstr ""
 
-#: variables.c:3182
+#: variables.c:3192
 msgid "all_local_variables: no function context at current scope"
 msgstr ""
 
-#: variables.c:3427
+#: variables.c:3437
 #, c-format
 msgid "%s has null exportstr"
 msgstr ""
 
-#: variables.c:3432 variables.c:3441
+#: variables.c:3442 variables.c:3451
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr ""
 
-#: variables.c:3447
+#: variables.c:3457
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr ""
 
-#: variables.c:3891
+#: variables.c:3917
 msgid "pop_var_context: head of shell_variables not a function context"
 msgstr ""
 
-#: variables.c:3904
+#: variables.c:3930
 msgid "pop_var_context: no global_variables context"
 msgstr ""
 
-#: variables.c:3978
+#: variables.c:4004
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
 msgstr ""
 
-#: variables.c:4786
+#: variables.c:4821
 #, fuzzy, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s:不能讀取: %s"
 
-#: variables.c:4791
+#: variables.c:4826
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr ""
@@ -1905,7 +1920,7 @@ msgstr ""
 
 #: builtins.c:51
 msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
+"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
 "x keyseq:shell-command] [keyseq:readline-function or readline-command]"
 msgstr ""
 
@@ -2101,7 +2116,7 @@ msgid "type [-afptP] name [name ...]"
 msgstr ""
 
 #: builtins.c:169
-msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgid "ulimit [-SHabcdefilmnpqrstuvxT] [limit]"
 msgstr ""
 
 #: builtins.c:172
@@ -2109,7 +2124,7 @@ msgid "umask [-p] [-S] [mode]"
 msgstr ""
 
 #: builtins.c:175
-msgid "wait [id]"
+msgid "wait [id ...]"
 msgstr ""
 
 #: builtins.c:179
@@ -2298,12 +2313,14 @@ msgid ""
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
 "    \t\t\t\tKEYSEQ is entered.\n"
+"      -X\t\t     List key sequences bound with -x and associated commands\n"
+"                         in a form that can be reused as input.\n"
 "    \n"
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:326
+#: builtins.c:328
 msgid ""
 "Exit for, while, or until loops.\n"
 "    \n"
@@ -2314,7 +2331,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:338
+#: builtins.c:340
 msgid ""
 "Resume for, while, or until loops.\n"
 "    \n"
@@ -2325,7 +2342,7 @@ msgid ""
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
 
-#: builtins.c:350
+#: builtins.c:352
 msgid ""
 "Execute shell builtins.\n"
 "    \n"
@@ -2339,7 +2356,7 @@ msgid ""
 "    not a shell builtin.."
 msgstr ""
 
-#: builtins.c:365
+#: builtins.c:367
 msgid ""
 "Return the context of the current subroutine call.\n"
 "    \n"
@@ -2355,7 +2372,7 @@ msgid ""
 "    is invalid."
 msgstr ""
 
-#: builtins.c:383
+#: builtins.c:385
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
@@ -2378,13 +2395,18 @@ msgid ""
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
-"        -L\tforce symbolic links to be followed\n"
+"        -L\tforce symbolic links to be followed: resolve symbolic links in\n"
+"    \tDIR after processing instances of `..'\n"
 "        -P\tuse the physical directory structure without following symbolic\n"
-"    \tlinks\n"
+"    \tlinks: resolve symbolic links in DIR before processing instances\n"
+"    \tof `..'\n"
 "        -e\tif the -P option is supplied, and the current working directory\n"
 "    \tcannot be determined successfully, exit with a non-zero status\n"
 "    \n"
 "    The default is to follow symbolic links, as if `-L' were specified.\n"
+"    `..' is processed by removing the immediately previous pathname "
+"component\n"
+"    back to a slash or the beginning of DIR.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed, and if $PWD is set successfully "
@@ -2392,7 +2414,7 @@ msgid ""
 "    -P is used; non-zero otherwise."
 msgstr ""
 
-#: builtins.c:414
+#: builtins.c:420
 msgid ""
 "Print the name of the current working directory.\n"
 "    \n"
@@ -2408,7 +2430,7 @@ msgid ""
 "    cannot be read."
 msgstr ""
 
-#: builtins.c:431
+#: builtins.c:437
 msgid ""
 "Null command.\n"
 "    \n"
@@ -2418,7 +2440,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:442
+#: builtins.c:448
 msgid ""
 "Return a successful result.\n"
 "    \n"
@@ -2426,7 +2448,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:451
+#: builtins.c:457
 msgid ""
 "Return an unsuccessful result.\n"
 "    \n"
@@ -2434,7 +2456,7 @@ msgid ""
 "    Always fails."
 msgstr ""
 
-#: builtins.c:460
+#: builtins.c:466
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
@@ -2453,7 +2475,7 @@ msgid ""
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
 
-#: builtins.c:479
+#: builtins.c:485
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -2491,14 +2513,14 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:517
+#: builtins.c:523
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
 
-#: builtins.c:525
+#: builtins.c:531
 msgid ""
 "Define local variables.\n"
 "    \n"
@@ -2513,11 +2535,13 @@ msgid ""
 "    or the shell is not executing a function."
 msgstr ""
 
-#: builtins.c:542
+#: builtins.c:548
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
-"    Display the ARGs on the standard output followed by a newline.\n"
+"    Display the ARGs, separated by a single space character and followed by "
+"a\n"
+"    newline, on the standard output.\n"
 "    \n"
 "    Options:\n"
 "      -n\tdo not append a newline\n"
@@ -2529,6 +2553,7 @@ msgid ""
 "      \\b\tbackspace\n"
 "      \\c\tsuppress further output\n"
 "      \\e\tescape character\n"
+"      \\E\tescape character\n"
 "      \\f\tform feed\n"
 "      \\n\tnew line\n"
 "      \\r\tcarriage return\n"
@@ -2544,7 +2569,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:576
+#: builtins.c:584
 msgid ""
 "Write arguments to the standard output.\n"
 "    \n"
@@ -2557,7 +2582,7 @@ msgid ""
 "    Returns success unless a write error occurs."
 msgstr ""
 
-#: builtins.c:591
+#: builtins.c:599
 msgid ""
 "Enable and disable shell builtins.\n"
 "    \n"
@@ -2584,7 +2609,7 @@ msgid ""
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
 
-#: builtins.c:619
+#: builtins.c:627
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
@@ -2596,7 +2621,7 @@ msgid ""
 "    Returns exit status of command or success if command is null."
 msgstr ""
 
-#: builtins.c:631
+#: builtins.c:639
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -2637,7 +2662,7 @@ msgid ""
 "    encountered or an error occurs."
 msgstr ""
 
-#: builtins.c:673
+#: builtins.c:681
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
@@ -2660,7 +2685,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:694
+#: builtins.c:702
 msgid ""
 "Exit the shell.\n"
 "    \n"
@@ -2668,7 +2693,7 @@ msgid ""
 "    is that of the last command executed."
 msgstr ""
 
-#: builtins.c:703
+#: builtins.c:711
 msgid ""
 "Exit a login shell.\n"
 "    \n"
@@ -2677,7 +2702,7 @@ msgid ""
 "    in a login shell."
 msgstr ""
 
-#: builtins.c:713
+#: builtins.c:721
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
@@ -2707,7 +2732,7 @@ msgid ""
 "occurs."
 msgstr ""
 
-#: builtins.c:743
+#: builtins.c:751
 msgid ""
 "Move job to the foreground.\n"
 "    \n"
@@ -2719,7 +2744,7 @@ msgid ""
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
 
-#: builtins.c:758
+#: builtins.c:766
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
@@ -2733,7 +2758,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:772
+#: builtins.c:780
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
@@ -2757,7 +2782,7 @@ msgid ""
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
 
-#: builtins.c:797
+#: builtins.c:805
 msgid ""
 "Display information about builtin commands.\n"
 "    \n"
@@ -2779,7 +2804,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:821
+#: builtins.c:829
 msgid ""
 "Display or manipulate the history list.\n"
 "    \n"
@@ -2813,7 +2838,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:857
+#: builtins.c:865
 msgid ""
 "Display status of jobs.\n"
 "    \n"
@@ -2837,7 +2862,7 @@ msgid ""
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:884
+#: builtins.c:892
 msgid ""
 "Remove jobs from current shell.\n"
 "    \n"
@@ -2854,7 +2879,7 @@ msgid ""
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
 
-#: builtins.c:903
+#: builtins.c:911
 msgid ""
 "Send a signal to a job.\n"
 "    \n"
@@ -2876,7 +2901,7 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
 
-#: builtins.c:926
+#: builtins.c:934
 msgid ""
 "Evaluate arithmetic expressions.\n"
 "    \n"
@@ -2921,7 +2946,7 @@ msgid ""
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:971
+#: builtins.c:979
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
@@ -2958,18 +2983,21 @@ msgid ""
 "is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
-"    \t\tfractional number.  If TIMEOUT is 0, read returns success only\n"
-"    \t\tif input is available on the specified file descriptor.  The\n"
+"    \t\tfractional number.  If TIMEOUT is 0, read returns immediately,\n"
+"    \t\twithout trying to read any data, returning success only if\n"
+"    \t\tinput is available on the specified file descriptor.  The\n"
 "    \t\texit status is greater than 128 if the timeout is exceeded\n"
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
 "    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"out\n"
+"    (in which case it's greater than 128), a variable assignment error "
+"occurs,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
 
-#: builtins.c:1014
+#: builtins.c:1024
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -2981,7 +3009,7 @@ msgid ""
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
 
-#: builtins.c:1027
+#: builtins.c:1037
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -3047,7 +3075,7 @@ msgid ""
 "      -E  If set, the ERR trap is inherited by shell functions.\n"
 "      -H  Enable ! style history substitution.  This flag is on\n"
 "          by default when the shell is interactive.\n"
-"      -P  If set, do not follow symbolic links when executing commands\n"
+"      -P  If set, do not resolve symbolic links when executing commands\n"
 "          such as cd which change the current directory.\n"
 "      -T  If set, the DEBUG trap is inherited by shell functions.\n"
 "      --  Assign any remaining arguments to the positional parameters.\n"
@@ -3066,7 +3094,7 @@ msgid ""
 "    Returns success unless an invalid option is given."
 msgstr ""
 
-#: builtins.c:1112
+#: builtins.c:1122
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -3086,7 +3114,7 @@ msgid ""
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
 
-#: builtins.c:1132
+#: builtins.c:1142
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
@@ -3105,7 +3133,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1151
+#: builtins.c:1161
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -3125,7 +3153,7 @@ msgid ""
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
 
-#: builtins.c:1172
+#: builtins.c:1182
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -3136,7 +3164,7 @@ msgid ""
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
 
-#: builtins.c:1184 builtins.c:1199
+#: builtins.c:1194 builtins.c:1209
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -3150,7 +3178,7 @@ msgid ""
 "    FILENAME cannot be read."
 msgstr ""
 
-#: builtins.c:1215
+#: builtins.c:1225
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -3164,7 +3192,7 @@ msgid ""
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
 
-#: builtins.c:1231
+#: builtins.c:1241
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3245,7 +3273,7 @@ msgid ""
 "    false or an invalid argument is given."
 msgstr ""
 
-#: builtins.c:1311
+#: builtins.c:1321
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -3253,7 +3281,7 @@ msgid ""
 "    be a literal `]', to match the opening `['."
 msgstr ""
 
-#: builtins.c:1320
+#: builtins.c:1330
 msgid ""
 "Display process times.\n"
 "    \n"
@@ -3265,7 +3293,7 @@ msgid ""
 "    Always succeeds."
 msgstr ""
 
-#: builtins.c:1332
+#: builtins.c:1342
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
@@ -3309,7 +3337,7 @@ msgid ""
 "given."
 msgstr ""
 
-#: builtins.c:1368
+#: builtins.c:1378
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -3339,7 +3367,7 @@ msgid ""
 "found."
 msgstr ""
 
-#: builtins.c:1399
+#: builtins.c:1409
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
@@ -3368,6 +3396,9 @@ msgid ""
 "      -u\tthe maximum number of user processes\n"
 "      -v\tthe size of virtual memory\n"
 "      -x\tthe maximum number of file locks\n"
+"      -T    the maximum number of threads\n"
+"    \n"
+"    Not all options are available on all platforms.\n"
 "    \n"
 "    If LIMIT is given, it is the new value of the specified resource; the\n"
 "    special LIMIT values `soft', `hard', and `unlimited' stand for the\n"
@@ -3383,7 +3414,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1444
+#: builtins.c:1457
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -3401,24 +3432,24 @@ msgid ""
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
 
-#: builtins.c:1464
+#: builtins.c:1477
 msgid ""
 "Wait for job completion and return exit status.\n"
 "    \n"
-"    Waits for the process identified by ID, which may be a process ID or a\n"
+"    Waits for each process identified by an ID, which may be a process ID or "
+"a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
 "    status is zero.  If ID is a a job specification, waits for all "
 "processes\n"
-"    in the job's pipeline.\n"
+"    in that job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
-"    given."
+"    Returns the status of the last ID; fails if ID is invalid or an invalid\n"
+"    option is given."
 msgstr ""
 
-#: builtins.c:1482
+#: builtins.c:1495
 msgid ""
 "Wait for process completion and return exit status.\n"
 "    \n"
@@ -3432,7 +3463,7 @@ msgid ""
 "    given."
 msgstr ""
 
-#: builtins.c:1497
+#: builtins.c:1510
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -3445,7 +3476,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1511
+#: builtins.c:1524
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -3462,7 +3493,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1529
+#: builtins.c:1542
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -3482,7 +3513,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1550
+#: builtins.c:1563
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -3498,7 +3529,7 @@ msgid ""
 "    The return status is the return status of PIPELINE."
 msgstr ""
 
-#: builtins.c:1567
+#: builtins.c:1580
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -3509,7 +3540,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1579
+#: builtins.c:1592
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
@@ -3530,7 +3561,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1596
+#: builtins.c:1609
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
@@ -3541,7 +3572,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1608
+#: builtins.c:1621
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
@@ -3552,7 +3583,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1620
+#: builtins.c:1633
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -3565,7 +3596,7 @@ msgid ""
 "    Returns the exit status of COMMAND."
 msgstr ""
 
-#: builtins.c:1634
+#: builtins.c:1647
 msgid ""
 "Define shell function.\n"
 "    \n"
@@ -3579,7 +3610,7 @@ msgid ""
 "    Returns success unless NAME is readonly."
 msgstr ""
 
-#: builtins.c:1648
+#: builtins.c:1661
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -3590,7 +3621,7 @@ msgid ""
 "    Returns the status of the last command executed."
 msgstr ""
 
-#: builtins.c:1660
+#: builtins.c:1673
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -3604,7 +3635,7 @@ msgid ""
 "    Returns the status of the resumed job."
 msgstr ""
 
-#: builtins.c:1675
+#: builtins.c:1688
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -3615,7 +3646,7 @@ msgid ""
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
 
-#: builtins.c:1687
+#: builtins.c:1700
 msgid ""
 "Execute conditional command.\n"
 "    \n"
@@ -3643,7 +3674,7 @@ msgid ""
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
 
-#: builtins.c:1713
+#: builtins.c:1726
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -3697,7 +3728,7 @@ msgid ""
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
 
-#: builtins.c:1770
+#: builtins.c:1783
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -3728,7 +3759,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1804
+#: builtins.c:1817
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -3755,7 +3786,7 @@ msgid ""
 "    change fails."
 msgstr ""
 
-#: builtins.c:1834
+#: builtins.c:1847
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -3784,7 +3815,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1863
+#: builtins.c:1876
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -3805,7 +3836,7 @@ msgid ""
 "    given or OPTNAME is disabled."
 msgstr ""
 
-#: builtins.c:1884
+#: builtins.c:1897
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -3823,8 +3854,8 @@ msgid ""
 "    argument.\n"
 "    \n"
 "    In addition to the standard format specifications described in printf"
-"(1)\n"
-"    and printf(3), printf interprets:\n"
+"(1),\n"
+"    printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
@@ -3838,7 +3869,7 @@ msgid ""
 "    error occurs."
 msgstr ""
 
-#: builtins.c:1913
+#: builtins.c:1926
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
@@ -3865,7 +3896,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1941
+#: builtins.c:1954
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
@@ -3878,7 +3909,7 @@ msgid ""
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
 
-#: builtins.c:1956
+#: builtins.c:1969
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
@@ -3909,7 +3940,7 @@ msgid ""
 "    have a completion specification defined."
 msgstr ""
 
-#: builtins.c:1986
+#: builtins.c:1999
 msgid ""
 "Read lines from the standard input into an indexed array variable.\n"
 "    \n"
@@ -3950,7 +3981,7 @@ msgid ""
 "    not an indexed array."
 msgstr ""
 
-#: builtins.c:2020
+#: builtins.c:2033
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
diff --git a/subst.c b/subst.c
index ce6df0ab58f049582fa1a29ab56468be20ac28fe..13db4ae7fb0c3f3b189c14dd6e89563788ad705b 100644 (file)
--- a/subst.c
+++ b/subst.c
@@ -6640,12 +6640,11 @@ parameter_brace_patsub (varname, value, ind, patsub, quoted, flags)
   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);
-    }
+    /* We want to perform quote removal on the expanded replacement even if
+       the entire expansion is double-quoted because the parser and string
+       extraction functions treated quotes in the replacement string as
+       special. */
+    rep = expand_string_if_necessary (rep, quoted & ~(Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT), 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
diff --git a/subst.c~ b/subst.c~
new file mode 100644 (file)
index 0000000..ce6df0a
--- /dev/null
+++ b/subst.c~
@@ -0,0 +1,9417 @@
+/* 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-2012 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 "parser.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 "typemax.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 */
+#define PF_NOSPLIT2    0x04    /* same as W_NOSPLIT2 */
+#define PF_ASSIGNRHS   0x08    /* same as W_ASSIGNRHS */
+
+/* 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) \
+  ((posixly_correct == 0 && (c) == '#') || (posixly_correct == 0 && (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, line_number;
+extern int subshell_level, parse_and_execute_level, sourcelevel;
+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_upattern __P((char *, char *, int, char **, char **));
+#if defined (HANDLE_MULTIBYTE)
+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 *, int, char *, int, 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, arrayind_t *));
+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 *, arrayind_t, int, int, SHELL_VAR **, char **));
+static char *mb_substring __P((char *, int, int));
+static char *parameter_brace_substring __P((char *, char *, int, char *, int, int));
+
+static int shouldexp_replacement __P((char *));
+
+static char *pos_params_pat_subst __P((char *, char *, char *, int));
+
+static char *parameter_brace_patsub __P((char *, char *, int, char *, int, int));
+
+static char *pos_params_casemod __P((char *, char *, int, int));
+static char *parameter_brace_casemod __P((char *, char *, int, int, char *, 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 *));
+
+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)
+       {
+         /* XXX - take another look at this in light of Interp 221 */
+         /* 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, Q_DOUBLE_QUOTES, 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, Q_DOUBLE_QUOTES, 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, "(", ")", SX_COMMAND));
+}
+#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 command substitution, but only if we're parsing an
+        arithmetic substitution. */
+      if ((flags & SX_COMMAND) && string[i] == '$' && string[i+1] == LPAREN)
+        {
+          si = i + 2;
+          t = extract_command_subst (string, &si, flags|SX_NOALLOC);
+          i = si + 1;
+          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)
+       {
+         last_command_exit_value = EXECUTION_FAILURE;
+         report_error (_("bad substitution: no closing `%s' in %s"), closer, string);
+         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, dolbrace_state;
+  char *result, *t;
+  DECLARE_MBSTATE;
+
+  pass_character = 0;
+  nesting_level = 1;
+  slen = strlen (string + *sindex) + *sindex;
+
+  /* The handling of dolbrace_state needs to agree with the code in parse.y:
+     parse_matched_pair().  The different initial value is to handle the
+     case where this function is called to parse the word in
+     ${param op word} (SX_WORD). */
+  dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
+  if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
+    dolbrace_state = DOLBRACE_QUOTE;
+
+  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;
+       }
+
+#if 0
+      /* 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;
+       }
+#else  /* XXX - bash-4.2 */
+      /* Pass the contents of double-quoted strings through verbatim. */
+      if (c == '"')
+       {
+         si = i + 1;
+         i = skip_double_quoted (string, slen, si);
+         /* skip_XXX_quoted leaves index one past close quote */
+         continue;
+       }
+
+      if (c == '\'')
+       {
+/*itrace("extract_dollar_brace_string: c == single quote flags = %d quoted = %d dolbrace_state = %d", flags, quoted, dolbrace_state);*/
+         if (posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)))
+           ADVANCE_CHAR (string, slen, i);
+         else
+           {
+             si = i + 1;
+             i = skip_single_quoted (string, slen, si);
+           }
+
+          continue;
+       }
+#endif
+
+      /* move past this character, which was not special. */
+      ADVANCE_CHAR (string, slen, i);
+
+      /* This logic must agree with parse.y:parse_matched_pair, since they
+        share the same defines. */
+      if (dolbrace_state == DOLBRACE_PARAM && c == '%' && (i - *sindex) > 1)
+       dolbrace_state = DOLBRACE_QUOTE;
+      else if (dolbrace_state == DOLBRACE_PARAM && c == '#' && (i - *sindex) > 1)
+        dolbrace_state = DOLBRACE_QUOTE;
+      else if (dolbrace_state == DOLBRACE_PARAM && c == '/' && (i - *sindex) > 1)
+        dolbrace_state = DOLBRACE_QUOTE;
+      else if (dolbrace_state == DOLBRACE_PARAM && c == '^' && (i - *sindex) > 1)
+        dolbrace_state = DOLBRACE_QUOTE;
+      else if (dolbrace_state == DOLBRACE_PARAM && c == ',' && (i - *sindex) > 1)
+        dolbrace_state = DOLBRACE_QUOTE;
+      else if (dolbrace_state == DOLBRACE_PARAM && strchr ("#%^,~:-=?+/", c) != 0)
+       dolbrace_state = DOLBRACE_OP;
+      else if (dolbrace_state == DOLBRACE_OP && strchr ("#%^,~:-=?+/", c) == 0)
+       dolbrace_state = DOLBRACE_WORD;
+    }
+
+  if (c == 0 && nesting_level)
+    {
+      if (no_longjmp_on_fatal_error == 0)
+       {                       /* { */
+         last_command_exit_value = EXECUTION_FAILURE;
+         report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
+         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, open[3];
+  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);
+         free (temp);          /* no SX_ALLOC here */
+         i = si;
+         if (string[i] == '\0')
+           break;
+         i++;
+         continue;
+       }
+#endif /* PROCESS_SUBSTITUTION */
+#if defined (EXTENDED_GLOB)
+      else if ((flags & SD_EXTGLOB) && extended_glob && string[i+1] == LPAREN && member (c, "?*+!@"))
+       {
+         si = i + 2;
+         if (string[si] == '\0')
+           CQ_RETURN(si);
+
+         open[0] = c;
+         open[1] = LPAREN;
+         open[2] = '\0';
+         temp = extract_delimited_string (string, &si, open, "(", ")", SX_NOALLOC); /* ) */
+
+         i = si;
+         if (string[i] == '\0')        /* don't increment i past EOS in loop */
+           break;
+         i++;
+         continue;
+       }
+#endif
+      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;
+
+  FREE (d2);
+
+  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 */
+  tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE))
+               ? 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, 0);
+      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, appendop, assign_list, aflags, retval;
+  char *name, *value, *temp;
+  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] == '=')
+    {
+      if (name[offset - 1] == '+')
+       {
+         appendop = 1;
+         name[offset - 1] = '\0';
+       }
+
+      name[offset] = 0;                /* might need this set later */
+      temp = name + offset + 1;
+
+#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, flags)
+     WORD_DESC *word;
+     int flags;
+{
+  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);
+
+  w->flags |= W_NOSPLIT2;
+  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.
+   Since this does not perform word splitting, it leaves quoted nulls
+   in the result.  */
+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 = W_NOSPLIT2;               /* no splitting, remove "" and '' */
+  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++;
+         continue;
+       }
+
+      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
+
+/* Returns its first argument if nothing matched; new memory otherwise */
+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 (param);      /* no match, return original string */
+}
+
+#if defined (HANDLE_MULTIBYTE)
+/* Returns its first argument if nothing matched; new memory otherwise */
+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 (wparam);     /* no match, return original string */
+}
+#endif /* HANDLE_MULTIBYTE */
+
+static char *
+remove_pattern (param, pattern, op)
+     char *param, *pattern;
+     int op;
+{
+  char *xret;
+
+  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;
+
+      n = xdupmbstowcs (&wpattern, NULL, pattern);
+      if (n == (size_t)-1)
+       {
+         xret = remove_upattern (param, pattern, op);
+         return ((xret == param) ? savestring (param) : xret);
+       }
+      n = xdupmbstowcs (&wparam, NULL, param);
+      if (n == (size_t)-1)
+       {
+         free (wpattern);
+         xret = remove_upattern (param, pattern, op);
+         return ((xret == param) ? savestring (param) : xret);
+       }
+      oret = ret = remove_wpattern (wparam, n, wpattern, op);
+      /* Don't bother to convert wparam back to multibyte string if nothing
+        matched; just return copy of original string */
+      if (ret == wparam)
+        {
+          free (wparam);
+          free (wpattern);
+          return (savestring (param));
+        }
+
+      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
+    {
+      xret = remove_upattern (param, pattern, op);
+      return ((xret == param) ? savestring (param) : xret);
+    }
+}
+
+/* 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, mlen;
+  register char *p, *p1, *npat;
+  char *end;
+  int n1;
+
+  /* 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;
+
+  mlen = umatchlen (pat, len);
+
+  switch (mtype)
+    {
+    case MATCH_ANY:
+      for (p = string; p <= end; p++)
+       {
+         if (match_pattern_char (pat, p))
+           {
+#if 0
+             for (p1 = end; p1 >= p; p1--)
+#else
+             p1 = (mlen == -1) ? end : p + mlen;
+             /* p1 - p = length of portion of string to be considered
+                p = current position in string
+                mlen = number of characters consumed by match (-1 for entire string)
+                end = end of string
+                we want to break immediately if the potential match len
+                is greater than the number of characters remaining in the
+                string
+             */
+             if (p1 > end)
+               break;
+             for ( ; p1 >= p; p1--)
+#endif
+               {
+                 c = *p1; *p1 = '\0';
+                 if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0)
+                   {
+                     *p1 = c;
+                     *sp = p;
+                     *ep = p1;
+                     return 1;
+                   }
+                 *p1 = c;
+#if 1
+                 /* If MLEN != -1, we have a fixed length pattern. */
+                 if (mlen != -1)
+                   break;
+#endif
+               }
+           }
+       }
+
+      return (0);
+
+    case MATCH_BEG:
+      if (match_pattern_char (pat, string) == 0)
+       return (0);
+
+#if 0
+      for (p = end; p >= string; p--)
+#else
+      for (p = (mlen == -1) ? end : string + mlen; p >= string; p--)
+#endif
+       {
+         c = *p; *p = '\0';
+         if (strmatch (pat, string, FNMATCH_EXTFLAG) == 0)
+           {
+             *p = c;
+             *sp = string;
+             *ep = p;
+             return 1;
+           }
+         *p = c;
+#if 1
+         /* If MLEN != -1, we have a fixed length pattern. */
+         if (mlen != -1)
+           break;
+#endif
+       }
+
+      return (0);
+
+    case MATCH_END:
+#if 0
+      for (p = string; p <= end; p++)
+#else
+      for (p = end - ((mlen == -1) ? len : mlen); p <= end; p++)
+#endif
+       {
+         if (strmatch (pat, p, FNMATCH_EXTFLAG) == 0)
+           {
+             *sp = p;
+             *ep = end;
+             return 1;
+           }
+#if 1
+         /* If MLEN != -1, we have a fixed length pattern. */
+         if (mlen != -1)
+           break;
+#endif
+       }
+
+      return (0);
+    }
+
+  return (0);
+}
+
+#if defined (HANDLE_MULTIBYTE)
+/* 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;
+  size_t len;
+  int mlen;
+  int n, n1, n2, simple;
+
+  simple = (wpat[0] != L'\\' && wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'[');
+#if defined (EXTENDED_GLOB)
+  if (extended_glob)
+    simple |= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
+#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. */
+  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);
+
+  mlen = wmatchlen (wpat, wstrlen);
+
+/* itrace("wmatchlen (%ls) -> %d", wpat, mlen); */
+  switch (mtype)
+    {
+    case MATCH_ANY:
+      for (n = 0; n <= wstrlen; n++)
+       {
+#if 1
+         n2 = simple ? (*wpat == wstring[n]) : match_pattern_wchar (wpat, wstring + n);
+#else
+         n2 = match_pattern_wchar (wpat, wstring + n);
+#endif
+         if (n2)
+           {
+#if 0
+             for (n1 = wstrlen; n1 >= n; n1--)
+#else
+             n1 = (mlen == -1) ? wstrlen : n + mlen;
+             if (n1 > wstrlen)
+               break;
+
+             for ( ; n1 >= n; n1--)
+#endif
+               {
+                 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;
+#if 1
+                 /* If MLEN != -1, we have a fixed length pattern. */
+                 if (mlen != -1)
+                   break;
+#endif
+               }
+           }
+       }
+
+      return (0);
+
+    case MATCH_BEG:
+      if (match_pattern_wchar (wpat, wstring) == 0)
+       return (0);
+
+#if 0
+      for (n = wstrlen; n >= 0; n--)
+#else
+      for (n = (mlen == -1) ? wstrlen : mlen; n >= 0; n--)
+#endif
+       {
+         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;
+#if 1
+         /* If MLEN != -1, we have a fixed length pattern. */
+         if (mlen != -1)
+           break;
+#endif
+       }
+
+      return (0);
+
+    case MATCH_END:
+#if 0
+      for (n = 0; n <= wstrlen; n++)
+#else
+      for (n = wstrlen - ((mlen == -1) ? wstrlen : mlen); n <= wstrlen; n++)
+#endif
+       {
+         if (wcsmatch (wpat, wstring + n, FNMATCH_EXTFLAG) == 0)
+           {
+             *sp = indices[n];
+             *ep = indices[wstrlen];
+             return 1;
+           }
+#if 1
+         /* If MLEN != -1, we have a fixed length pattern. */
+         if (mlen != -1)
+           break;
+#endif
+       }
+
+      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;
+  size_t slen, plen, mslen, mplen;
+#endif
+
+  if (string == 0 || *string == 0 || pat == 0 || *pat == 0)
+    return (0);
+
+#if defined (HANDLE_MULTIBYTE)
+  if (MB_CUR_MAX > 1)
+    {
+#if 0
+      slen = STRLEN (string);
+      mslen = MBSLEN (string);
+      plen = STRLEN (pat);
+      mplen = MBSLEN (pat);
+      if (slen == mslen && plen == mplen)
+#else
+      if (mbsmbchar (string) == 0 && mbsmbchar (pat) == 0)
+#endif
+        return (match_upattern (string, pat, mtype, sp, ep));
+
+      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, ind, patstr, rtype, quoted, flags)
+     char *varname, *value;
+     int ind;
+     char *patstr;
+     int rtype, quoted, flags;
+{
+  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, ind, quoted, flags, &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;
+  word->flags |= W_NOSPLIT2;
+  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;
+  word->flags |= W_NOSPLIT2;
+  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;
+
+char *
+copy_fifo_list (sizep)
+     int *sizep;
+{
+  if (sizep)
+    *sizep = 0;
+  return (char *)NULL;
+}
+
+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 (i)
+     int 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;
+    }
+}
+
+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;
+}
+
+/* Take LIST, which is a bitmap denoting active FIFOs in fifo_list
+   from some point in the past, and close all open FIFOs in fifo_list
+   that are not marked as active in LIST.  If LIST is NULL, close
+   everything in fifo_list. LSIZE is the number of elements in LIST, in
+   case it's larger than fifo_list_size (size of fifo_list). */
+void
+close_new_fifos (list, lsize)
+     char *list;
+     int lsize;
+{
+  int i;
+
+  if (list == 0)
+    {
+      unlink_fifo_list ();
+      return;
+    }
+
+  for (i = 0; i < lsize; i++)
+    if (list[i] == 0 && i < fifo_list_size && fifo_list[i].proc != -1)
+      unlink_fifo (i);
+
+  for (i = lsize; i < fifo_list_size; i++)
+    unlink_fifo (i);  
+}
+
+int
+fifos_pending ()
+{
+  return nfifo;
+}
+
+int
+num_fifos ()
+{
+  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. */
+
+char *
+copy_fifo_list (sizep)
+     int *sizep;
+{
+  char *ret;
+
+  if (nfds == 0 || totfds == 0)
+    {
+      if (sizep)
+       *sizep = 0;
+      return (char *)NULL;
+    }
+
+  if (sizep)
+    *sizep = totfds;
+  ret = (char *)xmalloc (totfds);
+  return (memcpy (ret, dev_fd_list, totfds));
+}
+
+static void
+add_fifo_list (fd)
+     int fd;
+{
+  if (dev_fd_list == 0 || 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 */
+}
+
+int
+num_fifos ()
+{
+  return nfds;
+}
+
+void
+unlink_fifo (fd)
+     int fd;
+{
+  if (dev_fd_list[fd])
+    {
+      close (fd);
+      dev_fd_list[fd] = 0;
+      nfds--;
+    }
+}
+
+void
+unlink_fifo_list ()
+{
+  register int i;
+
+  if (nfds == 0)
+    return;
+
+  for (i = 0; nfds && i < totfds; i++)
+    unlink_fifo (i);
+
+  nfds = 0;
+}
+
+/* Take LIST, which is a snapshot copy of dev_fd_list from some point in
+   the past, and close all open fds in dev_fd_list that are not marked
+   as open in LIST.  If LIST is NULL, close everything in dev_fd_list.
+   LSIZE is the number of elements in LIST, in case it's larger than
+   totfds (size of dev_fd_list). */
+void
+close_new_fifos (list, lsize)
+     char *list;
+     int lsize;
+{
+  int i;
+
+  if (list == 0)
+    {
+      unlink_fifo_list ();
+      return;
+    }
+
+  for (i = 0; i < lsize; i++)
+    if (list[i] == 0 && i < totfds && dev_fd_list[i])
+      unlink_fifo (i);
+
+  for (i = lsize; i < totfds; i++)
+    unlink_fifo (i);  
+}
+
+#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 ();     /* XXX - what about special builtins? bash-4.2 */
+      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;
+
+  /* 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 && sourcelevel == 0) ? 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.  Set a flag noting that we have to free the
+        trap strings if we run trap to change a signal disposition. */
+      reset_signal_handlers ();
+      subshell_environment |= SUBSHELL_RESETTRAP;
+    }
+
+#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]);
+
+#ifdef __CYGWIN__
+      /* Let stdio know the fd may have changed from text to binary mode, and
+        make sure to preserve stdout line buffering. */
+      freopen (NULL, "w", stdout);
+      sh_setlinebuf (stdout);
+#endif /* __CYGWIN__ */
+
+      /* 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 (interactive && pipeline_pgrp != (pid_t)0 && (subshell_environment & SUBSHELL_ASYNC) == 0)
+       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;
+  HASH_TABLE *h;
+  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;
+  h = assoc_p (var) ? assoc_cell (var) : (HASH_TABLE *)NULL;
+
+  if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']')
+    {
+      if (assoc_p (var))
+       return (h ? assoc_num_elements (h) : 0);
+      else if (array_p (var))
+       return (array ? array_num_elements (array) : 0);
+      else
+       return (var_isset (var) ? 1 : 0);
+    }
+
+  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);
+         FREE (akey);
+         return (-1);
+       }
+      t = assoc_reference (assoc_cell (var), akey);
+      free (akey);
+    }
+  else
+    {
+      ind = array_expand_index (var, 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, indp)
+     char *name;
+     int var_is_special, quoted, pflags;
+     arrayind_t *indp;
+{
+  WORD_DESC *ret;
+  char *temp, *tt;
+  intmax_t arg_index;
+  SHELL_VAR *var;
+  int atype, rflags;
+  arrayind_t ind;
+
+  ret = 0;
+  temp = 0;
+  rflags = 0;
+
+  if (indp)
+    *indp = INTMAX_MIN;
+
+  /* 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))
+    {
+      /* XXX - does this leak if name[@] or name[*]? */
+      temp = array_value (name, quoted, 0, &atype, &ind);
+      if (atype == 0 && temp)
+       {
+         temp = (*temp && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
+                   ? quote_string (temp)
+                   : quote_escapes (temp);
+         rflags |= W_ARRAYIND;
+         if (indp)
+           *indp = ind;
+       }                 
+      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, 0);
+  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, 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);
+
+  /* From Posix group discussion Feb-March 2010.  Issue 7 0000221 */
+  free (temp);
+
+  w->word = t1;
+  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;
+
+  last_command_exit_value = EXECUTION_FAILURE; /* ensure it's non-zero */
+  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} */
+}
+
+/* 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;   /* XXX - error if set -u set? */
+         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);
+         if (t == 0 && unbound_vars_is_error)
+           return INTMAX_MIN;
+         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);
+         if (t == 0 && unbound_vars_is_error)
+           return INTMAX_MIN;
+         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 = t ? MB_STRLEN (t) : 0;
+         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 ((vtype == VT_ARRAYVAR || vtype == VT_POSPARMS) && *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
+       {
+         if (*e2p < 0)
+           {
+             *e2p += len;
+             if (*e2p < 0 || *e2p < *e1p)
+               {
+                 internal_error (_("%s: substring expression < 0"), t);
+                 return (0);
+               }
+           }
+         else
+           *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).
+   QUOTED is the standard description of quoting state, using Q_* defines.
+   FLAGS is currently a set of flags to pass to array_value.  If IND is
+   non-null and not INTMAX_MIN, and FLAGS includes AV_USEIND, IND is
+   passed to array_value so the array index is not computed again.
+   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, ind, quoted, flags, varp, valp)
+     char *varname, *value;
+     arrayind_t ind;
+     int quoted, flags;
+     SHELL_VAR **varp;
+     char **valp;
+{
+  int vtype;
+  char *temp;
+#if defined (ARRAY_VARS)
+  SHELL_VAR *v;
+#endif
+  arrayind_t lind;
+
+  /* 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 we want to signal array_value to use an already-computed index,
+        set LIND to that index */
+      lind = (ind != INTMAX_MIN && (flags & AV_USEIND)) ? ind : 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, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind);
+           }
+         *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, Q_DOUBLE_QUOTES, flags, (int *)NULL, &lind);
+       }
+    }
+  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, ind, substr, quoted, flags)
+     char *varname, *value;
+     int ind;
+     char *substr;
+     int quoted, flags;
+{
+  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, ind, quoted, flags, &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)
+    {
+      if (vtype == VT_VARIABLE)
+       FREE (val);
+      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 */
+/*                                                             */
+/****************************************************************/
+
+static int
+shouldexp_replacement (s)
+     char *s;
+{
+  register char *p;
+
+  for (p = s; p && *p; p++)
+    {
+      if (*p == '\\')
+       p++;
+      else if (*p == '&')
+       return 1;
+    }
+  return 0;
+}
+
+char *
+pat_subst (string, pat, rep, mflags)
+     char *string, *pat, *rep;
+     int mflags;
+{
+  char *ret, *s, *e, *str, *rstr, *mstr;
+  int rsize, rptr, l, replen, mtype, rxpand, rslen, mlen;
+
+  if (string  == 0)
+    return (savestring (""));
+
+  mtype = mflags & MATCH_TYPEMASK;
+
+#if 0  /* bash-4.2 ? */
+  rxpand = (rep && *rep) ? shouldexp_replacement (rep) : 0;
+#else
+  rxpand = 0;
+#endif
+
+  /* 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.
+   * These don't understand or process `&' in the replacement string.
+   */
+  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;
+
+      if (rxpand)
+        {
+          int x;
+          mlen = e - s;
+          mstr = xmalloc (mlen + 1);
+         for (x = 0; x < mlen; x++)
+           mstr[x] = s[x];
+          mstr[mlen] = '\0';
+          rstr = strcreplace (rep, '&', mstr, 0);
+          rslen = strlen (rstr);
+        }
+      else
+        {
+          rstr = rep;
+          rslen = replen;
+        }
+        
+      RESIZE_MALLOCED_BUFFER (ret, rptr, (l + rslen), 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, rstr, rslen);
+         rptr += rslen;
+       }
+      str = e;         /* e == end of match */
+
+      if (rstr != rep)
+       free (rstr);
+
+      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 && *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, ind, patsub, quoted, flags)
+     char *varname, *value;
+     int ind;
+     char *patsub;
+     int quoted, flags;
+{
+  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, ind, quoted, flags, &v, &val);
+  if (vtype == -1)
+    return ((char *)NULL);
+
+  starsub = vtype & VT_STARSUB;
+  vtype &= ~VT_STARSUB;
+
+  mflags = 0;
+  /* PATSUB is never NULL when this is called. */
+  if (*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. */
+  delim = skip_to_delim (lpatsub, ((*patsub == '/') ? 1 : 0), "/", 0);
+  if (lpatsub[delim] == '/')
+    {
+      lpatsub[delim] = 0;
+      rep = lpatsub + delim + 1;
+    }
+  else
+    rep = (char *)NULL;
+
+  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, ind, modspec, patspec, quoted, flags)
+     char *varname, *value;
+     int ind, modspec;
+     char *patspec;
+     int quoted, flags;
+{
+  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, ind, quoted, flags, &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, pflags, quoted_dollar_atp, contains_dollar_at)
+     char *string;
+     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;
+  char *name, *value, *temp, *temp1;
+  WORD_DESC *tdesc, *ret;
+  int t_index, sindex, c, tflag, modspec;
+  intmax_t number;
+  arrayind_t ind;
+
+  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;
+
+  ind = INTMAX_MIN;
+
+  /* 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 && VALID_SPECIAL_LENGTH_PARAM (string[t_index])) ||
+      (sindex == t_index - 1 && string[sindex] == '!' && VALID_INDIR_PARAM (string[t_index])))
+    {
+      t_index++;
+      temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0);
+      name = (char *)xrealloc (name, 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 */) /* XXX */
+    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);
+      if (number == INTMAX_MIN && unbound_vars_is_error)
+       {
+         last_command_exit_value = EXECUTION_FAILURE;
+         err_unboundvar (name+1);
+         free (name);
+         return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal);
+       }
+      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;
+
+      free (name);
+
+      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|(pflags&PF_NOSPLIT2), &ind);
+
+  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, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
+      if (string[sindex] == RBRACE)
+       sindex++;
+      else
+       goto bad_substitution;
+    }
+  else
+    value = (char *)NULL;
+
+  *indexp = sindex;
+
+  /* All the cases where an expansion can possibly generate an unbound
+     variable error. */
+  if (want_substring || want_patsub || want_casemod || c == '#' || c == '%' || c == 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);
+       }
+    }
+    
+  /* If this is a substring spec, process it and add the result. */
+  if (want_substring)
+    {
+      temp1 = parameter_brace_substring (name, temp, ind, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
+      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, ind, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
+      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;
+    }
+#if defined (CASEMOD_EXPANSIONS)
+  else if (want_casemod)
+    {
+      temp1 = parameter_brace_casemod (name, temp, ind, modspec, value, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
+      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:
+      last_command_exit_value = EXECUTION_FAILURE;
+      report_error (_("%s: bad substitution"), string ? string : "??");
+      FREE (value);
+      FREE (temp);
+      free (name);
+      return &expand_wdesc_error;
+
+    case RBRACE:
+      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, ind, value, c, quoted, (tflag & W_ARRAYIND) ? AV_USEIND : 0);
+      free (temp);
+      free (value);
+      free (name);
+
+      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)
+               {
+                 /* From Posix discussion on austin-group list.  Issue 221
+                    requires that backslashes escaping `}' inside
+                    double-quoted ${...} be removed. */
+                 if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+                   quoted |= Q_DOLBRACE;
+                 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)
+           {
+             last_command_exit_value = EXECUTION_FAILURE;
+             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;
+
+             /* From Posix discussion on austin-group list.  Issue 221 requires
+                that backslashes escaping `}' inside double-quoted ${...} be
+                removed. */
+             if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+               quoted |= Q_DOLBRACE;
+             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);
+         if (temp)
+           {
+             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. */
+#if 0
+      temp = string_list_dollar_at (list, quoted);
+#else
+      temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted);
+#endif
+
+      dispose_words (list);
+      break;
+
+    case LBRACE:
+      tdesc = parameter_brace_expand (string, &zindex, quoted, pflags,
+                                     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);
+#if 0
+             internal_warning (_("future versions of the shell will force evaluation as an arithmetic substitution"));
+#endif
+             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 pflags;                  /* flags passed to param_expand */
+
+  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 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 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 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0 && isifs (c))
+           goto add_ifs_character;
+         else
+           goto add_character;
+
+       case ':':
+         if (word->flags & W_NOTILDE)
+           {
+             if (isexp == 0 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 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 && (word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 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 && (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;
+           }
+
+         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;
+         pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
+         if (word->flags & W_NOSPLIT2)
+           pflags |= PF_NOSPLIT2;
+         if (word->flags & W_ASSIGNRHS)
+           pflags |= PF_ASSIGNRHS;
+         tword = param_expand (string, &sindex, quoted, expanded_something,
+                              &has_dollar_at, &quoted_dollar_at,
+                              &had_quoted_null, pflags);
+
+         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 ? tword->word : (char *)NULL;
+         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;
+                 }
+               last_command_exit_value = EXECUTION_FAILURE;
+               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;
+
+         /* From Posix discussion on austin-group list:  Backslash escaping
+            a } in ${...} is removed.  Issue 0000221 */
+         if ((quoted & Q_DOLBRACE) && c == RBRACE)
+           {
+             SCOPY_CHAR_I (twochars, CTLESC, c, string, sindex, string_size);
+           }
+         else 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)
+               {
+#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
+                               ? 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.  The execption to
+            this is when we are going to be performing word splitting,
+            since we have to preserve a null argument if the next character
+            will cause word splitting. */
+         if (temp == 0 && quoted_state == PARTIALLY_QUOTED && (word->flags & (W_NOSPLIT|W_NOSPLIT2)))
+           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;
+                     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)
+           {
+             last_command_exit_value = EXECUTION_FAILURE;
+             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 = alloc_word_desc ();
+             w->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;
+             else
+               w = make_word_flags (w, temp_string);
+
+             output_list = make_word_list (w, output_list);
+           }
+         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, 0);
+         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, 0);
+                 /* 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;
+      int is_special_builtin, is_builtin_or_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;
+
+      is_builtin_or_func = (new_list && new_list->word && (find_shell_builtin (new_list->word->word) || find_function (new_list->word->word)));
+      /* Posix says that special builtins exit if a variable assignment error
+        occurs in an assignment preceding it. */
+      is_special_builtin = (posixly_correct && new_list && new_list->word && find_special_builtin (new_list->word->word));
+      
+      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, is_builtin_or_func);
+         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 && is_special_builtin)
+                   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);
+}
index 3efcf32d68e9722024b6ca9d67f9e81b2aa5ac04..72ec06a2c1fd8dde92acea5e8ac773e35f1d061b 100755 (executable)
@@ -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/RUN-ONE-TEST~ b/tests/RUN-ONE-TEST~
new file mode 100755 (executable)
index 0000000..3efcf32
--- /dev/null
@@ -0,0 +1,9 @@
+BUILD_DIR=/usr/local/build/chet/bash/bash-current
+THIS_SH=$BUILD_DIR/bash
+PATH=$PATH:$BUILD_DIR
+
+export THIS_SH PATH
+
+rm -f /tmp/xx
+
+/bin/sh "$@"
index a1250fbcecccece9f1cf06170bdfd141e989f18f..a511aaac1a13ba39bbabfb81ca14cb22bc06554e 100644 (file)
@@ -209,9 +209,9 @@ e
 9
 2
 a b c
-argv[1] = <"-iname '"a>
-argv[2] = <"-iname '"b>
-argv[3] = <"-iname '"c>
+argv[1] = <-iname 'a>
+argv[2] = <-iname 'b>
+argv[3] = <-iname 'c>
 'hey'
 hey
 ''hey
@@ -226,20 +226,22 @@ argv[1] = <c d>
 argv[2] = <e f>
 argv[1] = <c d>
 argv[2] = <e f>
-argv[1] = <"-iname '"abc>
-argv[2] = <"-iname '"def>
 argv[1] = <-iname 'abc>
 argv[2] = <-iname 'def>
-argv[1] = <-iname \'abc>
-argv[2] = <-iname \'def>
+argv[1] = <-iname 'abc>
+argv[2] = <-iname 'def>
+argv[1] = <-iname>
+argv[2] = <abc -iname def>
+argv[1] = <-iname 'abc>
+argv[2] = <-iname 'def>
 argv[1] = <-iname>
-argv[2] = <'abc>
-argv[3] = <-iname>
-argv[4] = <'def>
-argv[1] = <"-iname '"abc>
-argv[2] = <"-iname '"def>
+argv[2] = <abc -iname def>
+argv[1] = <-iname 'abc>
+argv[2] = <-iname 'def>
 argv[1] = <-iname 'abc>
 argv[2] = <-iname 'def>
+argv[1] = <-iname>
+argv[2] = <abc -iname def>
 *.* OK
 1
 a1 2 3c
index 590132603fbd9fa32ddb5eb5f376e07343e9a2ef..0017f4cd6bf7d7e7805aa8fa36dd5e5f904c1a22 100644 (file)
@@ -42,6 +42,9 @@ a=(abc def)
 a2=("${a[@]/#/"-iname '"}") 
 recho "${a2[@]}"
 
+eval a2=("${a[@]/#/\"-iname \'\"}") 
+recho "${a2[@]}"
+
 eval a2=("${a[@]/#/"-iname '"}") 
 recho "${a2[@]}"
 
@@ -56,6 +59,9 @@ set -- abc def
 a2=("${@/#/"-iname '"}") 
 recho "${a2[@]}"
 
+eval a2=("${@/#/\"-iname \'\"}") 
+recho "${a2[@]}"
+
 eval a2=("${@/#/"-iname '"}") 
 recho "${a2[@]}"
 
diff --git a/tests/array6.sub~ b/tests/array6.sub~
new file mode 100644 (file)
index 0000000..09cea35
--- /dev/null
@@ -0,0 +1,112 @@
+# test cases for array quoting and escaping fixed post bash-3.2-release
+
+oIFS="$IFS"
+
+a=(a b c)
+echo ${a[@]}
+
+a2=("${a[@]/#/"-iname '"}")
+recho "${a2[@]}"
+
+echo "${dbg-"'hey'"}"
+echo "${dbg-"hey"}"
+echo "${dbg-'"'hey}"
+echo "${dbg-'"hey'}"
+
+unset a a2
+
+IFS=
+a2=(${a[@]/#/"-iname '"})
+recho "${a2[@]}"
+
+IFS="$oIFS"
+unset a a2
+
+a=('a b' 'c d' 'e f')
+
+recho ${a[@]:1:2}
+recho "${a[@]:1:2}"
+
+IFS=
+recho ${a[@]:1:2}
+recho "${a[@]:1:2}"
+
+IFS="$oIFS"
+unset a a2
+
+a=(abc def)
+
+# Prevent word splitting
+#IFS= 
+
+a2=("${a[@]/#/"-iname '"}") 
+recho "${a2[@]}"
+
+eval a2=("${a[@]/#/\"-iname \'\"}") 
+recho "${a2[@]}"
+
+eval a2=("${a[@]/#/"-iname '"}") 
+recho "${a2[@]}"
+
+a2=("${a[@]/#/-iname \'}") 
+recho "${a2[@]}"
+
+eval a2=("${a[@]/#/-iname \'}") 
+recho "${a2[@]}"
+
+set -- abc def
+
+a2=("${@/#/"-iname '"}") 
+recho "${a2[@]}"
+
+eval a2=("${@/#/"-iname '"}") 
+recho "${a2[@]}"
+
+unset a a2
+
+IFS=
+pat=('*.*')
+case $(ls ${pat[@]} 2>/dev/null) in
+'')    echo '*.* BAD' ;;
+*)     echo '*.* OK' ;;
+esac
+
+IFS="$oIFS"
+unset a a2 pat
+
+IFS=
+
+s='abc'
+
+set - ${s/b/1 2 3}
+echo $#
+echo "$1"
+
+IFS="$oIFS"
+unset s
+
+set -- ab cd ef
+foo="var with spaces"
+
+IFS=
+recho $foo
+recho "$foo"
+
+recho ${foo}"$@"
+recho ${foo}$@
+
+array=(ab cd ef)
+recho ${foo}"${array[@]}"
+recho ${foo}${array[@]}
+
+recho $(echo $foo)"$@"
+recho $(echo $foo)$@
+
+a=('word1 with spaces' 'word2 with spaces')
+set - ${a[@]/word/element}
+echo $#
+recho "$@"
+recho $@
+
+IFS="$oIFS"
+unset a a2 array foo
index 52c65e49cc3e9d0643493015ec236d982639832b..9a9168e57c0fcc59b72ce9a702231f57c41f811c 100644 (file)
@@ -17,3 +17,32 @@ aéb
 1.0000
 1.0000
 1,0000
+Passed all 1378 Unicode tests
+0000000   303 277 012                                                    
+0000003
+0000000   303 277 012                                                    
+0000003
+0000000   303 277 012                                                    
+0000003
+0000000   303 277 012                                                    
+0000003
+0000000   357 277 277 012                                                
+0000004
+0000000   357 277 277 012                                                
+0000004
+0000000   012                                                            
+0000001
+0000000   012                                                            
+0000001
+0000000   012                                                            
+0000001
+0000000   012                                                            
+0000001
+0000000   303 277 012                                                    
+0000003
+0000000   303 277 012                                                    
+0000003
+0000000   303 277 012                                                    
+0000003
+0000000   101 040 302 243 040 305 222 012                                
+0000010
index 37518db2721ecc277b34be94426111a7bf379ab4..6d75432d534fac72581a728771fed2a4a0d55455 100644 (file)
@@ -43,3 +43,6 @@ ${THIS_SH} ./intl1.sub
 
 # this tests both international handling in printf and temporary environments
 ${THIS_SH} ./intl2.sub
+
+${THIS_SH} ./unicode1.sub 2>/dev/null
+${THIS_SH} ./unicode2.sub
diff --git a/tests/misc/regress/log.orig b/tests/misc/regress/log.orig
new file mode 100644 (file)
index 0000000..c1f1e19
--- /dev/null
@@ -0,0 +1,50 @@
+:; ./shx
+
+sh:
+<&$fd  ok
+nlbq   Mon Aug  3 02:45:00 EDT 1992
+bang   geoff
+quote  712824302
+setbq  defmsgid=<1992Aug3.024502.6176@host>
+bgwait sleep done... wait 6187
+
+
+bash:
+<&$fd  ok
+nlbq   Mon Aug  3 02:45:09 EDT 1992
+bang   geoff
+quote  712824311
+setbq  defmsgid=<1992Aug3.024512.6212@host>
+bgwait sleep done... wait 6223
+
+
+ash:
+<&$fd  shx1: 4: Syntax error: Bad fd number
+nlbq   Mon Aug  3 02:45:19 EDT 1992
+bang   geoff
+quote  getdate: `"now"' not a valid date
+
+setbq  defmsgid=<1992Aug3.` echo 024521
+bgwait sleep done... wait 6241
+
+
+ksh:
+<&$fd  ok
+nlbq   ./shx: 6248 Memory fault - core dumped
+bang   geoff
+quote  getdate: `"now"' not a valid date
+
+setbq  defmsgid=<1992Aug3.024530.6257@host>
+bgwait no such job: 6265
+wait 6265
+sleep done... 
+
+zsh:
+<&$fd  ok
+nlbq   Mon Aug 3 02:45:36 EDT 1992
+bang   shx3: event not found: /s/ [4]
+quote  712824337
+setbq  defmsgid=<..6290@host>
+bgwait shx7: unmatched " [9]
+sleep done... 
+:; 
diff --git a/tests/misc/regress/shx.orig b/tests/misc/regress/shx.orig
new file mode 100644 (file)
index 0000000..4b3bf2b
--- /dev/null
@@ -0,0 +1,10 @@
+#! /bin/sh
+for cmd in sh bash ash ksh zsh
+do
+       echo
+       echo $cmd:
+       for demo in shx?
+       do
+               $cmd $demo
+       done
+done
index ac0058f9333fd13f2083f07d7ab3c634f3664c69..8e3b6dec2f518c4cf9461800cd329ab16a26acdb 100644 (file)
@@ -165,6 +165,9 @@ this is test 2
 ./new-exp2.sub: line 31: /tmp/bashtmp.x*: No such file or directory
 ./new-exp2.sub: line 35: /tmp/redir-notthere: No such file or directory
 1
+
+./new-exp2.sub: line 42: 1111111111111111111111: command not found
+
 argv[1] = <6>
 ./new-exp.tests: line 277: ${#:}: bad substitution
 argv[1] = <'>
index 5e922aac61972bcec6ce061207ed18c3baa6ab19..e83777993401e7bb6cd592ab8fba33a601bab1a6 100644 (file)
@@ -34,3 +34,9 @@ set +o posix
 # now see what happens when we try it with a non-existant file
 LINES3=$(< /tmp/redir-notthere)
 echo $?
+
+# These were bugs through bash-4.2
+{ : "$({xxxxxxxxxxxxxxxxxxxx}</dev/stdin)"; } <<<'hi'
+echo ${xxxxxxxxxxxxxxxxxxxx}
+
+{ echo "$(1111111111111111111111</dev/stdin)"; } <<<'hi'
diff --git a/tests/new-exp2.sub~ b/tests/new-exp2.sub~
new file mode 100644 (file)
index 0000000..5e922aa
--- /dev/null
@@ -0,0 +1,36 @@
+export LC_ALL=C
+export LANG=C
+
+# test out the new $(< filename) code
+# it should be exactly equivalent to $(cat filename)
+
+FILENAME=/tmp/bashtmp.x$$
+
+trap 'rm -f $FILENAME' 0
+
+cat >$FILENAME << EOF
+line 1
+line 2
+line 3
+EOF
+
+LINES1=$(cat $FILENAME)
+LINES2=$(< $FILENAME)
+
+if [[ $LINES1 != $LINES2 ]]; then
+       echo 'whoops: $(< filename) failed'
+fi
+
+LINES2=$(< /tmp/bashtmp.x*)
+if [[ $LINES1 != $LINES2 ]]; then
+       echo 'whoops: $(< filename) with glob expansion failed'
+fi
+
+# but the glob expansion in the redirection should fail in posix mode
+set -o posix
+LINES2=$(< /tmp/bashtmp.x*)
+set +o posix
+
+# now see what happens when we try it with a non-existant file
+LINES3=$(< /tmp/redir-notthere)
+echo $?
diff --git a/tests/unicode1.sub b/tests/unicode1.sub
new file mode 100644 (file)
index 0000000..baa92ea
--- /dev/null
@@ -0,0 +1,583 @@
+unset LC_ALL
+
+ErrorCnt=0
+TestCnt=0
+
+  function check_valid_var_name {
+    case "${1:?Missing Variable Name}" in
+      [!a-zA-Z_]* | *[!a-zA-Z_0-9]* ) return 3;;
+    esac
+  }
+  # get_array_element VariableName ArrayName ArrayElement
+  function get_array_element {
+    check_valid_var_name "${1:?Missing Variable Name}" || return $?
+    check_valid_var_name "${2:?Missing Array Name}" || return $?
+    eval "${1}"'="${'"${2}"'["${3:?Missing Array Index}"]}"'
+  }
+  # unset_array_element VarName ArrayName
+  function get_array_element_cnt {
+    check_valid_var_name "${1:?Missing Variable Name}" || return $?
+    check_valid_var_name "${2:?Missing Array Name}" || return $?
+    eval "${1}"'="${#'"${2}"'[@]}"'
+  }
+
+
+function TestCodePage {
+    local TargetCharset="${1:?Missing Test charset}"
+    local EChar RChar TCnt
+    get_array_element_cnt TCnt "${2:?Missing Array Name}"
+    for (( x=1 ; x<${TCnt} ; x++ )); do
+      get_array_element EChar "${2}"  ${x}
+      if [ -n "${EChar}" ]; then
+       let TestCnt+=1
+       printf -v UVal '\\U%08x' "${x}"
+       LC_CTYPE=${TargetCharset} printf -v RChar "${UVal}" 2>/dev/null
+       if [ "${EChar}" != "${RChar}" ]; then
+         let ErrorCnt+=1
+         printf "${TargetCharset}: Error Encoding U+%08X to ${TL} [ \"%q\" != \"%q\" ]\n" "${x}" "${EChar}" "${RChar}"
+       fi
+      fi
+    done
+}
+
+
+#for ((x=1;x<255;x++)); do printf ' [0x%04x]=$'\''\%03o'\' $x $x ; [ $(($x%5)) = 0 ] && echo; done
+fr_FR_ISO_8859_1=(
+ [0x0001]=$'\001' [0x0002]=$'\002' [0x0003]=$'\003' [0x0004]=$'\004' [0x0005]=$'\005'
+ [0x0006]=$'\006' [0x0007]=$'\007' [0x0008]=$'\010' [0x0009]=$'\011' [0x000a]=$'\012'
+ [0x000b]=$'\013' [0x000c]=$'\014' [0x000d]=$'\015' [0x000e]=$'\016' [0x000f]=$'\017'
+ [0x0010]=$'\020' [0x0011]=$'\021' [0x0012]=$'\022' [0x0013]=$'\023' [0x0014]=$'\024'
+ [0x0015]=$'\025' [0x0016]=$'\026' [0x0017]=$'\027' [0x0018]=$'\030' [0x0019]=$'\031'
+ [0x001a]=$'\032' [0x001b]=$'\033' [0x001c]=$'\034' [0x001d]=$'\035' [0x001e]=$'\036'
+ [0x001f]=$'\037' [0x0020]=$'\040' [0x0021]=$'\041' [0x0022]=$'\042' [0x0023]=$'\043'
+ [0x0024]=$'\044' [0x0025]=$'\045' [0x0026]=$'\046' [0x0027]=$'\047' [0x0028]=$'\050'
+ [0x0029]=$'\051' [0x002a]=$'\052' [0x002b]=$'\053' [0x002c]=$'\054' [0x002d]=$'\055'
+ [0x002e]=$'\056' [0x002f]=$'\057' [0x0030]=$'\060' [0x0031]=$'\061' [0x0032]=$'\062'
+ [0x0033]=$'\063' [0x0034]=$'\064' [0x0035]=$'\065' [0x0036]=$'\066' [0x0037]=$'\067'
+ [0x0038]=$'\070' [0x0039]=$'\071' [0x003a]=$'\072' [0x003b]=$'\073' [0x003c]=$'\074'
+ [0x003d]=$'\075' [0x003e]=$'\076' [0x003f]=$'\077' [0x0040]=$'\100' [0x0041]=$'\101'
+ [0x0042]=$'\102' [0x0043]=$'\103' [0x0044]=$'\104' [0x0045]=$'\105' [0x0046]=$'\106'
+ [0x0047]=$'\107' [0x0048]=$'\110' [0x0049]=$'\111' [0x004a]=$'\112' [0x004b]=$'\113'
+ [0x004c]=$'\114' [0x004d]=$'\115' [0x004e]=$'\116' [0x004f]=$'\117' [0x0050]=$'\120'
+ [0x0051]=$'\121' [0x0052]=$'\122' [0x0053]=$'\123' [0x0054]=$'\124' [0x0055]=$'\125'
+ [0x0056]=$'\126' [0x0057]=$'\127' [0x0058]=$'\130' [0x0059]=$'\131' [0x005a]=$'\132'
+ [0x005b]=$'\133' [0x005c]=$'\134' [0x005d]=$'\135' [0x005e]=$'\136' [0x005f]=$'\137'
+ [0x0060]=$'\140' [0x0061]=$'\141' [0x0062]=$'\142' [0x0063]=$'\143' [0x0064]=$'\144'
+ [0x0065]=$'\145' [0x0066]=$'\146' [0x0067]=$'\147' [0x0068]=$'\150' [0x0069]=$'\151'
+ [0x006a]=$'\152' [0x006b]=$'\153' [0x006c]=$'\154' [0x006d]=$'\155' [0x006e]=$'\156'
+ [0x006f]=$'\157' [0x0070]=$'\160' [0x0071]=$'\161' [0x0072]=$'\162' [0x0073]=$'\163'
+ [0x0074]=$'\164' [0x0075]=$'\165' [0x0076]=$'\166' [0x0077]=$'\167' [0x0078]=$'\170'
+ [0x0079]=$'\171' [0x007a]=$'\172' [0x007b]=$'\173' [0x007c]=$'\174' [0x007d]=$'\175'
+ [0x007e]=$'\176' [0x007f]=$'\177' [0x0080]=$'\200' [0x0081]=$'\201' [0x0082]=$'\202'
+ [0x0083]=$'\203' [0x0084]=$'\204' [0x0085]=$'\205' [0x0086]=$'\206' [0x0087]=$'\207'
+ [0x0088]=$'\210' [0x0089]=$'\211' [0x008a]=$'\212' [0x008b]=$'\213' [0x008c]=$'\214'
+ [0x008d]=$'\215' [0x008e]=$'\216' [0x008f]=$'\217' [0x0090]=$'\220' [0x0091]=$'\221'
+ [0x0092]=$'\222' [0x0093]=$'\223' [0x0094]=$'\224' [0x0095]=$'\225' [0x0096]=$'\226'
+ [0x0097]=$'\227' [0x0098]=$'\230' [0x0099]=$'\231' [0x009a]=$'\232' [0x009b]=$'\233'
+ [0x009c]=$'\234' [0x009d]=$'\235' [0x009e]=$'\236' [0x009f]=$'\237' [0x00a0]=$'\240'
+ [0x00a1]=$'\241' [0x00a2]=$'\242' [0x00a3]=$'\243' [0x00a4]=$'\244' [0x00a5]=$'\245'
+ [0x00a6]=$'\246' [0x00a7]=$'\247' [0x00a8]=$'\250' [0x00a9]=$'\251' [0x00aa]=$'\252'
+ [0x00ab]=$'\253' [0x00ac]=$'\254' [0x00ad]=$'\255' [0x00ae]=$'\256' [0x00af]=$'\257'
+ [0x00b0]=$'\260' [0x00b1]=$'\261' [0x00b2]=$'\262' [0x00b3]=$'\263' [0x00b4]=$'\264'
+ [0x00b5]=$'\265' [0x00b6]=$'\266' [0x00b7]=$'\267' [0x00b8]=$'\270' [0x00b9]=$'\271'
+ [0x00ba]=$'\272' [0x00bb]=$'\273' [0x00bc]=$'\274' [0x00bd]=$'\275' [0x00be]=$'\276'
+ [0x00bf]=$'\277' [0x00c0]=$'\300' [0x00c1]=$'\301' [0x00c2]=$'\302' [0x00c3]=$'\303'
+ [0x00c4]=$'\304' [0x00c5]=$'\305' [0x00c6]=$'\306' [0x00c7]=$'\307' [0x00c8]=$'\310'
+ [0x00c9]=$'\311' [0x00ca]=$'\312' [0x00cb]=$'\313' [0x00cc]=$'\314' [0x00cd]=$'\315'
+ [0x00ce]=$'\316' [0x00cf]=$'\317' [0x00d0]=$'\320' [0x00d1]=$'\321' [0x00d2]=$'\322'
+ [0x00d3]=$'\323' [0x00d4]=$'\324' [0x00d5]=$'\325' [0x00d6]=$'\326' [0x00d7]=$'\327'
+ [0x00d8]=$'\330' [0x00d9]=$'\331' [0x00da]=$'\332' [0x00db]=$'\333' [0x00dc]=$'\334'
+ [0x00dd]=$'\335' [0x00de]=$'\336' [0x00df]=$'\337' [0x00e0]=$'\340' [0x00e1]=$'\341'
+ [0x00e2]=$'\342' [0x00e3]=$'\343' [0x00e4]=$'\344' [0x00e5]=$'\345' [0x00e6]=$'\346'
+ [0x00e7]=$'\347' [0x00e8]=$'\350' [0x00e9]=$'\351' [0x00ea]=$'\352' [0x00eb]=$'\353'
+ [0x00ec]=$'\354' [0x00ed]=$'\355' [0x00ee]=$'\356' [0x00ef]=$'\357' [0x00f0]=$'\360'
+ [0x00f1]=$'\361' [0x00f2]=$'\362' [0x00f3]=$'\363' [0x00f4]=$'\364' [0x00f5]=$'\365'
+ [0x00f6]=$'\366' [0x00f7]=$'\367' [0x00f8]=$'\370' [0x00f9]=$'\371' [0x00fa]=$'\372'
+ [0x00fb]=$'\373' [0x00fc]=$'\374' [0x00fd]=$'\375' [0x00fe]=$'\376'   
+)
+
+TestCodePage fr_FR.ISO8859-1 fr_FR_ISO_8859_1
+
+zh_TW_BIG5=(
+ [0x00f6]=$'\366' [0x00f7]=$'\367' [0x00f8]=$'\370' [0x00f9]=$'\371' [0x00fa]=$'\372'
+ [0x00fb]=$'\373' [0x00fc]=$'\374' [0x00fd]=$'\375' [0x00fe]=$'\376'   
+)
+TestCodePage zh_TW.BIG5 zh_TW_BIG5
+
+jp_JP_SHIFT_JIS=(
+  [0x0001]=$'\x01' #  START OF HEADING
+  [0x0002]=$'\x02' #  START OF TEXT
+  [0x0003]=$'\x03' #  END OF TEXT
+  [0x0004]=$'\x04' #  END OF TRANSMISSION
+  [0x0005]=$'\x05' #  ENQUIRY
+  [0x0006]=$'\x06' #  ACKNOWLEDGE
+  [0x0007]=$'\x07' #  BELL
+  [0x0008]=$'\x08' #  BACKSPACE
+  [0x0009]=$'\x09' #  HORIZONTAL TABULATION
+  [0x000A]=$'\x0A' #  LINE FEED
+  [0x000B]=$'\x0B' #  VERTICAL TABULATION
+  [0x000C]=$'\x0C' #  FORM FEED
+  [0x000D]=$'\x0D' #  CARRIAGE RETURN
+  [0x000E]=$'\x0E' #  SHIFT OUT
+  [0x000F]=$'\x0F' #  SHIFT IN
+  [0x0010]=$'\x10' #  DATA LINK ESCAPE
+  [0x0011]=$'\x11' #  DEVICE CONTROL ONE
+  [0x0012]=$'\x12' #  DEVICE CONTROL TWO
+  [0x0013]=$'\x13' #  DEVICE CONTROL THREE
+  [0x0014]=$'\x14' #  DEVICE CONTROL FOUR
+  [0x0015]=$'\x15' #  NEGATIVE ACKNOWLEDGE
+  [0x0016]=$'\x16' #  SYNCHRONOUS IDLE
+  [0x0017]=$'\x17' #  END OF TRANSMISSION BLOCK
+  [0x0018]=$'\x18' #  CANCEL
+  [0x0019]=$'\x19' #  END OF MEDIUM
+  [0x001A]=$'\x1A' #  SUBSTITUTE
+  [0x001B]=$'\x1B' #  ESCAPE
+  [0x001C]=$'\x1C' #  FILE SEPARATOR
+  [0x001D]=$'\x1D' #  GROUP SEPARATOR
+  [0x001E]=$'\x1E' #  RECORD SEPARATOR
+  [0x001F]=$'\x1F' #  UNIT SEPARATOR
+  [0x0020]=$'\x20' #  SPACE
+  [0x0021]=$'\x21' #  EXCLAMATION MARK
+  [0x0022]=$'\x22' #  QUOTATION MARK
+  [0x0023]=$'\x23' #  NUMBER SIGN
+  [0x0024]=$'\x24' #  DOLLAR SIGN
+  [0x0025]=$'\x25' #  PERCENT SIGN
+  [0x0026]=$'\x26' #  AMPERSAND
+  [0x0027]=$'\x27' #  APOSTROPHE
+  [0x0028]=$'\x28' #  LEFT PARENTHESIS
+  [0x0029]=$'\x29' #  RIGHT PARENTHESIS
+  [0x002A]=$'\x2A' #  ASTERISK
+  [0x002B]=$'\x2B' #  PLUS SIGN
+  [0x002C]=$'\x2C' #  COMMA
+  [0x002D]=$'\x2D' #  HYPHEN-MINUS
+  [0x002E]=$'\x2E' #  FULL STOP
+  [0x002F]=$'\x2F' #  SOLIDUS
+  [0x0030]=$'\x30' #  DIGIT ZERO
+  [0x0031]=$'\x31' #  DIGIT ONE
+  [0x0032]=$'\x32' #  DIGIT TWO
+  [0x0033]=$'\x33' #  DIGIT THREE
+  [0x0034]=$'\x34' #  DIGIT FOUR
+  [0x0035]=$'\x35' #  DIGIT FIVE
+  [0x0036]=$'\x36' #  DIGIT SIX
+  [0x0037]=$'\x37' #  DIGIT SEVEN
+  [0x0038]=$'\x38' #  DIGIT EIGHT
+  [0x0039]=$'\x39' #  DIGIT NINE
+  [0x003A]=$'\x3A' #  COLON
+  [0x003B]=$'\x3B' #  SEMICOLON
+  [0x003C]=$'\x3C' #  LESS-THAN SIGN
+  [0x003D]=$'\x3D' #  EQUALS SIGN
+  [0x003E]=$'\x3E' #  GREATER-THAN SIGN
+  [0x003F]=$'\x3F' #  QUESTION MARK
+  [0x0040]=$'\x40' #  COMMERCIAL AT
+  [0x0041]=$'\x41' #  LATIN CAPITAL LETTER A
+  [0x0042]=$'\x42' #  LATIN CAPITAL LETTER B
+  [0x0043]=$'\x43' #  LATIN CAPITAL LETTER C
+  [0x0044]=$'\x44' #  LATIN CAPITAL LETTER D
+  [0x0045]=$'\x45' #  LATIN CAPITAL LETTER E
+  [0x0046]=$'\x46' #  LATIN CAPITAL LETTER F
+  [0x0047]=$'\x47' #  LATIN CAPITAL LETTER G
+  [0x0048]=$'\x48' #  LATIN CAPITAL LETTER H
+  [0x0049]=$'\x49' #  LATIN CAPITAL LETTER I
+  [0x004A]=$'\x4A' #  LATIN CAPITAL LETTER J
+  [0x004B]=$'\x4B' #  LATIN CAPITAL LETTER K
+  [0x004C]=$'\x4C' #  LATIN CAPITAL LETTER L
+  [0x004D]=$'\x4D' #  LATIN CAPITAL LETTER M
+  [0x004E]=$'\x4E' #  LATIN CAPITAL LETTER N
+  [0x004F]=$'\x4F' #  LATIN CAPITAL LETTER O
+  [0x0050]=$'\x50' #  LATIN CAPITAL LETTER P
+  [0x0051]=$'\x51' #  LATIN CAPITAL LETTER Q
+  [0x0052]=$'\x52' #  LATIN CAPITAL LETTER R
+  [0x0053]=$'\x53' #  LATIN CAPITAL LETTER S
+  [0x0054]=$'\x54' #  LATIN CAPITAL LETTER T
+  [0x0055]=$'\x55' #  LATIN CAPITAL LETTER U
+  [0x0056]=$'\x56' #  LATIN CAPITAL LETTER V
+  [0x0057]=$'\x57' #  LATIN CAPITAL LETTER W
+  [0x0058]=$'\x58' #  LATIN CAPITAL LETTER X
+  [0x0059]=$'\x59' #  LATIN CAPITAL LETTER Y
+  [0x005A]=$'\x5A' #  LATIN CAPITAL LETTER Z
+  [0x005B]=$'\x5B' #  LEFT SQUARE BRACKET
+  [0x005C]=$'\x5C' #  REVERSE SOLIDUS (YEN SIGN)
+  [0x005D]=$'\x5D' #  RIGHT SQUARE BRACKET
+  [0x005E]=$'\x5E' #  CIRCUMFLEX ACCENT
+  [0x005F]=$'\x5F' #  LOW LINE
+  [0x0060]=$'\x60' #  GRAVE ACCENT
+  [0x0061]=$'\x61' #  LATIN SMALL LETTER A
+  [0x0062]=$'\x62' #  LATIN SMALL LETTER B
+  [0x0063]=$'\x63' #  LATIN SMALL LETTER C
+  [0x0064]=$'\x64' #  LATIN SMALL LETTER D
+  [0x0065]=$'\x65' #  LATIN SMALL LETTER E
+  [0x0066]=$'\x66' #  LATIN SMALL LETTER F
+  [0x0067]=$'\x67' #  LATIN SMALL LETTER G
+  [0x0068]=$'\x68' #  LATIN SMALL LETTER H
+  [0x0069]=$'\x69' #  LATIN SMALL LETTER I
+  [0x006A]=$'\x6A' #  LATIN SMALL LETTER J
+  [0x006B]=$'\x6B' #  LATIN SMALL LETTER K
+  [0x006C]=$'\x6C' #  LATIN SMALL LETTER L
+  [0x006D]=$'\x6D' #  LATIN SMALL LETTER M
+  [0x006E]=$'\x6E' #  LATIN SMALL LETTER N
+  [0x006F]=$'\x6F' #  LATIN SMALL LETTER O
+  [0x0070]=$'\x70' #  LATIN SMALL LETTER P
+  [0x0071]=$'\x71' #  LATIN SMALL LETTER Q
+  [0x0072]=$'\x72' #  LATIN SMALL LETTER R
+  [0x0073]=$'\x73' #  LATIN SMALL LETTER S
+  [0x0074]=$'\x74' #  LATIN SMALL LETTER T
+  [0x0075]=$'\x75' #  LATIN SMALL LETTER U
+  [0x0076]=$'\x76' #  LATIN SMALL LETTER V
+  [0x0077]=$'\x77' #  LATIN SMALL LETTER W
+  [0x0078]=$'\x78' #  LATIN SMALL LETTER X
+  [0x0079]=$'\x79' #  LATIN SMALL LETTER Y
+  [0x007A]=$'\x7A' #  LATIN SMALL LETTER Z
+  [0x007B]=$'\x7B' #  LEFT CURLY BRACKET
+  [0x007C]=$'\x7C' #  VERTICAL LINE
+  [0x007D]=$'\x7D' #  RIGHT CURLY BRACKET
+  [0x007E]=$'\x7E' #  TILDE
+  [0x007F]=$'\x7F' #  DELETE
+  [0xFF61]=$'\xA1' #  HALFWIDTH IDEOGRAPHIC FULL STOP
+  [0xFF62]=$'\xA2' #  HALFWIDTH LEFT CORNER BRACKET
+  [0xFF63]=$'\xA3' #  HALFWIDTH RIGHT CORNER BRACKET
+  [0xFF64]=$'\xA4' #  HALFWIDTH IDEOGRAPHIC COMMA
+  [0xFF65]=$'\xA5' #  HALFWIDTH KATAKANA MIDDLE DOT
+  [0xFF66]=$'\xA6' #  HALFWIDTH KATAKANA LETTER WO
+  [0xFF67]=$'\xA7' #  HALFWIDTH KATAKANA LETTER SMALL A
+  [0xFF68]=$'\xA8' #  HALFWIDTH KATAKANA LETTER SMALL I
+  [0xFF69]=$'\xA9' #  HALFWIDTH KATAKANA LETTER SMALL U
+  [0xFF6A]=$'\xAA' #  HALFWIDTH KATAKANA LETTER SMALL E
+  [0xFF6B]=$'\xAB' #  HALFWIDTH KATAKANA LETTER SMALL O
+  [0xFF6C]=$'\xAC' #  HALFWIDTH KATAKANA LETTER SMALL YA
+  [0xFF6D]=$'\xAD' #  HALFWIDTH KATAKANA LETTER SMALL YU
+  [0xFF6E]=$'\xAE' #  HALFWIDTH KATAKANA LETTER SMALL YO
+  [0xFF6F]=$'\xAF' #  HALFWIDTH KATAKANA LETTER SMALL TU
+  [0xFF70]=$'\xB0' #  HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+  [0xFF71]=$'\xB1' #  HALFWIDTH KATAKANA LETTER A
+  [0xFF72]=$'\xB2' #  HALFWIDTH KATAKANA LETTER I
+  [0xFF73]=$'\xB3' #  HALFWIDTH KATAKANA LETTER U
+  [0xFF74]=$'\xB4' #  HALFWIDTH KATAKANA LETTER E
+  [0xFF75]=$'\xB5' #  HALFWIDTH KATAKANA LETTER O
+  [0xFF76]=$'\xB6' #  HALFWIDTH KATAKANA LETTER KA
+  [0xFF77]=$'\xB7' #  HALFWIDTH KATAKANA LETTER KI
+  [0xFF78]=$'\xB8' #  HALFWIDTH KATAKANA LETTER KU
+  [0xFF79]=$'\xB9' #  HALFWIDTH KATAKANA LETTER KE
+  [0xFF7A]=$'\xBA' #  HALFWIDTH KATAKANA LETTER KO
+  [0xFF7B]=$'\xBB' #  HALFWIDTH KATAKANA LETTER SA
+  [0xFF7C]=$'\xBC' #  HALFWIDTH KATAKANA LETTER SI
+  [0xFF7D]=$'\xBD' #  HALFWIDTH KATAKANA LETTER SU
+  [0xFF7E]=$'\xBE' #  HALFWIDTH KATAKANA LETTER SE
+  [0xFF7F]=$'\xBF' #  HALFWIDTH KATAKANA LETTER SO
+  [0xFF80]=$'\xC0' #  HALFWIDTH KATAKANA LETTER TA
+  [0xFF81]=$'\xC1' #  HALFWIDTH KATAKANA LETTER TI
+  [0xFF82]=$'\xC2' #  HALFWIDTH KATAKANA LETTER TU
+  [0xFF83]=$'\xC3' #  HALFWIDTH KATAKANA LETTER TE
+  [0xFF84]=$'\xC4' #  HALFWIDTH KATAKANA LETTER TO
+  [0xFF85]=$'\xC5' #  HALFWIDTH KATAKANA LETTER NA
+  [0xFF86]=$'\xC6' #  HALFWIDTH KATAKANA LETTER NI
+  [0xFF87]=$'\xC7' #  HALFWIDTH KATAKANA LETTER NU
+  [0xFF88]=$'\xC8' #  HALFWIDTH KATAKANA LETTER NE
+  [0xFF89]=$'\xC9' #  HALFWIDTH KATAKANA LETTER NO
+  [0xFF8A]=$'\xCA' #  HALFWIDTH KATAKANA LETTER HA
+  [0xFF8B]=$'\xCB' #  HALFWIDTH KATAKANA LETTER HI
+  [0xFF8C]=$'\xCC' #  HALFWIDTH KATAKANA LETTER HU
+  [0xFF8D]=$'\xCD' #  HALFWIDTH KATAKANA LETTER HE
+  [0xFF8E]=$'\xCE' #  HALFWIDTH KATAKANA LETTER HO
+  [0xFF8F]=$'\xCF' #  HALFWIDTH KATAKANA LETTER MA
+  [0xFF90]=$'\xD0' #  HALFWIDTH KATAKANA LETTER MI
+  [0xFF91]=$'\xD1' #  HALFWIDTH KATAKANA LETTER MU
+  [0xFF92]=$'\xD2' #  HALFWIDTH KATAKANA LETTER ME
+  [0xFF93]=$'\xD3' #  HALFWIDTH KATAKANA LETTER MO
+  [0xFF94]=$'\xD4' #  HALFWIDTH KATAKANA LETTER YA
+  [0xFF95]=$'\xD5' #  HALFWIDTH KATAKANA LETTER YU
+  [0xFF96]=$'\xD6' #  HALFWIDTH KATAKANA LETTER YO
+  [0xFF97]=$'\xD7' #  HALFWIDTH KATAKANA LETTER RA
+  [0xFF98]=$'\xD8' #  HALFWIDTH KATAKANA LETTER RI
+  [0xFF99]=$'\xD9' #  HALFWIDTH KATAKANA LETTER RU
+  [0xFF9A]=$'\xDA' #  HALFWIDTH KATAKANA LETTER RE
+  [0xFF9B]=$'\xDB' #  HALFWIDTH KATAKANA LETTER RO
+  [0xFF9C]=$'\xDC' #  HALFWIDTH KATAKANA LETTER WA
+  [0xFF9D]=$'\xDD' #  HALFWIDTH KATAKANA LETTER N
+  [0xFF9E]=$'\xDE' #  HALFWIDTH KATAKANA VOICED SOUND MARK
+  [0xFF9F]=$'\xDF' #  HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+)
+#TestCodePage ja_JP.SHIFT_JIS jp_JP_SHIFT_JIS
+TestCodePage ja_JP.SJIS jp_JP_SHIFT_JIS
+
+#for ((x=1;x<1000;x++)); do printf ' [0x%04x]=%-11q' "$x" "$(printf "$(printf '\\U%08x' $x)")" ; [ $(($x%5)) = 0 ] && echo; done
+C_UTF_8=(
+ [0x0001]=$'\001'     [0x0002]=$'\002'     [0x0003]=$'\003'     [0x0004]=$'\004'     [0x0005]=$'\005'    
+ [0x0006]=$'\006'     [0x0007]=$'\a'       [0x0008]=$'\b'       [0x0009]=$'\t'       [0x000a]=''         
+ [0x000b]=$'\v'       [0x000c]=$'\f'       [0x000d]=$'\r'       [0x000e]=$'\016'     [0x000f]=$'\017'    
+ [0x0010]=$'\020'     [0x0011]=$'\021'     [0x0012]=$'\022'     [0x0013]=$'\023'     [0x0014]=$'\024'    
+ [0x0015]=$'\025'     [0x0016]=$'\026'     [0x0017]=$'\027'     [0x0018]=$'\030'     [0x0019]=$'\031'    
+ [0x001a]=$'\032'     [0x001b]=$'\E'       [0x001c]=$'\034'     [0x001d]=$'\035'     [0x001e]=$'\036'    
+ [0x001f]=$'\037'     [0x0020]=\           [0x0021]=\!          [0x0022]=\"          [0x0023]=\#         
+ [0x0024]=\$          [0x0025]=%           [0x0026]=\&          [0x0027]=\'          [0x0028]=\(         
+ [0x0029]=\)          [0x002a]=\*          [0x002b]=+           [0x002c]=\,          [0x002d]=-          
+ [0x002e]=.           [0x002f]=/           [0x0030]=0           [0x0031]=1           [0x0032]=2          
+ [0x0033]=3           [0x0034]=4           [0x0035]=5           [0x0036]=6           [0x0037]=7          
+ [0x0038]=8           [0x0039]=9           [0x003a]=:           [0x003b]=\;          [0x003c]=\<         
+ [0x003d]==           [0x003e]=\>          [0x003f]=\?          [0x0040]=@           [0x0041]=A          
+ [0x0042]=B           [0x0043]=C           [0x0044]=D           [0x0045]=E           [0x0046]=F          
+ [0x0047]=G           [0x0048]=H           [0x0049]=I           [0x004a]=J           [0x004b]=K          
+ [0x004c]=L           [0x004d]=M           [0x004e]=N           [0x004f]=O           [0x0050]=P          
+ [0x0051]=Q           [0x0052]=R           [0x0053]=S           [0x0054]=T           [0x0055]=U          
+ [0x0056]=V           [0x0057]=W           [0x0058]=X           [0x0059]=Y           [0x005a]=Z          
+ [0x005b]=\[          [0x005c]=\\          [0x005d]=\]          [0x005e]=\^          [0x005f]=_          
+ [0x0060]=\`          [0x0061]=a           [0x0062]=b           [0x0063]=c           [0x0064]=d          
+ [0x0065]=e           [0x0066]=f           [0x0067]=g           [0x0068]=h           [0x0069]=i          
+ [0x006a]=j           [0x006b]=k           [0x006c]=l           [0x006d]=m           [0x006e]=n          
+ [0x006f]=o           [0x0070]=p           [0x0071]=q           [0x0072]=r           [0x0073]=s          
+ [0x0074]=t           [0x0075]=u           [0x0076]=v           [0x0077]=w           [0x0078]=x          
+ [0x0079]=y           [0x007a]=z           [0x007b]=\{          [0x007c]=\|          [0x007d]=\}         
+ [0x007e]="~"         [0x007f]=$'\177'     [0x0080]=$'\302\200' [0x0081]=$'\302\201' [0x0082]=$'\302\202'
+ [0x0083]=$'\302\203' [0x0084]=$'\302\204' [0x0085]=$'\302\205' [0x0086]=$'\302\206' [0x0087]=$'\302\207'
+ [0x0088]=$'\302\210' [0x0089]=$'\302\211' [0x008a]=$'\302\212' [0x008b]=$'\302\213' [0x008c]=$'\302\214'
+ [0x008d]=$'\302\215' [0x008e]=$'\302\216' [0x008f]=$'\302\217' [0x0090]=$'\302\220' [0x0091]=$'\302\221'
+ [0x0092]=$'\302\222' [0x0093]=$'\302\223' [0x0094]=$'\302\224' [0x0095]=$'\302\225' [0x0096]=$'\302\226'
+ [0x0097]=$'\302\227' [0x0098]=$'\302\230' [0x0099]=$'\302\231' [0x009a]=$'\302\232' [0x009b]=$'\302\233'
+ [0x009c]=$'\302\234' [0x009d]=$'\302\235' [0x009e]=$'\302\236' [0x009f]=$'\302\237' [0x00a0]=$'\302\240'
+ [0x00a1]=$'\302\241' [0x00a2]=$'\302\242' [0x00a3]=$'\302\243' [0x00a4]=$'\302\244' [0x00a5]=$'\302\245'
+ [0x00a6]=$'\302\246' [0x00a7]=$'\302\247' [0x00a8]=$'\302\250' [0x00a9]=$'\302\251' [0x00aa]=$'\302\252'
+ [0x00ab]=$'\302\253' [0x00ac]=$'\302\254' [0x00ad]=$'\302\255' [0x00ae]=$'\302\256' [0x00af]=$'\302\257'
+ [0x00b0]=$'\302\260' [0x00b1]=$'\302\261' [0x00b2]=$'\302\262' [0x00b3]=$'\302\263' [0x00b4]=$'\302\264'
+ [0x00b5]=$'\302\265' [0x00b6]=$'\302\266' [0x00b7]=$'\302\267' [0x00b8]=$'\302\270' [0x00b9]=$'\302\271'
+ [0x00ba]=$'\302\272' [0x00bb]=$'\302\273' [0x00bc]=$'\302\274' [0x00bd]=$'\302\275' [0x00be]=$'\302\276'
+ [0x00bf]=$'\302\277' [0x00c0]=$'\303\200' [0x00c1]=$'\303\201' [0x00c2]=$'\303\202' [0x00c3]=$'\303\203'
+ [0x00c4]=$'\303\204' [0x00c5]=$'\303\205' [0x00c6]=$'\303\206' [0x00c7]=$'\303\207' [0x00c8]=$'\303\210'
+ [0x00c9]=$'\303\211' [0x00ca]=$'\303\212' [0x00cb]=$'\303\213' [0x00cc]=$'\303\214' [0x00cd]=$'\303\215'
+ [0x00ce]=$'\303\216' [0x00cf]=$'\303\217' [0x00d0]=$'\303\220' [0x00d1]=$'\303\221' [0x00d2]=$'\303\222'
+ [0x00d3]=$'\303\223' [0x00d4]=$'\303\224' [0x00d5]=$'\303\225' [0x00d6]=$'\303\226' [0x00d7]=$'\303\227'
+ [0x00d8]=$'\303\230' [0x00d9]=$'\303\231' [0x00da]=$'\303\232' [0x00db]=$'\303\233' [0x00dc]=$'\303\234'
+ [0x00dd]=$'\303\235' [0x00de]=$'\303\236' [0x00df]=$'\303\237' [0x00e0]=$'\303\240' [0x00e1]=$'\303\241'
+ [0x00e2]=$'\303\242' [0x00e3]=$'\303\243' [0x00e4]=$'\303\244' [0x00e5]=$'\303\245' [0x00e6]=$'\303\246'
+ [0x00e7]=$'\303\247' [0x00e8]=$'\303\250' [0x00e9]=$'\303\251' [0x00ea]=$'\303\252' [0x00eb]=$'\303\253'
+ [0x00ec]=$'\303\254' [0x00ed]=$'\303\255' [0x00ee]=$'\303\256' [0x00ef]=$'\303\257' [0x00f0]=$'\303\260'
+ [0x00f1]=$'\303\261' [0x00f2]=$'\303\262' [0x00f3]=$'\303\263' [0x00f4]=$'\303\264' [0x00f5]=$'\303\265'
+ [0x00f6]=$'\303\266' [0x00f7]=$'\303\267' [0x00f8]=$'\303\270' [0x00f9]=$'\303\271' [0x00fa]=$'\303\272'
+ [0x00fb]=$'\303\273' [0x00fc]=$'\303\274' [0x00fd]=$'\303\275' [0x00fe]=$'\303\276' [0x00ff]=$'\303\277'
+ [0x0100]=$'\304\200' [0x0101]=$'\304\201' [0x0102]=$'\304\202' [0x0103]=$'\304\203' [0x0104]=$'\304\204'
+ [0x0105]=$'\304\205' [0x0106]=$'\304\206' [0x0107]=$'\304\207' [0x0108]=$'\304\210' [0x0109]=$'\304\211'
+ [0x010a]=$'\304\212' [0x010b]=$'\304\213' [0x010c]=$'\304\214' [0x010d]=$'\304\215' [0x010e]=$'\304\216'
+ [0x010f]=$'\304\217' [0x0110]=$'\304\220' [0x0111]=$'\304\221' [0x0112]=$'\304\222' [0x0113]=$'\304\223'
+ [0x0114]=$'\304\224' [0x0115]=$'\304\225' [0x0116]=$'\304\226' [0x0117]=$'\304\227' [0x0118]=$'\304\230'
+ [0x0119]=$'\304\231' [0x011a]=$'\304\232' [0x011b]=$'\304\233' [0x011c]=$'\304\234' [0x011d]=$'\304\235'
+ [0x011e]=$'\304\236' [0x011f]=$'\304\237' [0x0120]=$'\304\240' [0x0121]=$'\304\241' [0x0122]=$'\304\242'
+ [0x0123]=$'\304\243' [0x0124]=$'\304\244' [0x0125]=$'\304\245' [0x0126]=$'\304\246' [0x0127]=$'\304\247'
+ [0x0128]=$'\304\250' [0x0129]=$'\304\251' [0x012a]=$'\304\252' [0x012b]=$'\304\253' [0x012c]=$'\304\254'
+ [0x012d]=$'\304\255' [0x012e]=$'\304\256' [0x012f]=$'\304\257' [0x0130]=$'\304\260' [0x0131]=$'\304\261'
+ [0x0132]=$'\304\262' [0x0133]=$'\304\263' [0x0134]=$'\304\264' [0x0135]=$'\304\265' [0x0136]=$'\304\266'
+ [0x0137]=$'\304\267' [0x0138]=$'\304\270' [0x0139]=$'\304\271' [0x013a]=$'\304\272' [0x013b]=$'\304\273'
+ [0x013c]=$'\304\274' [0x013d]=$'\304\275' [0x013e]=$'\304\276' [0x013f]=$'\304\277' [0x0140]=$'\305\200'
+ [0x0141]=$'\305\201' [0x0142]=$'\305\202' [0x0143]=$'\305\203' [0x0144]=$'\305\204' [0x0145]=$'\305\205'
+ [0x0146]=$'\305\206' [0x0147]=$'\305\207' [0x0148]=$'\305\210' [0x0149]=$'\305\211' [0x014a]=$'\305\212'
+ [0x014b]=$'\305\213' [0x014c]=$'\305\214' [0x014d]=$'\305\215' [0x014e]=$'\305\216' [0x014f]=$'\305\217'
+ [0x0150]=$'\305\220' [0x0151]=$'\305\221' [0x0152]=$'\305\222' [0x0153]=$'\305\223' [0x0154]=$'\305\224'
+ [0x0155]=$'\305\225' [0x0156]=$'\305\226' [0x0157]=$'\305\227' [0x0158]=$'\305\230' [0x0159]=$'\305\231'
+ [0x015a]=$'\305\232' [0x015b]=$'\305\233' [0x015c]=$'\305\234' [0x015d]=$'\305\235' [0x015e]=$'\305\236'
+ [0x015f]=$'\305\237' [0x0160]=$'\305\240' [0x0161]=$'\305\241' [0x0162]=$'\305\242' [0x0163]=$'\305\243'
+ [0x0164]=$'\305\244' [0x0165]=$'\305\245' [0x0166]=$'\305\246' [0x0167]=$'\305\247' [0x0168]=$'\305\250'
+ [0x0169]=$'\305\251' [0x016a]=$'\305\252' [0x016b]=$'\305\253' [0x016c]=$'\305\254' [0x016d]=$'\305\255'
+ [0x016e]=$'\305\256' [0x016f]=$'\305\257' [0x0170]=$'\305\260' [0x0171]=$'\305\261' [0x0172]=$'\305\262'
+ [0x0173]=$'\305\263' [0x0174]=$'\305\264' [0x0175]=$'\305\265' [0x0176]=$'\305\266' [0x0177]=$'\305\267'
+ [0x0178]=$'\305\270' [0x0179]=$'\305\271' [0x017a]=$'\305\272' [0x017b]=$'\305\273' [0x017c]=$'\305\274'
+ [0x017d]=$'\305\275' [0x017e]=$'\305\276' [0x017f]=$'\305\277' [0x0180]=$'\306\200' [0x0181]=$'\306\201'
+ [0x0182]=$'\306\202' [0x0183]=$'\306\203' [0x0184]=$'\306\204' [0x0185]=$'\306\205' [0x0186]=$'\306\206'
+ [0x0187]=$'\306\207' [0x0188]=$'\306\210' [0x0189]=$'\306\211' [0x018a]=$'\306\212' [0x018b]=$'\306\213'
+ [0x018c]=$'\306\214' [0x018d]=$'\306\215' [0x018e]=$'\306\216' [0x018f]=$'\306\217' [0x0190]=$'\306\220'
+ [0x0191]=$'\306\221' [0x0192]=$'\306\222' [0x0193]=$'\306\223' [0x0194]=$'\306\224' [0x0195]=$'\306\225'
+ [0x0196]=$'\306\226' [0x0197]=$'\306\227' [0x0198]=$'\306\230' [0x0199]=$'\306\231' [0x019a]=$'\306\232'
+ [0x019b]=$'\306\233' [0x019c]=$'\306\234' [0x019d]=$'\306\235' [0x019e]=$'\306\236' [0x019f]=$'\306\237'
+ [0x01a0]=$'\306\240' [0x01a1]=$'\306\241' [0x01a2]=$'\306\242' [0x01a3]=$'\306\243' [0x01a4]=$'\306\244'
+ [0x01a5]=$'\306\245' [0x01a6]=$'\306\246' [0x01a7]=$'\306\247' [0x01a8]=$'\306\250' [0x01a9]=$'\306\251'
+ [0x01aa]=$'\306\252' [0x01ab]=$'\306\253' [0x01ac]=$'\306\254' [0x01ad]=$'\306\255' [0x01ae]=$'\306\256'
+ [0x01af]=$'\306\257' [0x01b0]=$'\306\260' [0x01b1]=$'\306\261' [0x01b2]=$'\306\262' [0x01b3]=$'\306\263'
+ [0x01b4]=$'\306\264' [0x01b5]=$'\306\265' [0x01b6]=$'\306\266' [0x01b7]=$'\306\267' [0x01b8]=$'\306\270'
+ [0x01b9]=$'\306\271' [0x01ba]=$'\306\272' [0x01bb]=$'\306\273' [0x01bc]=$'\306\274' [0x01bd]=$'\306\275'
+ [0x01be]=$'\306\276' [0x01bf]=$'\306\277' [0x01c0]=$'\307\200' [0x01c1]=$'\307\201' [0x01c2]=$'\307\202'
+ [0x01c3]=$'\307\203' [0x01c4]=$'\307\204' [0x01c5]=$'\307\205' [0x01c6]=$'\307\206' [0x01c7]=$'\307\207'
+ [0x01c8]=$'\307\210' [0x01c9]=$'\307\211' [0x01ca]=$'\307\212' [0x01cb]=$'\307\213' [0x01cc]=$'\307\214'
+ [0x01cd]=$'\307\215' [0x01ce]=$'\307\216' [0x01cf]=$'\307\217' [0x01d0]=$'\307\220' [0x01d1]=$'\307\221'
+ [0x01d2]=$'\307\222' [0x01d3]=$'\307\223' [0x01d4]=$'\307\224' [0x01d5]=$'\307\225' [0x01d6]=$'\307\226'
+ [0x01d7]=$'\307\227' [0x01d8]=$'\307\230' [0x01d9]=$'\307\231' [0x01da]=$'\307\232' [0x01db]=$'\307\233'
+ [0x01dc]=$'\307\234' [0x01dd]=$'\307\235' [0x01de]=$'\307\236' [0x01df]=$'\307\237' [0x01e0]=$'\307\240'
+ [0x01e1]=$'\307\241' [0x01e2]=$'\307\242' [0x01e3]=$'\307\243' [0x01e4]=$'\307\244' [0x01e5]=$'\307\245'
+ [0x01e6]=$'\307\246' [0x01e7]=$'\307\247' [0x01e8]=$'\307\250' [0x01e9]=$'\307\251' [0x01ea]=$'\307\252'
+ [0x01eb]=$'\307\253' [0x01ec]=$'\307\254' [0x01ed]=$'\307\255' [0x01ee]=$'\307\256' [0x01ef]=$'\307\257'
+ [0x01f0]=$'\307\260' [0x01f1]=$'\307\261' [0x01f2]=$'\307\262' [0x01f3]=$'\307\263' [0x01f4]=$'\307\264'
+ [0x01f5]=$'\307\265' [0x01f6]=$'\307\266' [0x01f7]=$'\307\267' [0x01f8]=$'\307\270' [0x01f9]=$'\307\271'
+ [0x01fa]=$'\307\272' [0x01fb]=$'\307\273' [0x01fc]=$'\307\274' [0x01fd]=$'\307\275' [0x01fe]=$'\307\276'
+ [0x01ff]=$'\307\277' [0x0200]=$'\310\200' [0x0201]=$'\310\201' [0x0202]=$'\310\202' [0x0203]=$'\310\203'
+ [0x0204]=$'\310\204' [0x0205]=$'\310\205' [0x0206]=$'\310\206' [0x0207]=$'\310\207' [0x0208]=$'\310\210'
+ [0x0209]=$'\310\211' [0x020a]=$'\310\212' [0x020b]=$'\310\213' [0x020c]=$'\310\214' [0x020d]=$'\310\215'
+ [0x020e]=$'\310\216' [0x020f]=$'\310\217' [0x0210]=$'\310\220' [0x0211]=$'\310\221' [0x0212]=$'\310\222'
+ [0x0213]=$'\310\223' [0x0214]=$'\310\224' [0x0215]=$'\310\225' [0x0216]=$'\310\226' [0x0217]=$'\310\227'
+ [0x0218]=$'\310\230' [0x0219]=$'\310\231' [0x021a]=$'\310\232' [0x021b]=$'\310\233' [0x021c]=$'\310\234'
+ [0x021d]=$'\310\235' [0x021e]=$'\310\236' [0x021f]=$'\310\237' [0x0220]=$'\310\240' [0x0221]=$'\310\241'
+ [0x0222]=$'\310\242' [0x0223]=$'\310\243' [0x0224]=$'\310\244' [0x0225]=$'\310\245' [0x0226]=$'\310\246'
+ [0x0227]=$'\310\247' [0x0228]=$'\310\250' [0x0229]=$'\310\251' [0x022a]=$'\310\252' [0x022b]=$'\310\253'
+ [0x022c]=$'\310\254' [0x022d]=$'\310\255' [0x022e]=$'\310\256' [0x022f]=$'\310\257' [0x0230]=$'\310\260'
+ [0x0231]=$'\310\261' [0x0232]=$'\310\262' [0x0233]=$'\310\263' [0x0234]=$'\310\264' [0x0235]=$'\310\265'
+ [0x0236]=$'\310\266' [0x0237]=$'\310\267' [0x0238]=$'\310\270' [0x0239]=$'\310\271' [0x023a]=$'\310\272'
+ [0x023b]=$'\310\273' [0x023c]=$'\310\274' [0x023d]=$'\310\275' [0x023e]=$'\310\276' [0x023f]=$'\310\277'
+ [0x0240]=$'\311\200' [0x0241]=$'\311\201' [0x0242]=$'\311\202' [0x0243]=$'\311\203' [0x0244]=$'\311\204'
+ [0x0245]=$'\311\205' [0x0246]=$'\311\206' [0x0247]=$'\311\207' [0x0248]=$'\311\210' [0x0249]=$'\311\211'
+ [0x024a]=$'\311\212' [0x024b]=$'\311\213' [0x024c]=$'\311\214' [0x024d]=$'\311\215' [0x024e]=$'\311\216'
+ [0x024f]=$'\311\217' [0x0250]=$'\311\220' [0x0251]=$'\311\221' [0x0252]=$'\311\222' [0x0253]=$'\311\223'
+ [0x0254]=$'\311\224' [0x0255]=$'\311\225' [0x0256]=$'\311\226' [0x0257]=$'\311\227' [0x0258]=$'\311\230'
+ [0x0259]=$'\311\231' [0x025a]=$'\311\232' [0x025b]=$'\311\233' [0x025c]=$'\311\234' [0x025d]=$'\311\235'
+ [0x025e]=$'\311\236' [0x025f]=$'\311\237' [0x0260]=$'\311\240' [0x0261]=$'\311\241' [0x0262]=$'\311\242'
+ [0x0263]=$'\311\243' [0x0264]=$'\311\244' [0x0265]=$'\311\245' [0x0266]=$'\311\246' [0x0267]=$'\311\247'
+ [0x0268]=$'\311\250' [0x0269]=$'\311\251' [0x026a]=$'\311\252' [0x026b]=$'\311\253' [0x026c]=$'\311\254'
+ [0x026d]=$'\311\255' [0x026e]=$'\311\256' [0x026f]=$'\311\257' [0x0270]=$'\311\260' [0x0271]=$'\311\261'
+ [0x0272]=$'\311\262' [0x0273]=$'\311\263' [0x0274]=$'\311\264' [0x0275]=$'\311\265' [0x0276]=$'\311\266'
+ [0x0277]=$'\311\267' [0x0278]=$'\311\270' [0x0279]=$'\311\271' [0x027a]=$'\311\272' [0x027b]=$'\311\273'
+ [0x027c]=$'\311\274' [0x027d]=$'\311\275' [0x027e]=$'\311\276' [0x027f]=$'\311\277' [0x0280]=$'\312\200'
+ [0x0281]=$'\312\201' [0x0282]=$'\312\202' [0x0283]=$'\312\203' [0x0284]=$'\312\204' [0x0285]=$'\312\205'
+ [0x0286]=$'\312\206' [0x0287]=$'\312\207' [0x0288]=$'\312\210' [0x0289]=$'\312\211' [0x028a]=$'\312\212'
+ [0x028b]=$'\312\213' [0x028c]=$'\312\214' [0x028d]=$'\312\215' [0x028e]=$'\312\216' [0x028f]=$'\312\217'
+ [0x0290]=$'\312\220' [0x0291]=$'\312\221' [0x0292]=$'\312\222' [0x0293]=$'\312\223' [0x0294]=$'\312\224'
+ [0x0295]=$'\312\225' [0x0296]=$'\312\226' [0x0297]=$'\312\227' [0x0298]=$'\312\230' [0x0299]=$'\312\231'
+ [0x029a]=$'\312\232' [0x029b]=$'\312\233' [0x029c]=$'\312\234' [0x029d]=$'\312\235' [0x029e]=$'\312\236'
+ [0x029f]=$'\312\237' [0x02a0]=$'\312\240' [0x02a1]=$'\312\241' [0x02a2]=$'\312\242' [0x02a3]=$'\312\243'
+ [0x02a4]=$'\312\244' [0x02a5]=$'\312\245' [0x02a6]=$'\312\246' [0x02a7]=$'\312\247' [0x02a8]=$'\312\250'
+ [0x02a9]=$'\312\251' [0x02aa]=$'\312\252' [0x02ab]=$'\312\253' [0x02ac]=$'\312\254' [0x02ad]=$'\312\255'
+ [0x02ae]=$'\312\256' [0x02af]=$'\312\257' [0x02b0]=$'\312\260' [0x02b1]=$'\312\261' [0x02b2]=$'\312\262'
+ [0x02b3]=$'\312\263' [0x02b4]=$'\312\264' [0x02b5]=$'\312\265' [0x02b6]=$'\312\266' [0x02b7]=$'\312\267'
+ [0x02b8]=$'\312\270' [0x02b9]=$'\312\271' [0x02ba]=$'\312\272' [0x02bb]=$'\312\273' [0x02bc]=$'\312\274'
+ [0x02bd]=$'\312\275' [0x02be]=$'\312\276' [0x02bf]=$'\312\277' [0x02c0]=$'\313\200' [0x02c1]=$'\313\201'
+ [0x02c2]=$'\313\202' [0x02c3]=$'\313\203' [0x02c4]=$'\313\204' [0x02c5]=$'\313\205' [0x02c6]=$'\313\206'
+ [0x02c7]=$'\313\207' [0x02c8]=$'\313\210' [0x02c9]=$'\313\211' [0x02ca]=$'\313\212' [0x02cb]=$'\313\213'
+ [0x02cc]=$'\313\214' [0x02cd]=$'\313\215' [0x02ce]=$'\313\216' [0x02cf]=$'\313\217' [0x02d0]=$'\313\220'
+ [0x02d1]=$'\313\221' [0x02d2]=$'\313\222' [0x02d3]=$'\313\223' [0x02d4]=$'\313\224' [0x02d5]=$'\313\225'
+ [0x02d6]=$'\313\226' [0x02d7]=$'\313\227' [0x02d8]=$'\313\230' [0x02d9]=$'\313\231' [0x02da]=$'\313\232'
+ [0x02db]=$'\313\233' [0x02dc]=$'\313\234' [0x02dd]=$'\313\235' [0x02de]=$'\313\236' [0x02df]=$'\313\237'
+ [0x02e0]=$'\313\240' [0x02e1]=$'\313\241' [0x02e2]=$'\313\242' [0x02e3]=$'\313\243' [0x02e4]=$'\313\244'
+ [0x02e5]=$'\313\245' [0x02e6]=$'\313\246' [0x02e7]=$'\313\247' [0x02e8]=$'\313\250' [0x02e9]=$'\313\251'
+ [0x02ea]=$'\313\252' [0x02eb]=$'\313\253' [0x02ec]=$'\313\254' [0x02ed]=$'\313\255' [0x02ee]=$'\313\256'
+ [0x02ef]=$'\313\257' [0x02f0]=$'\313\260' [0x02f1]=$'\313\261' [0x02f2]=$'\313\262' [0x02f3]=$'\313\263'
+ [0x02f4]=$'\313\264' [0x02f5]=$'\313\265' [0x02f6]=$'\313\266' [0x02f7]=$'\313\267' [0x02f8]=$'\313\270'
+ [0x02f9]=$'\313\271' [0x02fa]=$'\313\272' [0x02fb]=$'\313\273' [0x02fc]=$'\313\274' [0x02fd]=$'\313\275'
+ [0x02fe]=$'\313\276' [0x02ff]=$'\313\277' [0x0300]=$'\314\200' [0x0301]=$'\314\201' [0x0302]=$'\314\202'
+ [0x0303]=$'\314\203' [0x0304]=$'\314\204' [0x0305]=$'\314\205' [0x0306]=$'\314\206' [0x0307]=$'\314\207'
+ [0x0308]=$'\314\210' [0x0309]=$'\314\211' [0x030a]=$'\314\212' [0x030b]=$'\314\213' [0x030c]=$'\314\214'
+ [0x030d]=$'\314\215' [0x030e]=$'\314\216' [0x030f]=$'\314\217' [0x0310]=$'\314\220' [0x0311]=$'\314\221'
+ [0x0312]=$'\314\222' [0x0313]=$'\314\223' [0x0314]=$'\314\224' [0x0315]=$'\314\225' [0x0316]=$'\314\226'
+ [0x0317]=$'\314\227' [0x0318]=$'\314\230' [0x0319]=$'\314\231' [0x031a]=$'\314\232' [0x031b]=$'\314\233'
+ [0x031c]=$'\314\234' [0x031d]=$'\314\235' [0x031e]=$'\314\236' [0x031f]=$'\314\237' [0x0320]=$'\314\240'
+ [0x0321]=$'\314\241' [0x0322]=$'\314\242' [0x0323]=$'\314\243' [0x0324]=$'\314\244' [0x0325]=$'\314\245'
+ [0x0326]=$'\314\246' [0x0327]=$'\314\247' [0x0328]=$'\314\250' [0x0329]=$'\314\251' [0x032a]=$'\314\252'
+ [0x032b]=$'\314\253' [0x032c]=$'\314\254' [0x032d]=$'\314\255' [0x032e]=$'\314\256' [0x032f]=$'\314\257'
+ [0x0330]=$'\314\260' [0x0331]=$'\314\261' [0x0332]=$'\314\262' [0x0333]=$'\314\263' [0x0334]=$'\314\264'
+ [0x0335]=$'\314\265' [0x0336]=$'\314\266' [0x0337]=$'\314\267' [0x0338]=$'\314\270' [0x0339]=$'\314\271'
+ [0x033a]=$'\314\272' [0x033b]=$'\314\273' [0x033c]=$'\314\274' [0x033d]=$'\314\275' [0x033e]=$'\314\276'
+ [0x033f]=$'\314\277' [0x0340]=$'\315\200' [0x0341]=$'\315\201' [0x0342]=$'\315\202' [0x0343]=$'\315\203'
+ [0x0344]=$'\315\204' [0x0345]=$'\315\205' [0x0346]=$'\315\206' [0x0347]=$'\315\207' [0x0348]=$'\315\210'
+ [0x0349]=$'\315\211' [0x034a]=$'\315\212' [0x034b]=$'\315\213' [0x034c]=$'\315\214' [0x034d]=$'\315\215'
+ [0x034e]=$'\315\216' [0x034f]=$'\315\217' [0x0350]=$'\315\220' [0x0351]=$'\315\221' [0x0352]=$'\315\222'
+ [0x0353]=$'\315\223' [0x0354]=$'\315\224' [0x0355]=$'\315\225' [0x0356]=$'\315\226' [0x0357]=$'\315\227'
+ [0x0358]=$'\315\230' [0x0359]=$'\315\231' [0x035a]=$'\315\232' [0x035b]=$'\315\233' [0x035c]=$'\315\234'
+ [0x035d]=$'\315\235' [0x035e]=$'\315\236' [0x035f]=$'\315\237' [0x0360]=$'\315\240' [0x0361]=$'\315\241'
+ [0x0362]=$'\315\242' [0x0363]=$'\315\243' [0x0364]=$'\315\244' [0x0365]=$'\315\245' [0x0366]=$'\315\246'
+ [0x0367]=$'\315\247' [0x0368]=$'\315\250' [0x0369]=$'\315\251' [0x036a]=$'\315\252' [0x036b]=$'\315\253'
+ [0x036c]=$'\315\254' [0x036d]=$'\315\255' [0x036e]=$'\315\256' [0x036f]=$'\315\257' [0x0370]=$'\315\260'
+ [0x0371]=$'\315\261' [0x0372]=$'\315\262' [0x0373]=$'\315\263' [0x0374]=$'\315\264' [0x0375]=$'\315\265'
+ [0x0376]=$'\315\266' [0x0377]=$'\315\267' [0x0378]=$'\315\270' [0x0379]=$'\315\271' [0x037a]=$'\315\272'
+ [0x037b]=$'\315\273' [0x037c]=$'\315\274' [0x037d]=$'\315\275' [0x037e]=$'\315\276' [0x037f]=$'\315\277'
+ [0x0380]=$'\316\200' [0x0381]=$'\316\201' [0x0382]=$'\316\202' [0x0383]=$'\316\203' [0x0384]=$'\316\204'
+ [0x0385]=$'\316\205' [0x0386]=$'\316\206' [0x0387]=$'\316\207' [0x0388]=$'\316\210' [0x0389]=$'\316\211'
+ [0x038a]=$'\316\212' [0x038b]=$'\316\213' [0x038c]=$'\316\214' [0x038d]=$'\316\215' [0x038e]=$'\316\216'
+ [0x038f]=$'\316\217' [0x0390]=$'\316\220' [0x0391]=$'\316\221' [0x0392]=$'\316\222' [0x0393]=$'\316\223'
+ [0x0394]=$'\316\224' [0x0395]=$'\316\225' [0x0396]=$'\316\226' [0x0397]=$'\316\227' [0x0398]=$'\316\230'
+ [0x0399]=$'\316\231' [0x039a]=$'\316\232' [0x039b]=$'\316\233' [0x039c]=$'\316\234' [0x039d]=$'\316\235'
+ [0x039e]=$'\316\236' [0x039f]=$'\316\237' [0x03a0]=$'\316\240' [0x03a1]=$'\316\241' [0x03a2]=$'\316\242'
+ [0x03a3]=$'\316\243' [0x03a4]=$'\316\244' [0x03a5]=$'\316\245' [0x03a6]=$'\316\246' [0x03a7]=$'\316\247'
+ [0x03a8]=$'\316\250' [0x03a9]=$'\316\251' [0x03aa]=$'\316\252' [0x03ab]=$'\316\253' [0x03ac]=$'\316\254'
+ [0x03ad]=$'\316\255' [0x03ae]=$'\316\256' [0x03af]=$'\316\257' [0x03b0]=$'\316\260' [0x03b1]=$'\316\261'
+ [0x03b2]=$'\316\262' [0x03b3]=$'\316\263' [0x03b4]=$'\316\264' [0x03b5]=$'\316\265' [0x03b6]=$'\316\266'
+ [0x03b7]=$'\316\267' [0x03b8]=$'\316\270' [0x03b9]=$'\316\271' [0x03ba]=$'\316\272' [0x03bb]=$'\316\273'
+ [0x03bc]=$'\316\274' [0x03bd]=$'\316\275' [0x03be]=$'\316\276' [0x03bf]=$'\316\277' [0x03c0]=$'\317\200'
+ [0x03c1]=$'\317\201' [0x03c2]=$'\317\202' [0x03c3]=$'\317\203' [0x03c4]=$'\317\204' [0x03c5]=$'\317\205'
+ [0x03c6]=$'\317\206' [0x03c7]=$'\317\207' [0x03c8]=$'\317\210' [0x03c9]=$'\317\211' [0x03ca]=$'\317\212'
+ [0x03cb]=$'\317\213' [0x03cc]=$'\317\214' [0x03cd]=$'\317\215' [0x03ce]=$'\317\216' [0x03cf]=$'\317\217'
+ [0x03d0]=$'\317\220' [0x03d1]=$'\317\221' [0x03d2]=$'\317\222' [0x03d3]=$'\317\223' [0x03d4]=$'\317\224'
+ [0x03d5]=$'\317\225' [0x03d6]=$'\317\226' [0x03d7]=$'\317\227' [0x03d8]=$'\317\230' [0x03d9]=$'\317\231'
+ [0x03da]=$'\317\232' [0x03db]=$'\317\233' [0x03dc]=$'\317\234' [0x03dd]=$'\317\235' [0x03de]=$'\317\236'
+ [0x03df]=$'\317\237' [0x03e0]=$'\317\240' [0x03e1]=$'\317\241' [0x03e2]=$'\317\242' [0x03e3]=$'\317\243'
+ [0x03e4]=$'\317\244' [0x03e5]=$'\317\245' [0x03e6]=$'\317\246' [0x03e7]=$'\317\247'
+
+
+ [0x1000]=$'\341\200\200' [0x1001]=$'\341\200\201' [0x1002]=$'\341\200\202' [0x1003]=$'\341\200\203' [0x1004]=$'\341\200\204'
+ [0x1005]=$'\341\200\205' [0x1006]=$'\341\200\206' [0x1007]=$'\341\200\207' [0x1008]=$'\341\200\210' [0x1009]=$'\341\200\211'
+ [0x100a]=$'\341\200\212' [0x100b]=$'\341\200\213' [0x100c]=$'\341\200\214' [0x100d]=$'\341\200\215' [0x100e]=$'\341\200\216'
+ [0x100f]=$'\341\200\217' [0x1010]=$'\341\200\220' [0x1011]=$'\341\200\221' [0x1012]=$'\341\200\222' [0x1013]=$'\341\200\223'
+ [0x1014]=$'\341\200\224' [0x1015]=$'\341\200\225' [0x1016]=$'\341\200\226' [0x1017]=$'\341\200\227' [0x1018]=$'\341\200\230'
+ [0x1019]=$'\341\200\231' [0x101a]=$'\341\200\232' [0x101b]=$'\341\200\233' [0x101c]=$'\341\200\234' [0x101d]=$'\341\200\235'
+ [0x101e]=$'\341\200\236' [0x101f]=$'\341\200\237' [0x1020]=$'\341\200\240' [0x1021]=$'\341\200\241' [0x1022]=$'\341\200\242'
+ [0x1023]=$'\341\200\243' [0x1024]=$'\341\200\244' [0x1025]=$'\341\200\245' [0x1026]=$'\341\200\246' [0x1027]=$'\341\200\247'
+ [0x1028]=$'\341\200\250' [0x1029]=$'\341\200\251' [0x102a]=$'\341\200\252' [0x102b]=$'\341\200\253' [0x102c]=$'\341\200\254'
+ [0x102d]=$'\341\200\255' [0x102e]=$'\341\200\256' [0x102f]=$'\341\200\257' [0x1030]=$'\341\200\260' [0x1031]=$'\341\200\261'
+ [0x1032]=$'\341\200\262' [0x1033]=$'\341\200\263' [0x1034]=$'\341\200\264' [0x1035]=$'\341\200\265' [0x1036]=$'\341\200\266'
+ [0x1037]=$'\341\200\267' [0x1038]=$'\341\200\270' [0x1039]=$'\341\200\271' [0x103a]=$'\341\200\272' [0x103b]=$'\341\200\273'
+ [0x103c]=$'\341\200\274' [0x103d]=$'\341\200\275' [0x103e]=$'\341\200\276' [0x103f]=$'\341\200\277' [0x1040]=$'\341\201\200'
+ [0x1041]=$'\341\201\201' [0x1042]=$'\341\201\202' [0x1043]=$'\341\201\203' [0x1044]=$'\341\201\204' [0x1045]=$'\341\201\205'
+ [0x1046]=$'\341\201\206' [0x1047]=$'\341\201\207' [0x1048]=$'\341\201\210' [0x1049]=$'\341\201\211' [0x104a]=$'\341\201\212'
+ [0x104b]=$'\341\201\213' [0x104c]=$'\341\201\214' [0x104d]=$'\341\201\215' [0x104e]=$'\341\201\216' [0x104f]=$'\341\201\217'
+
+ [0x10000]=$'\360\220\200\200' [0x10001]=$'\360\220\200\201' [0x10002]=$'\360\220\200\202' [0x10003]=$'\360\220\200\203' [0x10004]=$'\360\220\200\204'
+ [0x10005]=$'\360\220\200\205' [0x10006]=$'\360\220\200\206' [0x10007]=$'\360\220\200\207' [0x10008]=$'\360\220\200\210' [0x10009]=$'\360\220\200\211'
+ [0x1000a]=$'\360\220\200\212' [0x1000b]=$'\360\220\200\213' [0x1000c]=$'\360\220\200\214' [0x1000d]=$'\360\220\200\215' [0x1000e]=$'\360\220\200\216'
+ [0x1000f]=$'\360\220\200\217' [0x10010]=$'\360\220\200\220' [0x10011]=$'\360\220\200\221' [0x10012]=$'\360\220\200\222' [0x10013]=$'\360\220\200\223'
+ [0x10014]=$'\360\220\200\224' [0x10015]=$'\360\220\200\225' [0x10016]=$'\360\220\200\226' [0x10017]=$'\360\220\200\227' [0x10018]=$'\360\220\200\230'
+ [0x10019]=$'\360\220\200\231' [0x1001a]=$'\360\220\200\232' [0x1001b]=$'\360\220\200\233' [0x1001c]=$'\360\220\200\234' [0x1001d]=$'\360\220\200\235'
+ [0x1001e]=$'\360\220\200\236' [0x1001f]=$'\360\220\200\237' [0x10020]=$'\360\220\200\240' [0x10021]=$'\360\220\200\241' [0x10022]=$'\360\220\200\242'
+ [0x10023]=$'\360\220\200\243' [0x10024]=$'\360\220\200\244' [0x10025]=$'\360\220\200\245' [0x10026]=$'\360\220\200\246' [0x10027]=$'\360\220\200\247'
+ [0x10028]=$'\360\220\200\250' [0x10029]=$'\360\220\200\251' [0x1002a]=$'\360\220\200\252' [0x1002b]=$'\360\220\200\253' [0x1002c]=$'\360\220\200\254'
+ [0x1002d]=$'\360\220\200\255' [0x1002e]=$'\360\220\200\256' [0x1002f]=$'\360\220\200\257' [0x10030]=$'\360\220\200\260' [0x10031]=$'\360\220\200\261'
+ [0x10032]=$'\360\220\200\262' [0x10033]=$'\360\220\200\263' [0x10034]=$'\360\220\200\264' [0x10035]=$'\360\220\200\265' [0x10036]=$'\360\220\200\266'
+ [0x10037]=$'\360\220\200\267' [0x10038]=$'\360\220\200\270' [0x10039]=$'\360\220\200\271' [0x1003a]=$'\360\220\200\272' [0x1003b]=$'\360\220\200\273'
+ [0x1003c]=$'\360\220\200\274' [0x1003d]=$'\360\220\200\275' [0x1003e]=$'\360\220\200\276' [0x1003f]=$'\360\220\200\277' [0x10040]=$'\360\220\201\200'
+ [0x10041]=$'\360\220\201\201' [0x10042]=$'\360\220\201\202' [0x10043]=$'\360\220\201\203' [0x10044]=$'\360\220\201\204' [0x10045]=$'\360\220\201\205'
+ [0x10046]=$'\360\220\201\206' [0x10047]=$'\360\220\201\207' [0x10048]=$'\360\220\201\210' [0x10049]=$'\360\220\201\211' [0x1004a]=$'\360\220\201\212'
+ [0x1004b]=$'\360\220\201\213' [0x1004c]=$'\360\220\201\214' [0x1004d]=$'\360\220\201\215' [0x1004e]=$'\360\220\201\216' [0x1004f]=$'\360\220\201\217'
+
+ [0x1000000]=$'\371\200\200\200\200' [0x1000001]=$'\371\200\200\200\201' [0x1000002]=$'\371\200\200\200\202' [0x1000003]=$'\371\200\200\200\203' [0x1000004]=$'\371\200\200\200\204'
+ [0x1000005]=$'\371\200\200\200\205' [0x1000006]=$'\371\200\200\200\206' [0x1000007]=$'\371\200\200\200\207' [0x1000008]=$'\371\200\200\200\210' [0x1000009]=$'\371\200\200\200\211'
+ [0x100000a]=$'\371\200\200\200\212' [0x100000b]=$'\371\200\200\200\213' [0x100000c]=$'\371\200\200\200\214' [0x100000d]=$'\371\200\200\200\215' [0x100000e]=$'\371\200\200\200\216'
+ [0x100000f]=$'\371\200\200\200\217' [0x1000010]=$'\371\200\200\200\220' [0x1000011]=$'\371\200\200\200\221' [0x1000012]=$'\371\200\200\200\222' [0x1000013]=$'\371\200\200\200\223'
+ [0x1000014]=$'\371\200\200\200\224' [0x1000015]=$'\371\200\200\200\225' [0x1000016]=$'\371\200\200\200\226' [0x1000017]=$'\371\200\200\200\227' [0x1000018]=$'\371\200\200\200\230'
+ [0x1000019]=$'\371\200\200\200\231' [0x100001a]=$'\371\200\200\200\232' [0x100001b]=$'\371\200\200\200\233' [0x100001c]=$'\371\200\200\200\234' [0x100001d]=$'\371\200\200\200\235'
+ [0x100001e]=$'\371\200\200\200\236' [0x100001f]=$'\371\200\200\200\237' [0x1000020]=$'\371\200\200\200\240' [0x1000021]=$'\371\200\200\200\241' [0x1000022]=$'\371\200\200\200\242'
+ [0x1000023]=$'\371\200\200\200\243' [0x1000024]=$'\371\200\200\200\244' [0x1000025]=$'\371\200\200\200\245' [0x1000026]=$'\371\200\200\200\246' [0x1000027]=$'\371\200\200\200\247'
+ [0x1000028]=$'\371\200\200\200\250' [0x1000029]=$'\371\200\200\200\251' [0x100002a]=$'\371\200\200\200\252' [0x100002b]=$'\371\200\200\200\253' [0x100002c]=$'\371\200\200\200\254'
+ [0x100002d]=$'\371\200\200\200\255' [0x100002e]=$'\371\200\200\200\256' [0x100002f]=$'\371\200\200\200\257' [0x1000030]=$'\371\200\200\200\260' [0x1000031]=$'\371\200\200\200\261'
+ [0x1000032]=$'\371\200\200\200\262' [0x1000033]=$'\371\200\200\200\263' [0x1000034]=$'\371\200\200\200\264' [0x1000035]=$'\371\200\200\200\265' [0x1000036]=$'\371\200\200\200\266'
+ [0x1000037]=$'\371\200\200\200\267' [0x1000038]=$'\371\200\200\200\270' [0x1000039]=$'\371\200\200\200\271' [0x100003a]=$'\371\200\200\200\272' [0x100003b]=$'\371\200\200\200\273'
+ [0x100003c]=$'\371\200\200\200\274' [0x100003d]=$'\371\200\200\200\275' [0x100003e]=$'\371\200\200\200\276' [0x100003f]=$'\371\200\200\200\277' [0x1000040]=$'\371\200\200\201\200'
+ [0x1000041]=$'\371\200\200\201\201' [0x1000042]=$'\371\200\200\201\202' [0x1000043]=$'\371\200\200\201\203' [0x1000044]=$'\371\200\200\201\204' [0x1000045]=$'\371\200\200\201\205'
+ [0x1000046]=$'\371\200\200\201\206' [0x1000047]=$'\371\200\200\201\207' [0x1000048]=$'\371\200\200\201\210' [0x1000049]=$'\371\200\200\201\211' [0x100004a]=$'\371\200\200\201\212'
+ [0x100004b]=$'\371\200\200\201\213' [0x100004c]=$'\371\200\200\201\214' [0x100004d]=$'\371\200\200\201\215' [0x100004e]=$'\371\200\200\201\216' [0x100004f]=$'\371\200\200\201\217'
+
+ [0x70000000]=$'\375\260\200\200\200\200' [0x70000001]=$'\375\260\200\200\200\201' [0x70000002]=$'\375\260\200\200\200\202' [0x70000003]=$'\375\260\200\200\200\203'
+ [0x70000004]=$'\375\260\200\200\200\204' [0x70000005]=$'\375\260\200\200\200\205' [0x70000006]=$'\375\260\200\200\200\206' [0x70000007]=$'\375\260\200\200\200\207' [0x70000008]=$'\375\260\200\200\200\210'
+ [0x70000009]=$'\375\260\200\200\200\211' [0x7000000a]=$'\375\260\200\200\200\212' [0x7000000b]=$'\375\260\200\200\200\213' [0x7000000c]=$'\375\260\200\200\200\214' [0x7000000d]=$'\375\260\200\200\200\215'
+ [0x7000000e]=$'\375\260\200\200\200\216' [0x7000000f]=$'\375\260\200\200\200\217' [0x70000010]=$'\375\260\200\200\200\220' [0x70000011]=$'\375\260\200\200\200\221' [0x70000012]=$'\375\260\200\200\200\222'
+ [0x70000013]=$'\375\260\200\200\200\223' [0x70000014]=$'\375\260\200\200\200\224' [0x70000015]=$'\375\260\200\200\200\225' [0x70000016]=$'\375\260\200\200\200\226' [0x70000017]=$'\375\260\200\200\200\227'
+ [0x70000018]=$'\375\260\200\200\200\230' [0x70000019]=$'\375\260\200\200\200\231' [0x7000001a]=$'\375\260\200\200\200\232' [0x7000001b]=$'\375\260\200\200\200\233' [0x7000001c]=$'\375\260\200\200\200\234'
+ [0x7000001d]=$'\375\260\200\200\200\235' [0x7000001e]=$'\375\260\200\200\200\236' [0x7000001f]=$'\375\260\200\200\200\237' [0x70000020]=$'\375\260\200\200\200\240' [0x70000021]=$'\375\260\200\200\200\241'
+ [0x70000022]=$'\375\260\200\200\200\242' [0x70000023]=$'\375\260\200\200\200\243' [0x70000024]=$'\375\260\200\200\200\244' [0x70000025]=$'\375\260\200\200\200\245' [0x70000026]=$'\375\260\200\200\200\246'
+ [0x70000027]=$'\375\260\200\200\200\247' [0x70000028]=$'\375\260\200\200\200\250' [0x70000029]=$'\375\260\200\200\200\251' [0x7000002a]=$'\375\260\200\200\200\252' [0x7000002b]=$'\375\260\200\200\200\253'
+ [0x7000002c]=$'\375\260\200\200\200\254' [0x7000002d]=$'\375\260\200\200\200\255' [0x7000002e]=$'\375\260\200\200\200\256' [0x7000002f]=$'\375\260\200\200\200\257' [0x70000030]=$'\375\260\200\200\200\260'
+ [0x70000031]=$'\375\260\200\200\200\261' [0x70000032]=$'\375\260\200\200\200\262' [0x70000033]=$'\375\260\200\200\200\263' [0x70000034]=$'\375\260\200\200\200\264' [0x70000035]=$'\375\260\200\200\200\265'
+ [0x70000036]=$'\375\260\200\200\200\266' [0x70000037]=$'\375\260\200\200\200\267' [0x70000038]=$'\375\260\200\200\200\270' [0x70000039]=$'\375\260\200\200\200\271' [0x7000003a]=$'\375\260\200\200\200\272'
+ [0x7000003b]=$'\375\260\200\200\200\273' [0x7000003c]=$'\375\260\200\200\200\274' [0x7000003d]=$'\375\260\200\200\200\275' [0x7000003e]=$'\375\260\200\200\200\276' [0x7000003f]=$'\375\260\200\200\200\277'
+ [0x70000040]=$'\375\260\200\200\201\200' [0x70000041]=$'\375\260\200\200\201\201' [0x70000042]=$'\375\260\200\200\201\202' [0x70000043]=$'\375\260\200\200\201\203' [0x70000044]=$'\375\260\200\200\201\204'
+ [0x70000045]=$'\375\260\200\200\201\205' [0x70000046]=$'\375\260\200\200\201\206' [0x70000047]=$'\375\260\200\200\201\207' [0x70000048]=$'\375\260\200\200\201\210' [0x70000049]=$'\375\260\200\200\201\211'
+ [0x7000004a]=$'\375\260\200\200\201\212' [0x7000004b]=$'\375\260\200\200\201\213' [0x7000004c]=$'\375\260\200\200\201\214' [0x7000004d]=$'\375\260\200\200\201\215' [0x7000004e]=$'\375\260\200\200\201\216'
+
+
+
+ )
+TestCodePage en_US.UTF-8 C_UTF_8
+
+if [ ${ErrorCnt} -gt 0 ]; then
+  echo "Failed ${ErrorCnt} of ${TestCnt} Unicode tests"
+else
+  echo "Passed all ${TestCnt} Unicode tests"
+fi
diff --git a/tests/unicode2.sub b/tests/unicode2.sub
new file mode 100644 (file)
index 0000000..f10cdec
--- /dev/null
@@ -0,0 +1,22 @@
+export LANG=en_US.UTF-8
+
+printf '%s\n' "$(printf '\uff')" | od -b
+printf '%s\n' $'\uff' | od -b
+
+printf '\uff'\\n | od -b
+echo $'\uff' | od -b
+
+printf '\uffff'\\n | od -b
+echo $'\uffff' | od -b
+
+printf '\Ufffffffe'\\n | od -b
+echo $'\Ufffffffe' | od -b
+
+printf '\Uffffffff'\\n | od -b
+echo $'\Uffffffff' | od -b
+
+LC_CTYPE=C printf '\uff'\\n | od -b
+LC_CTYPE=ru_RU.CP1251 printf '\uff'\\n | od -b
+LC_CTYPE=en_US.UTF-8 printf '\uff'\\n | od -b
+
+echo -e '\u0041 \u00a3 \u0152' | od -b