summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-12-29 13:05:52 -0500
committerChet Ramey <chet.ramey@case.edu>2011-12-29 13:05:52 -0500
commitc1854f2dd6a5ab4c240bf697f86856511b2d1660 (patch)
treed4ebaaebff5079f481f9f5d197d56a5b660bc18f
parent7df0c1b2df350299db28d8742c4b3ce57a907314 (diff)
downloadbash-c1854f2dd6a5ab4c240bf697f86856511b2d1660.tar.gz
commit bash-20110325 snapshot
-rw-r--r--CWRU/CWRU.chlog73
-rw-r--r--CWRU/CWRU.chlog~96
-rw-r--r--MANIFEST4
-rw-r--r--bashhist.c5
-rw-r--r--bashhist.c~909
-rw-r--r--doc/bash.17
-rw-r--r--doc/bashref.texi3
-rw-r--r--doc/version.texi4
-rw-r--r--lib/glob/ddd1107
-rw-r--r--lib/glob/glob.c4
-rw-r--r--lib/glob/xmbsrtowcs.c34
-rw-r--r--lib/readline/#rlprivate.h#507
-rw-r--r--lib/readline/input.c4
-rw-r--r--lib/readline/input.c~610
-rw-r--r--lib/readline/rlprivate.h1
-rw-r--r--lib/readline/rlprivate.h~506
-rw-r--r--lib/readline/rlstdc.h12
-rw-r--r--lib/readline/rlstdc.h~45
-rw-r--r--lib/readline/rltypedefs.h14
-rw-r--r--lib/readline/rltypedefs.h~93
-rw-r--r--lib/readline/shell.c30
-rw-r--r--lib/readline/shell.c~4
-rw-r--r--lib/readline/signals.c7
-rw-r--r--lib/readline/signals.c~678
-rw-r--r--lib/readline/terminal.c11
-rw-r--r--lib/readline/terminal.c~739
-rw-r--r--patchlevel.h2
-rw-r--r--po/LINGUAS2
-rw-r--r--po/da.po5316
-rw-r--r--po/fr.po2143
-rw-r--r--po/pl.po471
-rw-r--r--po/sl.po86
-rw-r--r--print_cmd.c24
-rw-r--r--print_cmd.c~1552
-rw-r--r--trap.c18
-rw-r--r--trap.c~1129
36 files changed, 13717 insertions, 1533 deletions
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog
index 4edf375a..5dd4cf3b 100644
--- a/CWRU/CWRU.chlog
+++ b/CWRU/CWRU.chlog
@@ -11299,7 +11299,7 @@ lib/glob/glob.c
- fix mbskipname to call skipname if either the pattern or the filename
can't be converted into a wide-char string
-lib/glob/xmbstowcs.c
+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>
@@ -11313,3 +11313,74 @@ bashline.c
- 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>
diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~
index 0f7bd255..70a49620 100644
--- a/CWRU/CWRU.chlog~
+++ b/CWRU/CWRU.chlog~
@@ -11288,5 +11288,99 @@ doc/{bash.1,bashref.texi}
arrayfunc.[ch],subst.c
- array_expand_index now takes a new first argument: a SHELL_VAR *
- of the variable being subscripted. Can be used later to fully
+ 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 repeat SIGWINCH reported by
+ Henning Bekel <h.bekel@googlemail.com>
diff --git a/MANIFEST b/MANIFEST
index 1cf164e5..1e0f684f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -484,6 +484,8 @@ po/ca.gmo f
po/ca.po f
po/cs.gmo f
po/cs.po f
+po/da.gmo f
+po/da.po f
po/de.gmo f
po/de.po f
po/eo.gmo f
@@ -518,6 +520,8 @@ po/ru.gmo f
po/ru.po f
po/sk.gmo f
po/sk.po f
+po/sl.gmo f
+po/sl.po f
po/sv.gmo f
po/sv.po f
po/tr.gmo f
diff --git a/bashhist.c b/bashhist.c
index 7240a5bd..bf4c6634 100644
--- a/bashhist.c
+++ b/bashhist.c
@@ -351,6 +351,7 @@ void
save_history ()
{
char *hf;
+ int r;
hf = get_string_value ("HISTFILE");
if (hf && *hf && file_exists (hf))
@@ -360,9 +361,9 @@ save_history ()
using_history ();
if (history_lines_this_session <= where_history () || force_append_history)
- append_history (history_lines_this_session, hf);
+ r = append_history (history_lines_this_session, hf);
else
- write_history (hf);
+ r = write_history (hf);
sv_histsize ("HISTFILESIZE");
}
}
diff --git a/bashhist.c~ b/bashhist.c~
new file mode 100644
index 00000000..7240a5bd
--- /dev/null
+++ b/bashhist.c~
@@ -0,0 +1,909 @@
+/* bashhist.c -- bash interface to the GNU history library. */
+
+/* Copyright (C) 1993-2010 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 (HISTORY)
+
+#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
+# include <unistd.h>
+#endif
+
+#include "bashtypes.h"
+#include <stdio.h>
+#include <errno.h>
+#include "bashansi.h"
+#include "posixstat.h"
+#include "filecntl.h"
+
+#include "bashintl.h"
+
+#if defined (SYSLOG_HISTORY)
+# include <syslog.h>
+#endif
+
+#include "shell.h"
+#include "flags.h"
+#include "input.h"
+#include "parser.h" /* for the struct dstack stuff. */
+#include "pathexp.h" /* for the struct ignorevar stuff */
+#include "bashhist.h" /* matching prototypes and declarations */
+#include "builtins/common.h"
+
+#include <readline/history.h>
+#include <glob/glob.h>
+#include <glob/strmatch.h>
+
+#if defined (READLINE)
+# include "bashline.h"
+extern int rl_done, rl_dispatching; /* should really include readline.h */
+#endif
+
+#if !defined (errno)
+extern int errno;
+#endif
+
+static int histignore_item_func __P((struct ign *));
+static int check_history_control __P((char *));
+static void hc_erasedups __P((char *));
+static void really_add_history __P((char *));
+
+static struct ignorevar histignore =
+{
+ "HISTIGNORE",
+ (struct ign *)0,
+ 0,
+ (char *)0,
+ (sh_iv_item_func_t *)histignore_item_func,
+};
+
+#define HIGN_EXPAND 0x01
+
+/* Declarations of bash history variables. */
+/* Non-zero means to remember lines typed to the shell on the history
+ list. This is different than the user-controlled behaviour; this
+ becomes zero when we read lines from a file, for example. */
+int remember_on_history = 1;
+int enable_history_list = 1; /* value for `set -o history' */
+
+/* The number of lines that Bash has added to this history session. The
+ difference between the number of the top element in the history list
+ (offset from history_base) and the number of lines in the history file.
+ Appending this session's history to the history file resets this to 0. */
+int history_lines_this_session;
+
+/* The number of lines that Bash has read from the history file. */
+int history_lines_in_file;
+
+#if defined (BANG_HISTORY)
+/* Non-zero means do no history expansion on this line, regardless
+ of what history_expansion says. */
+int history_expansion_inhibited;
+#endif
+
+/* With the old default, every line was saved in the history individually.
+ I.e., if the user enters:
+ bash$ for i in a b c
+ > do
+ > echo $i
+ > done
+ Each line will be individually saved in the history.
+ bash$ history
+ 10 for i in a b c
+ 11 do
+ 12 echo $i
+ 13 done
+ 14 history
+ If the variable command_oriented_history is set, multiple lines
+ which form one command will be saved as one history entry.
+ bash$ for i in a b c
+ > do
+ > echo $i
+ > done
+ bash$ history
+ 10 for i in a b c
+ do
+ echo $i
+ done
+ 11 history
+ The user can then recall the whole command all at once instead
+ of just being able to recall one line at a time.
+
+ This is now enabled by default.
+ */
+int command_oriented_history = 1;
+
+/* Set to 1 if the first line of a possibly-multi-line command was saved
+ in the history list. Managed by maybe_add_history(), but global so
+ the history-manipluating builtins can see it. */
+int current_command_first_line_saved = 0;
+
+/* Non-zero means to store newlines in the history list when using
+ command_oriented_history rather than trying to use semicolons. */
+int literal_history;
+
+/* Non-zero means to append the history to the history file at shell
+ exit, even if the history has been stifled. */
+int force_append_history;
+
+/* A nit for picking at history saving. Flags have the following values:
+
+ Value == 0 means save all lines parsed by the shell on the history.
+ Value & HC_IGNSPACE means save all lines that do not start with a space.
+ Value & HC_IGNDUPS means save all lines that do not match the last
+ line saved.
+ Value & HC_ERASEDUPS means to remove all other matching lines from the
+ history list before saving the latest line. */
+int history_control;
+
+/* Set to 1 if the last command was added to the history list successfully
+ as a separate history entry; set to 0 if the line was ignored or added
+ to a previous entry as part of command-oriented-history processing. */
+int hist_last_line_added;
+
+/* Set to 1 if builtins/history.def:push_history added the last history
+ entry. */
+int hist_last_line_pushed;
+
+#if defined (READLINE)
+/* If non-zero, and readline is being used, the user is offered the
+ chance to re-edit a failed history expansion. */
+int history_reediting;
+
+/* If non-zero, and readline is being used, don't directly execute a
+ line with history substitution. Reload it into the editing buffer
+ instead and let the user further edit and confirm with a newline. */
+int hist_verify;
+
+#endif /* READLINE */
+
+/* Non-zero means to not save function definitions in the history list. */
+int dont_save_function_defs;
+
+/* Variables declared in other files used here. */
+extern int current_command_line_count;
+
+extern struct dstack dstack;
+extern int parser_state;
+
+static int bash_history_inhibit_expansion __P((char *, int));
+#if defined (READLINE)
+static void re_edit __P((char *));
+#endif
+static int history_expansion_p __P((char *));
+static int shell_comment __P((char *));
+static int should_expand __P((char *));
+static HIST_ENTRY *last_history_entry __P((void));
+static char *expand_histignore_pattern __P((char *));
+static int history_should_ignore __P((char *));
+
+/* Is the history expansion starting at string[i] one that should not
+ be expanded? */
+static int
+bash_history_inhibit_expansion (string, i)
+ char *string;
+ int i;
+{
+ /* The shell uses ! as a pattern negation character in globbing [...]
+ expressions, so let those pass without expansion. */
+ if (i > 0 && (string[i - 1] == '[') && member (']', string + i + 1))
+ return (1);
+ /* The shell uses ! as the indirect expansion character, so let those
+ expansions pass as well. */
+ else if (i > 1 && string[i - 1] == '{' && string[i - 2] == '$' &&
+ member ('}', string + i + 1))
+ return (1);
+ /* The shell uses $! as a defined parameter expansion. */
+ else if (i > 1 && string[i - 1] == '$' && string[i] == '!')
+ return (1);
+#if defined (EXTENDED_GLOB)
+ else if (extended_glob && i > 1 && string[i+1] == '(' && member (')', string + i + 2))
+ return (1);
+#endif
+ else
+ return (0);
+}
+
+void
+bash_initialize_history ()
+{
+ history_quotes_inhibit_expansion = 1;
+ history_search_delimiter_chars = ";&()|<>";
+ history_inhibit_expansion_function = bash_history_inhibit_expansion;
+#if defined (BANG_HISTORY)
+ sv_histchars ("histchars");
+#endif
+}
+
+void
+bash_history_reinit (interact)
+ int interact;
+{
+#if defined (BANG_HISTORY)
+ history_expansion = interact != 0;
+ history_expansion_inhibited = 1;
+#endif
+ remember_on_history = enable_history_list = interact != 0;
+ history_inhibit_expansion_function = bash_history_inhibit_expansion;
+}
+
+void
+bash_history_disable ()
+{
+ remember_on_history = 0;
+#if defined (BANG_HISTORY)
+ history_expansion_inhibited = 1;
+#endif
+}
+
+void
+bash_history_enable ()
+{
+ remember_on_history = 1;
+#if defined (BANG_HISTORY)
+ history_expansion_inhibited = 0;
+#endif
+ history_inhibit_expansion_function = bash_history_inhibit_expansion;
+ sv_history_control ("HISTCONTROL");
+ sv_histignore ("HISTIGNORE");
+}
+
+/* Load the history list from the history file. */
+void
+load_history ()
+{
+ char *hf;
+
+ /* Truncate history file for interactive shells which desire it.
+ Note that the history file is automatically truncated to the
+ size of HISTSIZE if the user does not explicitly set the size
+ differently. */
+ set_if_not ("HISTSIZE", "500");
+ sv_histsize ("HISTSIZE");
+
+ set_if_not ("HISTFILESIZE", get_string_value ("HISTSIZE"));
+ sv_histsize ("HISTFILESIZE");
+
+ /* Read the history in HISTFILE into the history list. */
+ hf = get_string_value ("HISTFILE");
+
+ if (hf && *hf && file_exists (hf))
+ {
+ read_history (hf);
+ using_history ();
+ history_lines_in_file = where_history ();
+ }
+}
+
+void
+bash_clear_history ()
+{
+ clear_history ();
+ history_lines_this_session = 0;
+}
+
+/* Delete and free the history list entry at offset I. */
+int
+bash_delete_histent (i)
+ int i;
+{
+ HIST_ENTRY *discard;
+
+ discard = remove_history (i);
+ if (discard)
+ free_history_entry (discard);
+ history_lines_this_session--;
+
+ return 1;
+}
+
+int
+bash_delete_last_history ()
+{
+ register int i;
+ HIST_ENTRY **hlist, *histent;
+ int r;
+
+ hlist = history_list ();
+ if (hlist == NULL)
+ return 0;
+
+ for (i = 0; hlist[i]; i++)
+ ;
+ i--;
+
+ /* History_get () takes a parameter that must be offset by history_base. */
+ histent = history_get (history_base + i); /* Don't free this */
+ if (histent == NULL)
+ return 0;
+
+ r = bash_delete_histent (i);
+
+ if (where_history () > history_length)
+ history_set_pos (history_length);
+
+ return r;
+}
+
+#ifdef INCLUDE_UNUSED
+/* Write the existing history out to the history file. */
+void
+save_history ()
+{
+ char *hf;
+
+ hf = get_string_value ("HISTFILE");
+ if (hf && *hf && file_exists (hf))
+ {
+ /* Append only the lines that occurred this session to
+ the history file. */
+ using_history ();
+
+ if (history_lines_this_session <= where_history () || force_append_history)
+ append_history (history_lines_this_session, hf);
+ else
+ write_history (hf);
+ sv_histsize ("HISTFILESIZE");
+ }
+}
+#endif
+
+int
+maybe_append_history (filename)
+ char *filename;
+{
+ int fd, result;
+ struct stat buf;
+
+ result = EXECUTION_SUCCESS;
+ if (history_lines_this_session && (history_lines_this_session <= where_history ()))
+ {
+ /* If the filename was supplied, then create it if necessary. */
+ if (stat (filename, &buf) == -1 && errno == ENOENT)
+ {
+ fd = open (filename, O_WRONLY|O_CREAT, 0600);
+ if (fd < 0)
+ {
+ builtin_error (_("%s: cannot create: %s"), filename, strerror (errno));
+ return (EXECUTION_FAILURE);
+ }
+ close (fd);
+ }
+ result = append_history (history_lines_this_session, filename);
+ history_lines_in_file += history_lines_this_session;
+ history_lines_this_session = 0;
+ }
+ return (result);
+}
+
+/* If this is an interactive shell, then append the lines executed
+ this session to the history file. */
+int
+maybe_save_shell_history ()
+{
+ int result;
+ char *hf;
+
+ result = 0;
+ if (history_lines_this_session)
+ {
+ hf = get_string_value ("HISTFILE");
+
+ if (hf && *hf)
+ {
+ /* If the file doesn't exist, then create it. */
+ if (file_exists (hf) == 0)
+ {
+ int file;
+ file = open (hf, O_CREAT | O_TRUNC | O_WRONLY, 0600);
+ if (file != -1)
+ close (file);
+ }
+
+ /* Now actually append the lines if the history hasn't been
+ stifled. If the history has been stifled, rewrite the
+ history file. */
+ using_history ();
+ if (history_lines_this_session <= where_history () || force_append_history)
+ {
+ result = append_history (history_lines_this_session, hf);
+ history_lines_in_file += history_lines_this_session;
+ }
+ else
+ {
+ result = write_history (hf);
+ history_lines_in_file = history_lines_this_session;
+ }
+ history_lines_this_session = 0;
+
+ sv_histsize ("HISTFILESIZE");
+ }
+ }
+ return (result);
+}
+
+#if defined (READLINE)
+/* Tell readline () that we have some text for it to edit. */
+static void
+re_edit (text)
+ char *text;
+{
+ if (bash_input.type == st_stdin)
+ bash_re_edit (text);
+}
+#endif /* READLINE */
+
+/* Return 1 if this line needs history expansion. */
+static int
+history_expansion_p (line)
+ char *line;
+{
+ register char *s;
+
+ for (s = line; *s; s++)
+ if (*s == history_expansion_char || *s == history_subst_char)
+ return 1;
+ return 0;
+}
+
+/* Do pre-processing on LINE. If PRINT_CHANGES is non-zero, then
+ print the results of expanding the line if there were any changes.
+ If there is an error, return NULL, otherwise the expanded line is
+ returned. If ADDIT is non-zero the line is added to the history
+ list after history expansion. ADDIT is just a suggestion;
+ REMEMBER_ON_HISTORY can veto, and does.
+ Right now this does history expansion. */
+char *
+pre_process_line (line, print_changes, addit)
+ char *line;
+ int print_changes, addit;
+{
+ char *history_value;
+ char *return_value;
+ int expanded;
+
+ return_value = line;
+ expanded = 0;
+
+# if defined (BANG_HISTORY)
+ /* History expand the line. If this results in no errors, then
+ add that line to the history if ADDIT is non-zero. */
+ if (!history_expansion_inhibited && history_expansion && history_expansion_p (line))
+ {
+ expanded = history_expand (line, &history_value);
+
+ if (expanded)
+ {
+ if (print_changes)
+ {
+ if (expanded < 0)
+ internal_error ("%s", history_value);
+#if defined (READLINE)
+ else if (hist_verify == 0 || expanded == 2)
+#else
+ else
+#endif
+ fprintf (stderr, "%s\n", history_value);
+ }
+
+ /* If there was an error, return NULL. */
+ if (expanded < 0 || expanded == 2) /* 2 == print only */
+ {
+# if defined (READLINE)
+ if (expanded == 2 && rl_dispatching == 0 && *history_value)
+# else
+ if (expanded == 2 && *history_value)
+# endif /* !READLINE */
+ maybe_add_history (history_value);
+
+ free (history_value);
+
+# if defined (READLINE)
+ /* New hack. We can allow the user to edit the
+ failed history expansion. */
+ if (history_reediting && expanded < 0 && rl_done)
+ re_edit (line);
+# endif /* READLINE */
+ return ((char *)NULL);
+ }
+
+# if defined (READLINE)
+ if (hist_verify && expanded == 1)
+ {
+ re_edit (history_value);
+ return ((char *)NULL);
+ }
+# endif
+ }
+
+ /* Let other expansions know that return_value can be free'ed,
+ and that a line has been added to the history list. Note
+ that we only add lines that have something in them. */
+ expanded = 1;
+ return_value = history_value;
+ }
+# endif /* BANG_HISTORY */
+
+ if (addit && remember_on_history && *return_value)
+ maybe_add_history (return_value);
+
+#if 0
+ if (expanded == 0)
+ return_value = savestring (line);
+#endif
+
+ return (return_value);
+}
+
+/* Return 1 if the first non-whitespace character in LINE is a `#', indicating
+ * that the line is a shell comment. */
+static int
+shell_comment (line)
+ char *line;
+{
+ char *p;
+
+ for (p = line; p && *p && whitespace (*p); p++)
+ ;
+ return (p && *p == '#');
+}
+
+#ifdef INCLUDE_UNUSED
+/* Remove shell comments from LINE. A `#' and anything after it is a comment.
+ This isn't really useful yet, since it doesn't handle quoting. */
+static char *
+filter_comments (line)
+ char *line;
+{
+ char *p;
+
+ for (p = line; p && *p && *p != '#'; p++)
+ ;
+ if (p && *p == '#')
+ *p = '\0';
+ return (line);
+}
+#endif
+
+/* Check LINE against what HISTCONTROL says to do. Returns 1 if the line
+ should be saved; 0 if it should be discarded. */
+static int
+check_history_control (line)
+ char *line;
+{
+ HIST_ENTRY *temp;
+ int r;
+
+ if (history_control == 0)
+ return 1;
+
+ /* ignorespace or ignoreboth */
+ if ((history_control & HC_IGNSPACE) && *line == ' ')
+ return 0;
+
+ /* ignoredups or ignoreboth */
+ if (history_control & HC_IGNDUPS)
+ {
+ using_history ();
+ temp = previous_history ();
+
+ r = (temp == 0 || STREQ (temp->line, line) == 0);
+
+ using_history ();
+
+ if (r == 0)
+ return r;
+ }
+
+ return 1;
+}
+
+/* Remove all entries matching LINE from the history list. Triggered when
+ HISTCONTROL includes `erasedups'. */
+static void
+hc_erasedups (line)
+ char *line;
+{
+ HIST_ENTRY *temp;
+ int r;
+
+ using_history ();
+ while (temp = previous_history ())
+ {
+ if (STREQ (temp->line, line))
+ {
+ r = where_history ();
+ remove_history (r);
+ }
+ }
+ using_history ();
+}
+
+/* Add LINE to the history list, handling possibly multi-line compound
+ commands. We note whether or not we save the first line of each command
+ (which is usually the entire command and history entry), and don't add
+ the second and subsequent lines of a multi-line compound command if we
+ didn't save the first line. We don't usually save shell comment lines in
+ compound commands in the history, because they could have the effect of
+ commenting out the rest of the command when the entire command is saved as
+ a single history entry (when COMMAND_ORIENTED_HISTORY is enabled). If
+ LITERAL_HISTORY is set, we're saving lines in the history with embedded
+ newlines, so it's OK to save comment lines. We also make sure to save
+ multiple-line quoted strings or other constructs. */
+void
+maybe_add_history (line)
+ char *line;
+{
+ hist_last_line_added = 0;
+
+ /* Don't use the value of history_control to affect the second
+ and subsequent lines of a multi-line command (old code did
+ this only when command_oriented_history is enabled). */
+ if (current_command_line_count > 1)
+ {
+ if (current_command_first_line_saved &&
+ (literal_history || dstack.delimiter_depth != 0 || shell_comment (line) == 0))
+ bash_add_history (line);
+ return;
+ }
+
+ /* This is the first line of a (possible multi-line) command. Note whether
+ or not we should save the first line and remember it. */
+ current_command_first_line_saved = check_add_history (line, 0);
+}
+
+/* Just check LINE against HISTCONTROL and HISTIGNORE and add it to the
+ history if it's OK. Used by `history -s' as well as maybe_add_history().
+ Returns 1 if the line was saved in the history, 0 otherwise. */
+int
+check_add_history (line, force)
+ char *line;
+ int force;
+{
+ if (check_history_control (line) && history_should_ignore (line) == 0)
+ {
+ /* We're committed to saving the line. If the user has requested it,
+ remove other matching lines from the history. */
+ if (history_control & HC_ERASEDUPS)
+ hc_erasedups (line);
+
+ if (force)
+ {
+ really_add_history (line);
+ using_history ();
+ }
+ else
+ bash_add_history (line);
+ return 1;
+ }
+ return 0;
+}
+
+#if defined (SYSLOG_HISTORY)
+#define SYSLOG_MAXLEN 600
+
+void
+bash_syslog_history (line)
+ const char *line;
+{
+ char trunc[SYSLOG_MAXLEN];
+
+ if (strlen(line) < SYSLOG_MAXLEN)
+ syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY: PID=%d UID=%d %s", getpid(), current_user.uid, line);
+ else
+ {
+ strncpy (trunc, line, SYSLOG_MAXLEN);
+ trunc[SYSLOG_MAXLEN - 1] = '\0';
+ syslog (SYSLOG_FACILITY|SYSLOG_LEVEL, "HISTORY (TRUNCATED): PID=%d UID=%d %s", getpid(), current_user.uid, trunc);
+ }
+}
+#endif
+
+/* Add a line to the history list.
+ The variable COMMAND_ORIENTED_HISTORY controls the style of history
+ remembering; when non-zero, and LINE is not the first line of a
+ complete parser construct, append LINE to the last history line instead
+ of adding it as a new line. */
+void
+bash_add_history (line)
+ char *line;
+{
+ int add_it, offset, curlen;
+ HIST_ENTRY *current, *old;
+ char *chars_to_add, *new_line;
+
+ add_it = 1;
+ if (command_oriented_history && current_command_line_count > 1)
+ {
+ chars_to_add = literal_history ? "\n" : history_delimiting_chars (line);
+
+ using_history ();
+ current = previous_history ();
+
+ if (current)
+ {
+ /* If the previous line ended with an escaped newline (escaped
+ with backslash, but otherwise unquoted), then remove the quoted
+ newline, since that is what happens when the line is parsed. */
+ curlen = strlen (current->line);
+
+ if (dstack.delimiter_depth == 0 && current->line[curlen - 1] == '\\' &&
+ current->line[curlen - 2] != '\\')
+ {
+ current->line[curlen - 1] = '\0';
+ curlen--;
+ chars_to_add = "";
+ }
+
+ /* If we're not in some kind of quoted construct, the current history
+ entry ends with a newline, and we're going to add a semicolon,
+ don't. In some cases, it results in a syntax error (e.g., before
+ a close brace), and it should not be needed. */
+ if (dstack.delimiter_depth == 0 && current->line[curlen - 1] == '\n' && *chars_to_add == ';')
+ chars_to_add++;
+
+ new_line = (char *)xmalloc (1
+ + curlen
+ + strlen (line)
+ + strlen (chars_to_add));
+ sprintf (new_line, "%s%s%s", current->line, chars_to_add, line);
+ offset = where_history ();
+ old = replace_history_entry (offset, new_line, current->data);
+ free (new_line);
+
+ if (old)
+ free_history_entry (old);
+
+ add_it = 0;
+ }
+ }
+
+ if (add_it)
+ really_add_history (line);
+
+#if defined (SYSLOG_HISTORY)
+ bash_syslog_history (line);
+#endif
+
+ using_history ();
+}
+
+static void
+really_add_history (line)
+ char *line;
+{
+ hist_last_line_added = 1;
+ hist_last_line_pushed = 0;
+ add_history (line);
+ history_lines_this_session++;
+}
+
+int
+history_number ()
+{
+ using_history ();
+ return (remember_on_history ? history_base + where_history () : 1);
+}
+
+static int
+should_expand (s)
+ char *s;
+{
+ char *p;
+
+ for (p = s; p && *p; p++)
+ {
+ if (*p == '\\')
+ p++;
+ else if (*p == '&')
+ return 1;
+ }
+ return 0;
+}
+
+static int
+histignore_item_func (ign)
+ struct ign *ign;
+{
+ if (should_expand (ign->val))
+ ign->flags |= HIGN_EXPAND;
+ return (0);
+}
+
+void
+setup_history_ignore (varname)
+ char *varname;
+{
+ setup_ignore_patterns (&histignore);
+}
+
+static HIST_ENTRY *
+last_history_entry ()
+{
+ HIST_ENTRY *he;
+
+ using_history ();
+ he = previous_history ();
+ using_history ();
+ return he;
+}
+
+char *
+last_history_line ()
+{
+ HIST_ENTRY *he;
+
+ he = last_history_entry ();
+ if (he == 0)
+ return ((char *)NULL);
+ return he->line;
+}
+
+static char *
+expand_histignore_pattern (pat)
+ char *pat;
+{
+ HIST_ENTRY *phe;
+ char *ret;
+
+ phe = last_history_entry ();
+
+ if (phe == (HIST_ENTRY *)0)
+ return (savestring (pat));
+
+ ret = strcreplace (pat, '&', phe->line, 1);
+
+ return ret;
+}
+
+/* Return 1 if we should not put LINE into the history according to the
+ patterns in HISTIGNORE. */
+static int
+history_should_ignore (line)
+ char *line;
+{
+ register int i, match;
+ char *npat;
+
+ if (histignore.num_ignores == 0)
+ return 0;
+
+ for (i = match = 0; i < histignore.num_ignores; i++)
+ {
+ if (histignore.ignores[i].flags & HIGN_EXPAND)
+ npat = expand_histignore_pattern (histignore.ignores[i].val);
+ else
+ npat = histignore.ignores[i].val;
+
+ match = strmatch (npat, line, FNMATCH_EXTFLAG) != FNM_NOMATCH;
+
+ if (histignore.ignores[i].flags & HIGN_EXPAND)
+ free (npat);
+
+ if (match)
+ break;
+ }
+
+ return match;
+}
+#endif /* HISTORY */
diff --git a/doc/bash.1 b/doc/bash.1
index 5ff16aa8..6d56c195 100644
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet@po.cwru.edu
.\"
-.\" Last Change: Sat Mar 12 21:44:43 EST 2011
+.\" Last Change: Thu Mar 24 10:21:02 EDT 2011
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
-.TH BASH 1 "2011 March 12" "GNU Bash-4.2"
+.TH BASH 1 "2011 March 24" "GNU Bash-4.2"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -1465,7 +1465,8 @@ The shell function
\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP.
.TP
.B BASH_SUBSHELL
-Incremented by one each time a subshell or subshell environment is spawned.
+Incremented by one within each subshell or subshell environment when
+the shell begins executing in that environment.
The initial value is 0.
.TP
.B BASH_VERSINFO
diff --git a/doc/bashref.texi b/doc/bashref.texi
index 2c56f81c..b7caa1ea 100644
--- a/doc/bashref.texi
+++ b/doc/bashref.texi
@@ -4945,7 +4945,8 @@ The shell function @code{$@{FUNCNAME[$i]@}} is defined in the file
@code{$@{BASH_SOURCE[$i]@}} and called from @code{$@{BASH_SOURCE[$i+1]@}}
@item BASH_SUBSHELL
-Incremented by one each time a subshell or subshell environment is spawned.
+Incremented by one within each subshell or subshell environment when
+the shell begins executing in that environment.
The initial value is 0.
@item BASH_VERSINFO
diff --git a/doc/version.texi b/doc/version.texi
index 754b94f3..6d3495b3 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -2,9 +2,9 @@
Copyright (C) 1988-2011 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Sat Mar 12 21:44:16 EST 2011
+@set LASTCHANGE Thu Mar 24 10:20:44 EDT 2011
@set EDITION 4.2
@set VERSION 4.2
-@set UPDATED 12 March 2011
+@set UPDATED 24 March 2011
@set UPDATED-MONTH March 2011
diff --git a/lib/glob/ddd1 b/lib/glob/ddd1
new file mode 100644
index 00000000..1e694310
--- /dev/null
+++ b/lib/glob/ddd1
@@ -0,0 +1,107 @@
+*** /fs2/chet/bash/bash-20110317/lib/glob/xmbsrtowcs.c 2011-03-14 14:29:02.000000000 -0400
+--- xmbsrtowcs.c 2011-03-22 16:06:47.000000000 -0400
+***************
+*** 35,40 ****
+--- 35,42 ----
+
+ #if HANDLE_MULTIBYTE
+
++ #define WSBUF_INC 32
++
+ #ifndef FREE
+ # define FREE(x) do { if (x) free (x); } while (0)
+ #endif
+***************
+*** 171,180 ****
+ /* Compute the number of produced wide-characters. */
+ tmp_p = p;
+ tmp_state = state;
+! wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
+
+ /* Conversion failed. */
+! if (wcslength == 0 || wcslength == (size_t)-1)
+ {
+ free (wsbuf);
+ *destp = NULL;
+--- 173,193 ----
+ /* Compute the number of produced wide-characters. */
+ tmp_p = p;
+ tmp_state = state;
+!
+! if (nms == 0 && *p == '\\') /* special initial case */
+! nms = wcslength = 1;
+! else
+! wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
+!
+! if (wcslength == 0)
+! {
+! tmp_p = p; /* will need below */
+! tmp_state = state;
+! wcslength = 1; /* take a single byte */
+! }
+
+ /* Conversion failed. */
+! if (wcslength == (size_t)-1)
+ {
+ free (wsbuf);
+ *destp = NULL;
+***************
+*** 186,192 ****
+ {
+ wchar_t *wstmp;
+
+! wsbuf_size = wcnum+wcslength+1; /* 1 for the L'\0' or the potential L'\\' */
+
+ wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
+ if (wstmp == NULL)
+--- 199,206 ----
+ {
+ wchar_t *wstmp;
+
+! while (wsbuf_size < wcnum+wcslength+1) /* 1 for the L'\0' or the potential L'\\' */
+! wsbuf_size += WSBUF_INC;
+
+ wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
+ if (wstmp == NULL)
+***************
+*** 199,208 ****
+ }
+
+ /* Perform the conversion. This is assumed to return 'wcslength'.
+! * It may set 'p' to NULL. */
+ n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
+
+! wcnum += wcslength;
+
+ if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
+ {
+--- 213,230 ----
+ }
+
+ /* Perform the conversion. This is assumed to return 'wcslength'.
+! It may set 'p' to NULL. */
+ n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
+
+! /* Compensate for taking single byte on wcs conversion failure above. */
+! if (wcslength == 1 && (n == 0 || n == (size_t)-1))
+! {
+! state = tmp_state;
+! p = tmp_p;
+! wsbuf[wcnum++] = *p++;
+! }
+! else
+! wcnum += wcslength;
+
+ if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
+ {
+***************
+*** 230,237 ****
+ If conversion is failed, the return value is (size_t)-1 and the values
+ of DESTP and INDICESP are NULL. */
+
+- #define WSBUF_INC 32
+-
+ size_t
+ xdupmbstowcs (destp, indicesp, src)
+ wchar_t **destp; /* Store the pointer to the wide character string */
+--- 252,257 ----
diff --git a/lib/glob/glob.c b/lib/glob/glob.c
index 3fc90c3b..2cea8a62 100644
--- a/lib/glob/glob.c
+++ b/lib/glob/glob.c
@@ -271,8 +271,8 @@ wdequote_pathname (pathname)
/* Convert the strings into wide characters. */
n = xdupmbstowcs (&wpathname, NULL, pathname);
if (n == (size_t) -1)
- /* Something wrong. */
- return;
+ /* Something wrong. Fall back to single-byte */
+ return udequote_pathname (pathname);
orig_wpathname = wpathname;
for (i = j = 0; wpathname && wpathname[i]; )
diff --git a/lib/glob/xmbsrtowcs.c b/lib/glob/xmbsrtowcs.c
index 10b04426..84b99416 100644
--- a/lib/glob/xmbsrtowcs.c
+++ b/lib/glob/xmbsrtowcs.c
@@ -35,6 +35,8 @@
#if HANDLE_MULTIBYTE
+#define WSBUF_INC 32
+
#ifndef FREE
# define FREE(x) do { if (x) free (x); } while (0)
#endif
@@ -171,10 +173,21 @@ xdupmbstowcs2 (destp, src)
/* Compute the number of produced wide-characters. */
tmp_p = p;
tmp_state = state;
- wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
+
+ if (nms == 0 && *p == '\\') /* special initial case */
+ nms = wcslength = 1;
+ else
+ wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
+
+ if (wcslength == 0)
+ {
+ tmp_p = p; /* will need below */
+ tmp_state = state;
+ wcslength = 1; /* take a single byte */
+ }
/* Conversion failed. */
- if (wcslength == 0 || wcslength == (size_t)-1)
+ if (wcslength == (size_t)-1)
{
free (wsbuf);
*destp = NULL;
@@ -186,7 +199,8 @@ xdupmbstowcs2 (destp, src)
{
wchar_t *wstmp;
- wsbuf_size = wcnum+wcslength+1; /* 1 for the L'\0' or the potential L'\\' */
+ while (wsbuf_size < wcnum+wcslength+1) /* 1 for the L'\0' or the potential L'\\' */
+ wsbuf_size += WSBUF_INC;
wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
if (wstmp == NULL)
@@ -199,10 +213,18 @@ xdupmbstowcs2 (destp, src)
}
/* Perform the conversion. This is assumed to return 'wcslength'.
- * It may set 'p' to NULL. */
+ It may set 'p' to NULL. */
n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
- wcnum += wcslength;
+ /* Compensate for taking single byte on wcs conversion failure above. */
+ if (wcslength == 1 && (n == 0 || n == (size_t)-1))
+ {
+ state = tmp_state;
+ p = tmp_p;
+ wsbuf[wcnum++] = *p++;
+ }
+ else
+ wcnum += wcslength;
if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
{
@@ -230,8 +252,6 @@ xdupmbstowcs2 (destp, src)
If conversion is failed, the return value is (size_t)-1 and the values
of DESTP and INDICESP are NULL. */
-#define WSBUF_INC 32
-
size_t
xdupmbstowcs (destp, indicesp, src)
wchar_t **destp; /* Store the pointer to the wide character string */
diff --git a/lib/readline/#rlprivate.h# b/lib/readline/#rlprivate.h#
new file mode 100644
index 00000000..fb04b9a2
--- /dev/null
+++ b/lib/readline/#rlprivate.h#
@@ -0,0 +1,507 @@
+/* rlprivate.h -- functions and variables global to the readline library,
+ but not intended for use by applications. */
+
+/* Copyright (C) 1999-2010 Free Software Foundation, Inc.
+
+ This file is part of the GNU Readline Library (Readline), a library
+ for reading lines of text with interactive input and history editing.
+
+ Readline is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Readline is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Readline. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#if !defined (_RL_PRIVATE_H_)
+#define _RL_PRIVATE_H_
+
+#include "rlconf.h" /* for VISIBLE_STATS */
+#include "rlstdc.h"
+#include "posixjmp.h" /* defines procenv_t */
+
+/*************************************************************************
+ * *
+ * Convenience definitions *
+ * *
+ *************************************************************************/
+
+#define EMACS_MODE() (rl_editing_mode == emacs_mode)
+#define VI_COMMAND_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
+#define VI_INSERT_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_insertion_keymap)
+
+#define RL_CHECK_SIGNALS() \
+ do { \
+ if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
+ } while (0)
+
+/*************************************************************************
+ * *
+ * Global structs undocumented in texinfo manual and not in readline.h *
+ * *
+ *************************************************************************/
+/* search types */
+#define RL_SEARCH_ISEARCH 0x01 /* incremental search */
+#define RL_SEARCH_NSEARCH 0x02 /* non-incremental search */
+#define RL_SEARCH_CSEARCH 0x04 /* intra-line char search */
+
+/* search flags */
+#define SF_REVERSE 0x01
+#define SF_FOUND 0x02
+#define SF_FAILED 0x04
+#define SF_CHGKMAP 0x08
+
+typedef struct __rl_search_context
+{
+ int type;
+ int sflags;
+
+ char *search_string;
+ int search_string_index;
+ int search_string_size;
+
+ char **lines;
+ char *allocated_line;
+ int hlen;
+ int hindex;
+
+ int save_point;
+ int save_mark;
+ int save_line;
+ int last_found_line;
+ char *prev_line_found;
+
+ UNDO_LIST *save_undo_list;
+
+ Keymap keymap; /* used when dispatching commands in search string */
+ Keymap okeymap; /* original keymap */
+
+ int history_pos;
+ int direction;
+
+ int lastc;
+#if defined (HANDLE_MULTIBYTE)
+ char mb[MB_LEN_MAX];
+#endif
+
+ char *sline;
+ int sline_len;
+ int sline_index;
+
+ char *search_terminators;
+} _rl_search_cxt;
+
+/* Callback data for reading numeric arguments */
+#define NUM_SAWMINUS 0x01
+#define NUM_SAWDIGITS 0x02
+#define NUM_READONE 0x04
+
+typedef int _rl_arg_cxt;
+
+/* A context for reading key sequences longer than a single character when
+ using the callback interface. */
+#define KSEQ_DISPATCHED 0x01
+#define KSEQ_SUBSEQ 0x02
+#define KSEQ_RECURSIVE 0x04
+
+typedef struct __rl_keyseq_context
+{
+ int flags;
+ int subseq_arg;
+ int subseq_retval; /* XXX */
+ Keymap dmap;
+
+ Keymap oldmap;
+ int okey;
+ struct __rl_keyseq_context *ocxt;
+ int childval;
+} _rl_keyseq_cxt;
+
+/* vi-mode commands that use result of motion command to define boundaries */
+#define VIM_DELETE 0x01
+#define VIM_CHANGE 0x02
+#define VIM_YANK 0x04
+
+/* various states for vi-mode commands that use motion commands. reflects
+ RL_READLINE_STATE */
+#define VMSTATE_READ 0x01
+#define VMSTATE_NUMARG 0x02
+
+typedef struct __rl_vimotion_context
+{
+ int op;
+ int state;
+ int flags; /* reserved */
+ _rl_arg_cxt ncxt;
+ int numeric_arg;
+ int start, end; /* rl_point, rl_end */
+ int key, motion; /* initial key, motion command */
+} _rl_vimotion_cxt;
+
+/* fill in more as needed */
+/* `Generic' callback data and functions */
+typedef struct __rl_callback_generic_arg
+{
+ int count;
+ int i1, i2;
+ /* add here as needed */
+} _rl_callback_generic_arg;
+
+typedef int _rl_callback_func_t PARAMS((_rl_callback_generic_arg *));
+
+/*************************************************************************
+ * *
+ * Global functions undocumented in texinfo manual and not in readline.h *
+ * *
+ *************************************************************************/
+
+/*************************************************************************
+ * *
+ * Global variables undocumented in texinfo manual and not in readline.h *
+ * *
+ *************************************************************************/
+
+/* complete.c */
+extern int rl_complete_with_tilde_expansion;
+#if defined (VISIBLE_STATS)
+extern int rl_visible_stats;
+#endif /* VISIBLE_STATS */
+
+/* readline.c */
+extern int rl_line_buffer_len;
+extern int rl_arg_sign;
+extern int rl_visible_prompt_length;
+extern int rl_key_sequence_length;
+extern int rl_byte_oriented;
+
+/* display.c */
+extern int rl_display_fixed;
+
+/* parens.c */
+extern int rl_blink_matching_paren;
+
+/*************************************************************************
+ * *
+ * Global functions and variables unsed and undocumented *
+ * *
+ *************************************************************************/
+
+/* kill.c */
+extern int rl_set_retained_kills PARAMS((int));
+
+/* terminal.c */
+extern void _rl_set_screen_size PARAMS((int, int));
+
+/* undo.c */
+extern int _rl_fix_last_undo_of_type PARAMS((int, int, int));
+
+/* util.c */
+extern char *_rl_savestring PARAMS((const char *));
+
+/*************************************************************************
+ * *
+ * Functions and variables private to the readline library *
+ * *
+ *************************************************************************/
+
+/* NOTE: Functions and variables prefixed with `_rl_' are
+ pseudo-global: they are global so they can be shared
+ between files in the readline library, but are not intended
+ to be visible to readline callers. */
+
+/*************************************************************************
+ * Undocumented private functions *
+ *************************************************************************/
+
+#if defined(READLINE_CALLBACKS)
+
+/* readline.c */
+extern void readline_internal_setup PARAMS((void));
+extern char *readline_internal_teardown PARAMS((int));
+extern int readline_internal_char PARAMS((void));
+
+extern _rl_keyseq_cxt *_rl_keyseq_cxt_alloc PARAMS((void));
+extern void _rl_keyseq_cxt_dispose PARAMS((_rl_keyseq_cxt *));
+extern void _rl_keyseq_chain_dispose PARAMS((void));
+
+extern int _rl_dispatch_callback PARAMS((_rl_keyseq_cxt *));
+
+/* callback.c */
+extern _rl_callback_generic_arg *_rl_callback_data_alloc PARAMS((int));
+extern void _rl_callback_data_dispose PARAMS((_rl_callback_generic_arg *));
+
+#endif /* READLINE_CALLBACKS */
+
+/* bind.c */
+
+/* complete.c */
+extern void _rl_reset_completion_state PARAMS((void));
+extern char _rl_find_completion_word PARAMS((int *, int *));
+extern void _rl_free_match_list PARAMS((char **));
+
+/* display.c */
+extern char *_rl_strip_prompt PARAMS((char *));
+extern void _rl_move_cursor_relative PARAMS((int, const char *));
+extern void _rl_move_vert PARAMS((int));
+extern void _rl_save_prompt PARAMS((void));
+extern void _rl_restore_prompt PARAMS((void));
+extern char *_rl_make_prompt_for_search PARAMS((int));
+extern void _rl_erase_at_end_of_line PARAMS((int));
+extern void _rl_clear_to_eol PARAMS((int));
+extern void _rl_clear_screen PARAMS((void));
+extern void _rl_update_final PARAMS((void));
+extern void _rl_redisplay_after_sigwinch PARAMS((void));
+extern void _rl_clean_up_for_exit PARAMS((void));
+extern void _rl_erase_entire_line PARAMS((void));
+extern int _rl_current_display_line PARAMS((void));
+
+/* input.c */
+extern int _rl_any_typein PARAMS((void));
+extern int _rl_input_available PARAMS((void));
+extern int _rl_input_queued PARAMS((int));
+extern void _rl_insert_typein PARAMS((int));
+extern int _rl_unget_char PARAMS((int));
+extern int _rl_pushed_input_available PARAMS((void));
+
+/* isearch.c */
+extern _rl_search_cxt *_rl_scxt_alloc PARAMS((int, int));
+extern void _rl_scxt_dispose PARAMS((_rl_search_cxt *, int));
+
+extern int _rl_isearch_dispatch PARAMS((_rl_search_cxt *, int));
+extern int _rl_isearch_callback PARAMS((_rl_search_cxt *));
+
+extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
+
+/* macro.c */
+extern void _rl_with_macro_input PARAMS((char *));
+extern int _rl_next_macro_key PARAMS((void));
+extern void _rl_push_executing_macro PARAMS((void));
+extern void _rl_pop_executing_macro PARAMS((void));
+extern void _rl_add_macro_char PARAMS((int));
+extern void _rl_kill_kbd_macro PARAMS((void));
+
+/* misc.c */
+extern int _rl_arg_overflow PARAMS((void));
+extern void _rl_arg_init PARAMS((void));
+extern int _rl_arg_getchar PARAMS((void));
+extern int _rl_arg_callback PARAMS((_rl_arg_cxt));
+extern void _rl_reset_argument PARAMS((void));
+
+extern void _rl_start_using_history PARAMS((void));
+extern int _rl_free_saved_history_line PARAMS((void));
+extern void _rl_set_insert_mode PARAMS((int, int));
+
+extern void _rl_revert_all_lines PARAMS((void));
+
+/* nls.c */
+extern int _rl_init_eightbit PARAMS((void));
+
+/* parens.c */
+extern void _rl_enable_paren_matching PARAMS((int));
+
+/* readline.c */
+extern void _rl_init_line_state PARAMS((void));
+extern void _rl_set_the_line PARAMS((void));
+extern int _rl_dispatch PARAMS((int, Keymap));
+extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
+extern void _rl_internal_char_cleanup PARAMS((void));
+
+/* rltty.c */
+extern int _rl_disable_tty_signals PARAMS((void));
+extern int _rl_restore_tty_signals PARAMS((void));
+
+/* search.c */
+extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *));
+
+/* signals.c */
+extern void _rl_signal_handler PARAMS((int));
+
+extern void _rl_block_sigint PARAMS((void));
+extern void _rl_release_sigint PARAMS((void));
+extern void _rl_block_sigwinch PARAMS((void));
+extern void _rl_release_sigwinch PARAMS((void));
+
+/* terminal.c */
+extern void _rl_get_screen_size PARAMS((int, int));
+e
+extern int _rl_init_terminal_io PARAMS((const char *));
+#ifdef _MINIX
+extern void _rl_output_character_function PARAMS((int));
+#else
+extern int _rl_output_character_function PARAMS((int));
+#endif
+extern void _rl_output_some_chars PARAMS((const char *, int));
+extern int _rl_backspace PARAMS((int));
+extern void _rl_enable_meta_key PARAMS((void));
+extern void _rl_control_keypad PARAMS((int));
+extern void _rl_set_cursor PARAMS((int, int));
+
+/* text.c */
+extern void _rl_fix_point PARAMS((int));
+extern int _rl_replace_text PARAMS((const char *, int, int));
+extern int _rl_forward_char_internal PARAMS((int));
+extern int _rl_insert_char PARAMS((int, int));
+extern int _rl_overwrite_char PARAMS((int, int));
+extern int _rl_overwrite_rubout PARAMS((int, int));
+extern int _rl_rubout_char PARAMS((int, int));
+#if defined (HANDLE_MULTIBYTE)
+extern int _rl_char_search_internal PARAMS((int, int, char *, int));
+#else
+extern int _rl_char_search_internal PARAMS((int, int, int));
+#endif
+extern int _rl_set_mark_at_pos PARAMS((int));
+
+/* undo.c */
+extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *));
+extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *));
+
+/* util.c */
+#if defined (USE_VARARGS) && defined (PREFER_STDARG)
+extern void _rl_ttymsg (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+extern void _rl_errmsg (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+extern void _rl_trace (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+#else
+extern void _rl_ttymsg ();
+extern void _rl_errmsg ();
+extern void _rl_trace ();
+#endif
+
+extern int _rl_tropen PARAMS((void));
+
+extern int _rl_abort_internal PARAMS((void));
+extern int _rl_null_function PARAMS((int, int));
+extern char *_rl_strindex PARAMS((const char *, const char *));
+extern int _rl_qsort_string_compare PARAMS((char **, char **));
+extern int (_rl_uppercase_p) PARAMS((int));
+extern int (_rl_lowercase_p) PARAMS((int));
+extern int (_rl_pure_alphabetic) PARAMS((int));
+extern int (_rl_digit_p) PARAMS((int));
+extern int (_rl_to_lower) PARAMS((int));
+extern int (_rl_to_upper) PARAMS((int));
+extern int (_rl_digit_value) PARAMS((int));
+
+/* vi_mode.c */
+extern void _rl_vi_initialize_line PARAMS((void));
+extern void _rl_vi_reset_last PARAMS((void));
+extern void _rl_vi_set_last PARAMS((int, int, int));
+extern int _rl_vi_textmod_command PARAMS((int));
+extern void _rl_vi_done_inserting PARAMS((void));
+extern int _rl_vi_domove_callback PARAMS((_rl_vimotion_cxt *));
+
+/*************************************************************************
+ * Undocumented private variables *
+ *************************************************************************/
+
+/* bind.c */
+extern const char * const _rl_possible_control_prefixes[];
+extern const char * const _rl_possible_meta_prefixes[];
+
+/* callback.c */
+extern _rl_callback_func_t *_rl_callback_func;
+extern _rl_callback_generic_arg *_rl_callback_data;
+
+/* complete.c */
+extern int _rl_complete_show_all;
+extern int _rl_complete_show_unmodified;
+extern int _rl_complete_mark_directories;
+extern int _rl_complete_mark_symlink_dirs;
+extern int _rl_completion_prefix_display_length;
+extern int _rl_completion_columns;
+extern int _rl_print_completions_horizontally;
+extern int _rl_completion_case_fold;
+extern int _rl_completion_case_map;
+extern int _rl_match_hidden_files;
+extern int _rl_page_completions;
+extern int _rl_skip_completed_text;
+extern int _rl_menu_complete_prefix_first;
+
+/* display.c */
+extern int _rl_vis_botlin;
+extern int _rl_last_c_pos;
+extern int _rl_suppress_redisplay;
+extern int _rl_want_redisplay;
+
+/* isearch.c */
+extern char *_rl_isearch_terminators;
+
+extern _rl_search_cxt *_rl_iscxt;
+
+/* macro.c */
+extern char *_rl_executing_macro;
+
+/* misc.c */
+extern int _rl_history_preserve_point;
+extern int _rl_history_saved_point;
+
+extern _rl_arg_cxt _rl_argcxt;
+
+/* readline.c */
+extern int _rl_echoing_p;
+extern int _rl_horizontal_scroll_mode;
+extern int _rl_mark_modified_lines;
+extern int _rl_bell_preference;
+extern int _rl_meta_flag;
+extern int _rl_convert_meta_chars_to_ascii;
+extern int _rl_output_meta_chars;
+extern int _rl_bind_stty_chars;
+extern int _rl_revert_all_at_newline;
+extern int _rl_echo_control_chars;
+extern char *_rl_comment_begin;
+extern unsigned char _rl_parsing_conditionalized_out;
+extern Keymap _rl_keymap;
+extern FILE *_rl_in_stream;
+extern FILE *_rl_out_stream;
+extern int _rl_last_command_was_kill;
+extern int _rl_eof_char;
+extern procenv_t _rl_top_level;
+extern _rl_keyseq_cxt *_rl_kscxt;
+
+/* search.c */
+extern _rl_search_cxt *_rl_nscxt;
+
+/* signals.c */
+extern int _rl_interrupt_immediately;
+extern int volatile _rl_caught_signal;
+
+extern int _rl_echoctl;
+
+extern int _rl_intr_char;
+extern int _rl_quit_char;
+extern int _rl_susp_char;
+
+/* terminal.c */
+extern int _rl_enable_keypad;
+extern int _rl_enable_meta;
+extern char *_rl_term_clreol;
+extern char *_rl_term_clrpag;
+extern char *_rl_term_im;
+extern char *_rl_term_ic;
+extern char *_rl_term_ei;
+extern char *_rl_term_DC;
+extern char *_rl_term_up;
+extern char *_rl_term_dc;
+extern char *_rl_term_cr;
+extern char *_rl_term_IC;
+extern char *_rl_term_forward_char;
+extern int _rl_screenheight;
+extern int _rl_screenwidth;
+extern int _rl_screenchars;
+extern int _rl_terminal_can_insert;
+extern int _rl_term_autowrap;
+
+/* undo.c */
+extern int _rl_doing_an_undo;
+extern int _rl_undo_group_level;
+
+/* vi_mode.c */
+extern int _rl_vi_last_command;
+extern _rl_vimotion_cxt *_rl_vimvcxt;
+
+#endif /* _RL_PRIVATE_H_ */
diff --git a/lib/readline/input.c b/lib/readline/input.c
index e3b71ba1..dc43f10d 100644
--- a/lib/readline/input.c
+++ b/lib/readline/input.c
@@ -45,6 +45,8 @@
# include "ansi_stdlib.h"
#endif /* HAVE_STDLIB_H */
+#include <signal.h>
+
#include "posixselect.h"
#if defined (FIONREAD_IN_SYS_IOCTL)
@@ -507,7 +509,7 @@ rl_getc (stream)
#undef X_EWOULDBLOCK
#undef X_EAGAIN
- /* If the error that we received was SIGINT, then try again,
+ /* If the error that we received was EINTR, then try again,
this is simply an interrupted system call to read ().
Otherwise, some error ocurred, also signifying EOF. */
if (errno != EINTR)
diff --git a/lib/readline/input.c~ b/lib/readline/input.c~
new file mode 100644
index 00000000..9b3edaaa
--- /dev/null
+++ b/lib/readline/input.c~
@@ -0,0 +1,610 @@
+/* input.c -- character input functions for readline. */
+
+/* Copyright (C) 1994-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 (__TANDEM)
+# include <floss.h>
+#endif
+
+#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 /* HAVE_SYS_FILE_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 <signal.h>
+
+#include "posixselect.h"
+
+#if defined (FIONREAD_IN_SYS_IOCTL)
+# include <sys/ioctl.h>
+#endif
+
+#include <stdio.h>
+#include <errno.h>
+
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+#include "rlmbutil.h"
+
+/* Some standard library routines. */
+#include "readline.h"
+
+#include "rlprivate.h"
+#include "rlshell.h"
+#include "xmalloc.h"
+
+/* What kind of non-blocking I/O do we have? */
+#if !defined (O_NDELAY) && defined (O_NONBLOCK)
+# define O_NDELAY O_NONBLOCK /* Posix style */
+#endif
+
+/* Non-null means it is a pointer to a function to run while waiting for
+ character input. */
+rl_hook_func_t *rl_event_hook = (rl_hook_func_t *)NULL;
+
+rl_getc_func_t *rl_getc_function = rl_getc;
+
+static int _keyboard_input_timeout = 100000; /* 0.1 seconds; it's in usec */
+
+static int ibuffer_space PARAMS((void));
+static int rl_get_char PARAMS((int *));
+static int rl_gather_tyi PARAMS((void));
+
+/* **************************************************************** */
+/* */
+/* Character Input Buffering */
+/* */
+/* **************************************************************** */
+
+static int pop_index, push_index;
+static unsigned char ibuffer[512];
+static int ibuffer_len = sizeof (ibuffer) - 1;
+
+#define any_typein (push_index != pop_index)
+
+int
+_rl_any_typein ()
+{
+ return any_typein;
+}
+
+/* Return the amount of space available in the buffer for stuffing
+ characters. */
+static int
+ibuffer_space ()
+{
+ if (pop_index > push_index)
+ return (pop_index - push_index - 1);
+ else
+ return (ibuffer_len - (push_index - pop_index));
+}
+
+/* Get a key from the buffer of characters to be read.
+ Return the key in KEY.
+ Result is KEY if there was a key, or 0 if there wasn't. */
+static int
+rl_get_char (key)
+ int *key;
+{
+ if (push_index == pop_index)
+ return (0);
+
+ *key = ibuffer[pop_index++];
+#if 0
+ if (pop_index >= ibuffer_len)
+#else
+ if (pop_index > ibuffer_len)
+#endif
+ pop_index = 0;
+
+ return (1);
+}
+
+/* Stuff KEY into the *front* of the input buffer.
+ Returns non-zero if successful, zero if there is
+ no space left in the buffer. */
+int
+_rl_unget_char (key)
+ int key;
+{
+ if (ibuffer_space ())
+ {
+ pop_index--;
+ if (pop_index < 0)
+ pop_index = ibuffer_len;
+ ibuffer[pop_index] = key;
+ return (1);
+ }
+ return (0);
+}
+
+int
+_rl_pushed_input_available ()
+{
+ return (push_index != pop_index);
+}
+
+/* If a character is available to be read, then read it and stuff it into
+ IBUFFER. Otherwise, just return. Returns number of characters read
+ (0 if none available) and -1 on error (EIO). */
+static int
+rl_gather_tyi ()
+{
+ int tty;
+ register int tem, result;
+ int chars_avail, k;
+ char input;
+#if defined(HAVE_SELECT)
+ fd_set readfds, exceptfds;
+ struct timeval timeout;
+#endif
+
+ chars_avail = 0;
+ tty = fileno (rl_instream);
+
+#if defined (HAVE_SELECT)
+ FD_ZERO (&readfds);
+ FD_ZERO (&exceptfds);
+ FD_SET (tty, &readfds);
+ FD_SET (tty, &exceptfds);
+ USEC_TO_TIMEVAL (_keyboard_input_timeout, timeout);
+ result = select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout);
+ if (result <= 0)
+ return 0; /* Nothing to read. */
+#endif
+
+ result = -1;
+#if defined (FIONREAD)
+ errno = 0;
+ result = ioctl (tty, FIONREAD, &chars_avail);
+ if (result == -1 && errno == EIO)
+ return -1;
+#endif
+
+#if defined (O_NDELAY)
+ if (result == -1)
+ {
+ tem = fcntl (tty, F_GETFL, 0);
+
+ fcntl (tty, F_SETFL, (tem | O_NDELAY));
+ chars_avail = read (tty, &input, 1);
+
+ fcntl (tty, F_SETFL, tem);
+ if (chars_avail == -1 && errno == EAGAIN)
+ return 0;
+ if (chars_avail == 0) /* EOF */
+ {
+ rl_stuff_char (EOF);
+ return (0);
+ }
+ }
+#endif /* O_NDELAY */
+
+#if defined (__MINGW32__)
+ /* Use getch/_kbhit to check for available console input, in the same way
+ that we read it normally. */
+ chars_avail = isatty (tty) ? _kbhit () : 0;
+ result = 0;
+#endif
+
+ /* If there's nothing available, don't waste time trying to read
+ something. */
+ if (chars_avail <= 0)
+ return 0;
+
+ tem = ibuffer_space ();
+
+ if (chars_avail > tem)
+ chars_avail = tem;
+
+ /* One cannot read all of the available input. I can only read a single
+ character at a time, or else programs which require input can be
+ thwarted. If the buffer is larger than one character, I lose.
+ Damn! */
+ if (tem < ibuffer_len)
+ chars_avail = 0;
+
+ if (result != -1)
+ {
+ while (chars_avail--)
+ {
+ RL_CHECK_SIGNALS ();
+ k = (*rl_getc_function) (rl_instream);
+ if (rl_stuff_char (k) == 0)
+ break; /* some problem; no more room */
+ if (k == NEWLINE || k == RETURN)
+ break;
+ }
+ }
+ else
+ {
+ if (chars_avail)
+ rl_stuff_char (input);
+ }
+
+ return 1;
+}
+
+int
+rl_set_keyboard_input_timeout (u)
+ int u;
+{
+ int o;
+
+ o = _keyboard_input_timeout;
+ if (u >= 0)
+ _keyboard_input_timeout = u;
+ return (o);
+}
+
+/* Is there input available to be read on the readline input file
+ descriptor? Only works if the system has select(2) or FIONREAD.
+ Uses the value of _keyboard_input_timeout as the timeout; if another
+ readline function wants to specify a timeout and not leave it up to
+ the user, it should use _rl_input_queued(timeout_value_in_microseconds)
+ instead. */
+int
+_rl_input_available ()
+{
+#if defined(HAVE_SELECT)
+ fd_set readfds, exceptfds;
+ struct timeval timeout;
+#endif
+#if !defined (HAVE_SELECT) && defined(FIONREAD)
+ int chars_avail;
+#endif
+ int tty;
+
+ tty = fileno (rl_instream);
+
+#if defined (HAVE_SELECT)
+ FD_ZERO (&readfds);
+ FD_ZERO (&exceptfds);
+ FD_SET (tty, &readfds);
+ FD_SET (tty, &exceptfds);
+ timeout.tv_sec = 0;
+ timeout.tv_usec = _keyboard_input_timeout;
+ return (select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout) > 0);
+#else
+
+#if defined (FIONREAD)
+ if (ioctl (tty, FIONREAD, &chars_avail) == 0)
+ return (chars_avail);
+#endif
+
+#endif
+
+#if defined (__MINGW32__)
+ if (isatty (tty))
+ return (_kbhit ());
+#endif
+
+ return 0;
+}
+
+int
+_rl_input_queued (t)
+ int t;
+{
+ int old_timeout, r;
+
+ old_timeout = rl_set_keyboard_input_timeout (t);
+ r = _rl_input_available ();
+ rl_set_keyboard_input_timeout (old_timeout);
+ return r;
+}
+
+void
+_rl_insert_typein (c)
+ int c;
+{
+ int key, t, i;
+ char *string;
+
+ i = key = 0;
+ string = (char *)xmalloc (ibuffer_len + 1);
+ string[i++] = (char) c;
+
+ while ((t = rl_get_char (&key)) &&
+ _rl_keymap[key].type == ISFUNC &&
+ _rl_keymap[key].function == rl_insert)
+ string[i++] = key;
+
+ if (t)
+ _rl_unget_char (key);
+
+ string[i] = '\0';
+ rl_insert_text (string);
+ xfree (string);
+}
+
+/* Add KEY to the buffer of characters to be read. Returns 1 if the
+ character was stuffed correctly; 0 otherwise. */
+int
+rl_stuff_char (key)
+ int key;
+{
+ if (ibuffer_space () == 0)
+ return 0;
+
+ if (key == EOF)
+ {
+ key = NEWLINE;
+ rl_pending_input = EOF;
+ RL_SETSTATE (RL_STATE_INPUTPENDING);
+ }
+ ibuffer[push_index++] = key;
+#if 0
+ if (push_index >= ibuffer_len)
+#else
+ if (push_index > ibuffer_len)
+#endif
+ push_index = 0;
+
+ return 1;
+}
+
+/* Make C be the next command to be executed. */
+int
+rl_execute_next (c)
+ int c;
+{
+ rl_pending_input = c;
+ RL_SETSTATE (RL_STATE_INPUTPENDING);
+ return 0;
+}
+
+/* Clear any pending input pushed with rl_execute_next() */
+int
+rl_clear_pending_input ()
+{
+ rl_pending_input = 0;
+ RL_UNSETSTATE (RL_STATE_INPUTPENDING);
+ return 0;
+}
+
+/* **************************************************************** */
+/* */
+/* Character Input */
+/* */
+/* **************************************************************** */
+
+/* Read a key, including pending input. */
+int
+rl_read_key ()
+{
+ int c;
+
+ rl_key_sequence_length++;
+
+ if (rl_pending_input)
+ {
+ c = rl_pending_input;
+ rl_clear_pending_input ();
+ }
+ else
+ {
+ /* If input is coming from a macro, then use that. */
+ if (c = _rl_next_macro_key ())
+ return (c);
+
+ /* If the user has an event function, then call it periodically. */
+ if (rl_event_hook)
+ {
+ while (rl_event_hook)
+ {
+ if (rl_gather_tyi () < 0) /* XXX - EIO */
+ {
+ rl_done = 1;
+ return ('\n');
+ }
+ RL_CHECK_SIGNALS ();
+ if (rl_get_char (&c) != 0)
+ break;
+ if (rl_done) /* XXX - experimental */
+ return ('\n');
+ (*rl_event_hook) ();
+ }
+ }
+ else
+ {
+ if (rl_get_char (&c) == 0)
+ c = (*rl_getc_function) (rl_instream);
+ RL_CHECK_SIGNALS ();
+ }
+ }
+
+ return (c);
+}
+
+int
+rl_getc (stream)
+ FILE *stream;
+{
+ int result;
+ unsigned char c;
+
+ while (1)
+ {
+ RL_CHECK_SIGNALS ();
+
+ /* We know at this point that _rl_caught_signal == 0 */
+
+#if defined (__MINGW32__)
+ if (isatty (fileno (stream)))
+ return (getch ());
+#endif
+ result = read (fileno (stream), &c, sizeof (unsigned char));
+
+if (_rl_caught_signal)
+ {
+itrace("rl_getc: caught SIGWINCH: %d", _rl_caught_signal);
+ _rl_caught_signal = 0;
+ }
+
+ if (result == sizeof (unsigned char))
+ return (c);
+
+ /* If zero characters are returned, then the file that we are
+ reading from is empty! Return EOF in that case. */
+ if (result == 0)
+ return (EOF);
+
+#if defined (__BEOS__)
+ if (errno == EINTR)
+ continue;
+#endif
+
+#if defined (EWOULDBLOCK)
+# define X_EWOULDBLOCK EWOULDBLOCK
+#else
+# define X_EWOULDBLOCK -99
+#endif
+
+#if defined (EAGAIN)
+# define X_EAGAIN EAGAIN
+#else
+# define X_EAGAIN -99
+#endif
+
+ if (errno == X_EWOULDBLOCK || errno == X_EAGAIN)
+ {
+ if (sh_unset_nodelay_mode (fileno (stream)) < 0)
+ return (EOF);
+ continue;
+ }
+
+#undef X_EWOULDBLOCK
+#undef X_EAGAIN
+
+ /* If the error that we received was EINTR, then try again,
+ this is simply an interrupted system call to read ().
+ Otherwise, some error ocurred, also signifying EOF. */
+ if (errno != EINTR)
+ return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
+ else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
+ return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
+ else if (rl_event_hook)
+ (*rl_event_hook) ();
+ }
+}
+
+#if defined (HANDLE_MULTIBYTE)
+/* read multibyte char */
+int
+_rl_read_mbchar (mbchar, size)
+ char *mbchar;
+ int size;
+{
+ int mb_len, c;
+ size_t mbchar_bytes_length;
+ wchar_t wc;
+ mbstate_t ps, ps_back;
+
+ memset(&ps, 0, sizeof (mbstate_t));
+ memset(&ps_back, 0, sizeof (mbstate_t));
+
+ mb_len = 0;
+ while (mb_len < size)
+ {
+ RL_SETSTATE(RL_STATE_MOREINPUT);
+ c = rl_read_key ();
+ RL_UNSETSTATE(RL_STATE_MOREINPUT);
+
+ if (c < 0)
+ break;
+
+ mbchar[mb_len++] = c;
+
+ mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+ if (mbchar_bytes_length == (size_t)(-1))
+ break; /* invalid byte sequence for the current locale */
+ else if (mbchar_bytes_length == (size_t)(-2))
+ {
+ /* shorted bytes */
+ ps = ps_back;
+ continue;
+ }
+ else if (mbchar_bytes_length == 0)
+ {
+ mbchar[0] = '\0'; /* null wide character */
+ mb_len = 1;
+ break;
+ }
+ else if (mbchar_bytes_length > (size_t)(0))
+ break;
+ }
+
+ return mb_len;
+}
+
+/* Read a multibyte-character string whose first character is FIRST into
+ the buffer MB of length MLEN. Returns the last character read, which
+ may be FIRST. Used by the search functions, among others. Very similar
+ to _rl_read_mbchar. */
+int
+_rl_read_mbstring (first, mb, mlen)
+ int first;
+ char *mb;
+ int mlen;
+{
+ int i, c;
+ mbstate_t ps;
+
+ c = first;
+ memset (mb, 0, mlen);
+ for (i = 0; c >= 0 && i < mlen; i++)
+ {
+ mb[i] = (char)c;
+ memset (&ps, 0, sizeof (mbstate_t));
+ if (_rl_get_char_len (mb, &ps) == -2)
+ {
+ /* Read more for multibyte character */
+ RL_SETSTATE (RL_STATE_MOREINPUT);
+ c = rl_read_key ();
+ RL_UNSETSTATE (RL_STATE_MOREINPUT);
+ }
+ else
+ break;
+ }
+ return c;
+}
+#endif /* HANDLE_MULTIBYTE */
diff --git a/lib/readline/rlprivate.h b/lib/readline/rlprivate.h
index 384ff67c..f671203d 100644
--- a/lib/readline/rlprivate.h
+++ b/lib/readline/rlprivate.h
@@ -330,6 +330,7 @@ extern void _rl_release_sigwinch PARAMS((void));
/* terminal.c */
extern void _rl_get_screen_size PARAMS((int, int));
+extern void _rl_sigwinch_resize_terminal PARAMS((void));
extern int _rl_init_terminal_io PARAMS((const char *));
#ifdef _MINIX
extern void _rl_output_character_function PARAMS((int));
diff --git a/lib/readline/rlprivate.h~ b/lib/readline/rlprivate.h~
new file mode 100644
index 00000000..384ff67c
--- /dev/null
+++ b/lib/readline/rlprivate.h~
@@ -0,0 +1,506 @@
+/* rlprivate.h -- functions and variables global to the readline library,
+ but not intended for use by applications. */
+
+/* Copyright (C) 1999-2010 Free Software Foundation, Inc.
+
+ This file is part of the GNU Readline Library (Readline), a library
+ for reading lines of text with interactive input and history editing.
+
+ Readline is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Readline is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Readline. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#if !defined (_RL_PRIVATE_H_)
+#define _RL_PRIVATE_H_
+
+#include "rlconf.h" /* for VISIBLE_STATS */
+#include "rlstdc.h"
+#include "posixjmp.h" /* defines procenv_t */
+
+/*************************************************************************
+ * *
+ * Convenience definitions *
+ * *
+ *************************************************************************/
+
+#define EMACS_MODE() (rl_editing_mode == emacs_mode)
+#define VI_COMMAND_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
+#define VI_INSERT_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_insertion_keymap)
+
+#define RL_CHECK_SIGNALS() \
+ do { \
+ if (_rl_caught_signal) _rl_signal_handler (_rl_caught_signal); \
+ } while (0)
+
+/*************************************************************************
+ * *
+ * Global structs undocumented in texinfo manual and not in readline.h *
+ * *
+ *************************************************************************/
+/* search types */
+#define RL_SEARCH_ISEARCH 0x01 /* incremental search */
+#define RL_SEARCH_NSEARCH 0x02 /* non-incremental search */
+#define RL_SEARCH_CSEARCH 0x04 /* intra-line char search */
+
+/* search flags */
+#define SF_REVERSE 0x01
+#define SF_FOUND 0x02
+#define SF_FAILED 0x04
+#define SF_CHGKMAP 0x08
+
+typedef struct __rl_search_context
+{
+ int type;
+ int sflags;
+
+ char *search_string;
+ int search_string_index;
+ int search_string_size;
+
+ char **lines;
+ char *allocated_line;
+ int hlen;
+ int hindex;
+
+ int save_point;
+ int save_mark;
+ int save_line;
+ int last_found_line;
+ char *prev_line_found;
+
+ UNDO_LIST *save_undo_list;
+
+ Keymap keymap; /* used when dispatching commands in search string */
+ Keymap okeymap; /* original keymap */
+
+ int history_pos;
+ int direction;
+
+ int lastc;
+#if defined (HANDLE_MULTIBYTE)
+ char mb[MB_LEN_MAX];
+#endif
+
+ char *sline;
+ int sline_len;
+ int sline_index;
+
+ char *search_terminators;
+} _rl_search_cxt;
+
+/* Callback data for reading numeric arguments */
+#define NUM_SAWMINUS 0x01
+#define NUM_SAWDIGITS 0x02
+#define NUM_READONE 0x04
+
+typedef int _rl_arg_cxt;
+
+/* A context for reading key sequences longer than a single character when
+ using the callback interface. */
+#define KSEQ_DISPATCHED 0x01
+#define KSEQ_SUBSEQ 0x02
+#define KSEQ_RECURSIVE 0x04
+
+typedef struct __rl_keyseq_context
+{
+ int flags;
+ int subseq_arg;
+ int subseq_retval; /* XXX */
+ Keymap dmap;
+
+ Keymap oldmap;
+ int okey;
+ struct __rl_keyseq_context *ocxt;
+ int childval;
+} _rl_keyseq_cxt;
+
+/* vi-mode commands that use result of motion command to define boundaries */
+#define VIM_DELETE 0x01
+#define VIM_CHANGE 0x02
+#define VIM_YANK 0x04
+
+/* various states for vi-mode commands that use motion commands. reflects
+ RL_READLINE_STATE */
+#define VMSTATE_READ 0x01
+#define VMSTATE_NUMARG 0x02
+
+typedef struct __rl_vimotion_context
+{
+ int op;
+ int state;
+ int flags; /* reserved */
+ _rl_arg_cxt ncxt;
+ int numeric_arg;
+ int start, end; /* rl_point, rl_end */
+ int key, motion; /* initial key, motion command */
+} _rl_vimotion_cxt;
+
+/* fill in more as needed */
+/* `Generic' callback data and functions */
+typedef struct __rl_callback_generic_arg
+{
+ int count;
+ int i1, i2;
+ /* add here as needed */
+} _rl_callback_generic_arg;
+
+typedef int _rl_callback_func_t PARAMS((_rl_callback_generic_arg *));
+
+/*************************************************************************
+ * *
+ * Global functions undocumented in texinfo manual and not in readline.h *
+ * *
+ *************************************************************************/
+
+/*************************************************************************
+ * *
+ * Global variables undocumented in texinfo manual and not in readline.h *
+ * *
+ *************************************************************************/
+
+/* complete.c */
+extern int rl_complete_with_tilde_expansion;
+#if defined (VISIBLE_STATS)
+extern int rl_visible_stats;
+#endif /* VISIBLE_STATS */
+
+/* readline.c */
+extern int rl_line_buffer_len;
+extern int rl_arg_sign;
+extern int rl_visible_prompt_length;
+extern int rl_key_sequence_length;
+extern int rl_byte_oriented;
+
+/* display.c */
+extern int rl_display_fixed;
+
+/* parens.c */
+extern int rl_blink_matching_paren;
+
+/*************************************************************************
+ * *
+ * Global functions and variables unsed and undocumented *
+ * *
+ *************************************************************************/
+
+/* kill.c */
+extern int rl_set_retained_kills PARAMS((int));
+
+/* terminal.c */
+extern void _rl_set_screen_size PARAMS((int, int));
+
+/* undo.c */
+extern int _rl_fix_last_undo_of_type PARAMS((int, int, int));
+
+/* util.c */
+extern char *_rl_savestring PARAMS((const char *));
+
+/*************************************************************************
+ * *
+ * Functions and variables private to the readline library *
+ * *
+ *************************************************************************/
+
+/* NOTE: Functions and variables prefixed with `_rl_' are
+ pseudo-global: they are global so they can be shared
+ between files in the readline library, but are not intended
+ to be visible to readline callers. */
+
+/*************************************************************************
+ * Undocumented private functions *
+ *************************************************************************/
+
+#if defined(READLINE_CALLBACKS)
+
+/* readline.c */
+extern void readline_internal_setup PARAMS((void));
+extern char *readline_internal_teardown PARAMS((int));
+extern int readline_internal_char PARAMS((void));
+
+extern _rl_keyseq_cxt *_rl_keyseq_cxt_alloc PARAMS((void));
+extern void _rl_keyseq_cxt_dispose PARAMS((_rl_keyseq_cxt *));
+extern void _rl_keyseq_chain_dispose PARAMS((void));
+
+extern int _rl_dispatch_callback PARAMS((_rl_keyseq_cxt *));
+
+/* callback.c */
+extern _rl_callback_generic_arg *_rl_callback_data_alloc PARAMS((int));
+extern void _rl_callback_data_dispose PARAMS((_rl_callback_generic_arg *));
+
+#endif /* READLINE_CALLBACKS */
+
+/* bind.c */
+
+/* complete.c */
+extern void _rl_reset_completion_state PARAMS((void));
+extern char _rl_find_completion_word PARAMS((int *, int *));
+extern void _rl_free_match_list PARAMS((char **));
+
+/* display.c */
+extern char *_rl_strip_prompt PARAMS((char *));
+extern void _rl_move_cursor_relative PARAMS((int, const char *));
+extern void _rl_move_vert PARAMS((int));
+extern void _rl_save_prompt PARAMS((void));
+extern void _rl_restore_prompt PARAMS((void));
+extern char *_rl_make_prompt_for_search PARAMS((int));
+extern void _rl_erase_at_end_of_line PARAMS((int));
+extern void _rl_clear_to_eol PARAMS((int));
+extern void _rl_clear_screen PARAMS((void));
+extern void _rl_update_final PARAMS((void));
+extern void _rl_redisplay_after_sigwinch PARAMS((void));
+extern void _rl_clean_up_for_exit PARAMS((void));
+extern void _rl_erase_entire_line PARAMS((void));
+extern int _rl_current_display_line PARAMS((void));
+
+/* input.c */
+extern int _rl_any_typein PARAMS((void));
+extern int _rl_input_available PARAMS((void));
+extern int _rl_input_queued PARAMS((int));
+extern void _rl_insert_typein PARAMS((int));
+extern int _rl_unget_char PARAMS((int));
+extern int _rl_pushed_input_available PARAMS((void));
+
+/* isearch.c */
+extern _rl_search_cxt *_rl_scxt_alloc PARAMS((int, int));
+extern void _rl_scxt_dispose PARAMS((_rl_search_cxt *, int));
+
+extern int _rl_isearch_dispatch PARAMS((_rl_search_cxt *, int));
+extern int _rl_isearch_callback PARAMS((_rl_search_cxt *));
+
+extern int _rl_search_getchar PARAMS((_rl_search_cxt *));
+
+/* macro.c */
+extern void _rl_with_macro_input PARAMS((char *));
+extern int _rl_next_macro_key PARAMS((void));
+extern void _rl_push_executing_macro PARAMS((void));
+extern void _rl_pop_executing_macro PARAMS((void));
+extern void _rl_add_macro_char PARAMS((int));
+extern void _rl_kill_kbd_macro PARAMS((void));
+
+/* misc.c */
+extern int _rl_arg_overflow PARAMS((void));
+extern void _rl_arg_init PARAMS((void));
+extern int _rl_arg_getchar PARAMS((void));
+extern int _rl_arg_callback PARAMS((_rl_arg_cxt));
+extern void _rl_reset_argument PARAMS((void));
+
+extern void _rl_start_using_history PARAMS((void));
+extern int _rl_free_saved_history_line PARAMS((void));
+extern void _rl_set_insert_mode PARAMS((int, int));
+
+extern void _rl_revert_all_lines PARAMS((void));
+
+/* nls.c */
+extern int _rl_init_eightbit PARAMS((void));
+
+/* parens.c */
+extern void _rl_enable_paren_matching PARAMS((int));
+
+/* readline.c */
+extern void _rl_init_line_state PARAMS((void));
+extern void _rl_set_the_line PARAMS((void));
+extern int _rl_dispatch PARAMS((int, Keymap));
+extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
+extern void _rl_internal_char_cleanup PARAMS((void));
+
+/* rltty.c */
+extern int _rl_disable_tty_signals PARAMS((void));
+extern int _rl_restore_tty_signals PARAMS((void));
+
+/* search.c */
+extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *));
+
+/* signals.c */
+extern void _rl_signal_handler PARAMS((int));
+
+extern void _rl_block_sigint PARAMS((void));
+extern void _rl_release_sigint PARAMS((void));
+extern void _rl_block_sigwinch PARAMS((void));
+extern void _rl_release_sigwinch PARAMS((void));
+
+/* terminal.c */
+extern void _rl_get_screen_size PARAMS((int, int));
+extern int _rl_init_terminal_io PARAMS((const char *));
+#ifdef _MINIX
+extern void _rl_output_character_function PARAMS((int));
+#else
+extern int _rl_output_character_function PARAMS((int));
+#endif
+extern void _rl_output_some_chars PARAMS((const char *, int));
+extern int _rl_backspace PARAMS((int));
+extern void _rl_enable_meta_key PARAMS((void));
+extern void _rl_control_keypad PARAMS((int));
+extern void _rl_set_cursor PARAMS((int, int));
+
+/* text.c */
+extern void _rl_fix_point PARAMS((int));
+extern int _rl_replace_text PARAMS((const char *, int, int));
+extern int _rl_forward_char_internal PARAMS((int));
+extern int _rl_insert_char PARAMS((int, int));
+extern int _rl_overwrite_char PARAMS((int, int));
+extern int _rl_overwrite_rubout PARAMS((int, int));
+extern int _rl_rubout_char PARAMS((int, int));
+#if defined (HANDLE_MULTIBYTE)
+extern int _rl_char_search_internal PARAMS((int, int, char *, int));
+#else
+extern int _rl_char_search_internal PARAMS((int, int, int));
+#endif
+extern int _rl_set_mark_at_pos PARAMS((int));
+
+/* undo.c */
+extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *));
+extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *));
+
+/* util.c */
+#if defined (USE_VARARGS) && defined (PREFER_STDARG)
+extern void _rl_ttymsg (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+extern void _rl_errmsg (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+extern void _rl_trace (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
+#else
+extern void _rl_ttymsg ();
+extern void _rl_errmsg ();
+extern void _rl_trace ();
+#endif
+
+extern int _rl_tropen PARAMS((void));
+
+extern int _rl_abort_internal PARAMS((void));
+extern int _rl_null_function PARAMS((int, int));
+extern char *_rl_strindex PARAMS((const char *, const char *));
+extern int _rl_qsort_string_compare PARAMS((char **, char **));
+extern int (_rl_uppercase_p) PARAMS((int));
+extern int (_rl_lowercase_p) PARAMS((int));
+extern int (_rl_pure_alphabetic) PARAMS((int));
+extern int (_rl_digit_p) PARAMS((int));
+extern int (_rl_to_lower) PARAMS((int));
+extern int (_rl_to_upper) PARAMS((int));
+extern int (_rl_digit_value) PARAMS((int));
+
+/* vi_mode.c */
+extern void _rl_vi_initialize_line PARAMS((void));
+extern void _rl_vi_reset_last PARAMS((void));
+extern void _rl_vi_set_last PARAMS((int, int, int));
+extern int _rl_vi_textmod_command PARAMS((int));
+extern void _rl_vi_done_inserting PARAMS((void));
+extern int _rl_vi_domove_callback PARAMS((_rl_vimotion_cxt *));
+
+/*************************************************************************
+ * Undocumented private variables *
+ *************************************************************************/
+
+/* bind.c */
+extern const char * const _rl_possible_control_prefixes[];
+extern const char * const _rl_possible_meta_prefixes[];
+
+/* callback.c */
+extern _rl_callback_func_t *_rl_callback_func;
+extern _rl_callback_generic_arg *_rl_callback_data;
+
+/* complete.c */
+extern int _rl_complete_show_all;
+extern int _rl_complete_show_unmodified;
+extern int _rl_complete_mark_directories;
+extern int _rl_complete_mark_symlink_dirs;
+extern int _rl_completion_prefix_display_length;
+extern int _rl_completion_columns;
+extern int _rl_print_completions_horizontally;
+extern int _rl_completion_case_fold;
+extern int _rl_completion_case_map;
+extern int _rl_match_hidden_files;
+extern int _rl_page_completions;
+extern int _rl_skip_completed_text;
+extern int _rl_menu_complete_prefix_first;
+
+/* display.c */
+extern int _rl_vis_botlin;
+extern int _rl_last_c_pos;
+extern int _rl_suppress_redisplay;
+extern int _rl_want_redisplay;
+
+/* isearch.c */
+extern char *_rl_isearch_terminators;
+
+extern _rl_search_cxt *_rl_iscxt;
+
+/* macro.c */
+extern char *_rl_executing_macro;
+
+/* misc.c */
+extern int _rl_history_preserve_point;
+extern int _rl_history_saved_point;
+
+extern _rl_arg_cxt _rl_argcxt;
+
+/* readline.c */
+extern int _rl_echoing_p;
+extern int _rl_horizontal_scroll_mode;
+extern int _rl_mark_modified_lines;
+extern int _rl_bell_preference;
+extern int _rl_meta_flag;
+extern int _rl_convert_meta_chars_to_ascii;
+extern int _rl_output_meta_chars;
+extern int _rl_bind_stty_chars;
+extern int _rl_revert_all_at_newline;
+extern int _rl_echo_control_chars;
+extern char *_rl_comment_begin;
+extern unsigned char _rl_parsing_conditionalized_out;
+extern Keymap _rl_keymap;
+extern FILE *_rl_in_stream;
+extern FILE *_rl_out_stream;
+extern int _rl_last_command_was_kill;
+extern int _rl_eof_char;
+extern procenv_t _rl_top_level;
+extern _rl_keyseq_cxt *_rl_kscxt;
+
+/* search.c */
+extern _rl_search_cxt *_rl_nscxt;
+
+/* signals.c */
+extern int _rl_interrupt_immediately;
+extern int volatile _rl_caught_signal;
+
+extern int _rl_echoctl;
+
+extern int _rl_intr_char;
+extern int _rl_quit_char;
+extern int _rl_susp_char;
+
+/* terminal.c */
+extern int _rl_enable_keypad;
+extern int _rl_enable_meta;
+extern char *_rl_term_clreol;
+extern char *_rl_term_clrpag;
+extern char *_rl_term_im;
+extern char *_rl_term_ic;
+extern char *_rl_term_ei;
+extern char *_rl_term_DC;
+extern char *_rl_term_up;
+extern char *_rl_term_dc;
+extern char *_rl_term_cr;
+extern char *_rl_term_IC;
+extern char *_rl_term_forward_char;
+extern int _rl_screenheight;
+extern int _rl_screenwidth;
+extern int _rl_screenchars;
+extern int _rl_terminal_can_insert;
+extern int _rl_term_autowrap;
+
+/* undo.c */
+extern int _rl_doing_an_undo;
+extern int _rl_undo_group_level;
+
+/* vi_mode.c */
+extern int _rl_vi_last_command;
+extern _rl_vimotion_cxt *_rl_vimvcxt;
+
+#endif /* _RL_PRIVATE_H_ */
diff --git a/lib/readline/rlstdc.h b/lib/readline/rlstdc.h
index a6d23942..2aaa30ba 100644
--- a/lib/readline/rlstdc.h
+++ b/lib/readline/rlstdc.h
@@ -42,4 +42,16 @@
# endif
#endif
+/* Moved from config.h.in because readline.h:rl_message depends on these
+ defines. */
+#if defined (__STDC__) && defined (HAVE_STDARG_H)
+# define PREFER_STDARG
+# define USE_VARARGS
+#else
+# if defined (HAVE_VARARGS_H)
+# define PREFER_VARARGS
+# define USE_VARARGS
+# endif
+#endif
+
#endif /* !_RL_STDC_H_ */
diff --git a/lib/readline/rlstdc.h~ b/lib/readline/rlstdc.h~
new file mode 100644
index 00000000..a6d23942
--- /dev/null
+++ b/lib/readline/rlstdc.h~
@@ -0,0 +1,45 @@
+/* stdc.h -- macros to make source compile on both ANSI C and K&R C compilers. */
+
+/* Copyright (C) 1993-2009 Free Software Foundation, Inc.
+
+ This file is part of the GNU Readline Library (Readline), a library
+ for reading lines of text with interactive input and history editing.
+
+ Readline is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Readline is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Readline. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#if !defined (_RL_STDC_H_)
+#define _RL_STDC_H_
+
+/* Adapted from BSD /usr/include/sys/cdefs.h. */
+
+/* A function can be defined using prototypes and compile on both ANSI C
+ and traditional C compilers with something like this:
+ extern char *func PARAMS((char *, char *, int)); */
+
+#if !defined (PARAMS)
+# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
+# define PARAMS(protos) protos
+# else
+# define PARAMS(protos) ()
+# endif
+#endif
+
+#ifndef __attribute__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+# define __attribute__(x)
+# endif
+#endif
+
+#endif /* !_RL_STDC_H_ */
diff --git a/lib/readline/rltypedefs.h b/lib/readline/rltypedefs.h
index 60f29a18..b113ee6e 100644
--- a/lib/readline/rltypedefs.h
+++ b/lib/readline/rltypedefs.h
@@ -1,6 +1,6 @@
/* rltypedefs.h -- Type declarations for readline functions. */
-/* Copyright (C) 2000-2009 Free Software Foundation, Inc.
+/* Copyright (C) 2000-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.
@@ -26,18 +26,6 @@
extern "C" {
#endif
-/* Old-style */
-
-#if !defined (_FUNCTION_DEF)
-# define _FUNCTION_DEF
-
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
-
-#endif /* _FUNCTION_DEF */
-
/* New style. */
#if !defined (_RL_FUNCTION_TYPEDEF)
diff --git a/lib/readline/rltypedefs.h~ b/lib/readline/rltypedefs.h~
new file mode 100644
index 00000000..60f29a18
--- /dev/null
+++ b/lib/readline/rltypedefs.h~
@@ -0,0 +1,93 @@
+/* rltypedefs.h -- Type declarations for readline functions. */
+
+/* Copyright (C) 2000-2009 Free Software Foundation, Inc.
+
+ This file is part of the GNU Readline Library (Readline), a library
+ for reading lines of text with interactive input and history editing.
+
+ Readline is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Readline is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Readline. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _RL_TYPEDEFS_H_
+#define _RL_TYPEDEFS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Old-style */
+
+#if !defined (_FUNCTION_DEF)
+# define _FUNCTION_DEF
+
+typedef int Function ();
+typedef void VFunction ();
+typedef char *CPFunction ();
+typedef char **CPPFunction ();
+
+#endif /* _FUNCTION_DEF */
+
+/* New style. */
+
+#if !defined (_RL_FUNCTION_TYPEDEF)
+# define _RL_FUNCTION_TYPEDEF
+
+/* Bindable functions */
+typedef int rl_command_func_t PARAMS((int, int));
+
+/* Typedefs for the completion system */
+typedef char *rl_compentry_func_t PARAMS((const char *, int));
+typedef char **rl_completion_func_t PARAMS((const char *, int, int));
+
+typedef char *rl_quote_func_t PARAMS((char *, int, char *));
+typedef char *rl_dequote_func_t PARAMS((char *, int));
+
+typedef int rl_compignore_func_t PARAMS((char **));
+
+typedef void rl_compdisp_func_t PARAMS((char **, int, int));
+
+/* Type for input and pre-read hook functions like rl_event_hook */
+typedef int rl_hook_func_t PARAMS((void));
+
+/* Input function type */
+typedef int rl_getc_func_t PARAMS((FILE *));
+
+/* Generic function that takes a character buffer (which could be the readline
+ line buffer) and an index into it (which could be rl_point) and returns
+ an int. */
+typedef int rl_linebuf_func_t PARAMS((char *, int));
+
+/* `Generic' function pointer typedefs */
+typedef int rl_intfunc_t PARAMS((int));
+#define rl_ivoidfunc_t rl_hook_func_t
+typedef int rl_icpfunc_t PARAMS((char *));
+typedef int rl_icppfunc_t PARAMS((char **));
+
+typedef void rl_voidfunc_t PARAMS((void));
+typedef void rl_vintfunc_t PARAMS((int));
+typedef void rl_vcpfunc_t PARAMS((char *));
+typedef void rl_vcppfunc_t PARAMS((char **));
+
+typedef char *rl_cpvfunc_t PARAMS((void));
+typedef char *rl_cpifunc_t PARAMS((int));
+typedef char *rl_cpcpfunc_t PARAMS((char *));
+typedef char *rl_cpcppfunc_t PARAMS((char **));
+
+#endif /* _RL_FUNCTION_TYPEDEF */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RL_TYPEDEFS_H_ */
diff --git a/lib/readline/shell.c b/lib/readline/shell.c
index 458ce52d..f25a0045 100644
--- a/lib/readline/shell.c
+++ b/lib/readline/shell.c
@@ -120,31 +120,27 @@ sh_single_quote (string)
/* Set the environment variables LINES and COLUMNS to lines and cols,
respectively. */
+static char setenv_buf[INT_STRLEN_BOUND (int) + 1];
+static char putenv_buf1[INT_STRLEN_BOUND (int) + 6 + 1]; /* sizeof("LINES=") == 6 */
+static char putenv_buf2[INT_STRLEN_BOUND (int) + 8 + 1]; /* sizeof("COLUMNS=") == 8 */
+
void
sh_set_lines_and_columns (lines, cols)
int lines, cols;
{
- char *b;
-
#if defined (HAVE_SETENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", lines);
- setenv ("LINES", b, 1);
- xfree (b);
-
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", cols);
- setenv ("COLUMNS", b, 1);
- xfree (b);
+ sprintf (setenv_buf, "%d", lines);
+ setenv ("LINES", setenv_buf, 1);
+
+ sprintf (setenv_buf, "%d", cols);
+ setenv ("COLUMNS", setenv_buf, 1);
#else /* !HAVE_SETENV */
# if defined (HAVE_PUTENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1);
- sprintf (b, "LINES=%d", lines);
- putenv (b);
+ sprintf (putenv_buf1, "LINES=%d", lines);
+ putenv (putenv_buf1);
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1);
- sprintf (b, "COLUMNS=%d", cols);
- putenv (b);
+ sprintf (putenv_buf2, "COLUMNS=%d", cols);
+ putenv (putenv_buf2);
# endif /* HAVE_PUTENV */
#endif /* !HAVE_SETENV */
}
diff --git a/lib/readline/shell.c~ b/lib/readline/shell.c~
index ac0fb360..458ce52d 100644
--- a/lib/readline/shell.c~
+++ b/lib/readline/shell.c~
@@ -164,7 +164,11 @@ sh_get_home_dir ()
home_dir = (char *)NULL;
#if defined (HAVE_GETPWUID)
+# if defined (__TANDEM)
+ entry = getpwnam (getlogin ());
+# else
entry = getpwuid (getuid ());
+# endif
if (entry)
home_dir = entry->pw_dir;
#endif
diff --git a/lib/readline/signals.c b/lib/readline/signals.c
index 3b28f091..ba2674ab 100644
--- a/lib/readline/signals.c
+++ b/lib/readline/signals.c
@@ -135,7 +135,10 @@ _rl_signal_handler (sig)
{
_rl_caught_signal = 0; /* XXX */
- _rl_handle_signal (sig);
+ if (sig == SIGWINCH)
+ rl_resize_terminal ();
+ else
+ _rl_handle_signal (sig);
SIGHANDLER_RETURN;
}
@@ -258,7 +261,7 @@ rl_sigwinch_handler (sig)
#endif
RL_SETSTATE(RL_STATE_SIGHANDLER);
- rl_resize_terminal ();
+ _rl_caught_signal = sig;
/* If another sigwinch handler has been installed, call it. */
oh = (SigHandler *)old_winch.sa_handler;
diff --git a/lib/readline/signals.c~ b/lib/readline/signals.c~
new file mode 100644
index 00000000..ba2674ab
--- /dev/null
+++ b/lib/readline/signals.c~
@@ -0,0 +1,678 @@
+/* signals.c -- signal handling support 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 <stdio.h> /* Just for NULL. Yuck. */
+#include <sys/types.h>
+#include <signal.h>
+
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+
+#if defined (GWINSZ_IN_SYS_IOCTL)
+# include <sys/ioctl.h>
+#endif /* GWINSZ_IN_SYS_IOCTL */
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "history.h"
+
+#include "rlprivate.h"
+
+#if defined (HANDLE_SIGNALS)
+
+#if !defined (RETSIGTYPE)
+# if defined (VOID_SIGHANDLER)
+# define RETSIGTYPE void
+# else
+# define RETSIGTYPE int
+# endif /* !VOID_SIGHANDLER */
+#endif /* !RETSIGTYPE */
+
+#if defined (VOID_SIGHANDLER)
+# define SIGHANDLER_RETURN return
+#else
+# define SIGHANDLER_RETURN return (0)
+#endif
+
+/* This typedef is equivalent to the one for Function; it allows us
+ to say SigHandler *foo = signal (SIGKILL, SIG_IGN); */
+typedef RETSIGTYPE SigHandler ();
+
+#if defined (HAVE_POSIX_SIGNALS)
+typedef struct sigaction sighandler_cxt;
+# define rl_sigaction(s, nh, oh) sigaction(s, nh, oh)
+#else
+typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt;
+# define sigemptyset(m)
+#endif /* !HAVE_POSIX_SIGNALS */
+
+#ifndef SA_RESTART
+# define SA_RESTART 0
+#endif
+
+static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
+static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
+
+static RETSIGTYPE rl_signal_handler PARAMS((int));
+static RETSIGTYPE _rl_handle_signal PARAMS((int));
+
+/* Exported variables for use by applications. */
+
+/* If non-zero, readline will install its own signal handlers for
+ SIGINT, SIGTERM, SIGHUP, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
+int rl_catch_signals = 1;
+
+/* If non-zero, readline will install a signal handler for SIGWINCH. */
+#ifdef SIGWINCH
+int rl_catch_sigwinch = 1;
+#else
+int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */
+#endif
+
+/* Private variables. */
+int _rl_interrupt_immediately = 0;
+int volatile _rl_caught_signal = 0; /* should be sig_atomic_t, but that requires including <signal.h> everywhere */
+
+/* If non-zero, print characters corresponding to received signals as long as
+ the user has indicated his desire to do so (_rl_echo_control_chars). */
+int _rl_echoctl = 0;
+
+int _rl_intr_char = 0;
+int _rl_quit_char = 0;
+int _rl_susp_char = 0;
+
+static int signals_set_flag;
+static int sigwinch_set_flag;
+
+/* **************************************************************** */
+/* */
+/* Signal Handling */
+/* */
+/* **************************************************************** */
+
+static sighandler_cxt old_int, old_term, old_hup, old_alrm, old_quit;
+#if defined (SIGTSTP)
+static sighandler_cxt old_tstp, old_ttou, old_ttin;
+#endif
+#if defined (SIGWINCH)
+static sighandler_cxt old_winch;
+#endif
+
+/* Readline signal handler functions. */
+
+/* Called from RL_CHECK_SIGNALS() macro */
+RETSIGTYPE
+_rl_signal_handler (sig)
+ int sig;
+{
+ _rl_caught_signal = 0; /* XXX */
+
+ if (sig == SIGWINCH)
+ rl_resize_terminal ();
+ else
+ _rl_handle_signal (sig);
+ SIGHANDLER_RETURN;
+}
+
+static RETSIGTYPE
+rl_signal_handler (sig)
+ int sig;
+{
+ if (_rl_interrupt_immediately || RL_ISSTATE(RL_STATE_CALLBACK))
+ {
+ _rl_interrupt_immediately = 0;
+ _rl_handle_signal (sig);
+ }
+ else
+ _rl_caught_signal = sig;
+
+ SIGHANDLER_RETURN;
+}
+
+static RETSIGTYPE
+_rl_handle_signal (sig)
+ int sig;
+{
+#if defined (HAVE_POSIX_SIGNALS)
+ sigset_t set;
+#else /* !HAVE_POSIX_SIGNALS */
+# if defined (HAVE_BSD_SIGNALS)
+ long omask;
+# else /* !HAVE_BSD_SIGNALS */
+ sighandler_cxt dummy_cxt; /* needed for rl_set_sighandler call */
+# endif /* !HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ RL_SETSTATE(RL_STATE_SIGHANDLER);
+
+#if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)
+ /* Since the signal will not be blocked while we are in the signal
+ handler, ignore it until rl_clear_signals resets the catcher. */
+# if defined (SIGALRM)
+ if (sig == SIGINT || sig == SIGALRM)
+# else
+ if (sig == SIGINT)
+# endif
+ rl_set_sighandler (sig, SIG_IGN, &dummy_cxt);
+#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */
+
+ switch (sig)
+ {
+ case SIGINT:
+ _rl_reset_completion_state ();
+ rl_free_line_state ();
+ /* FALLTHROUGH */
+
+ case SIGTERM:
+ case SIGHUP:
+#if defined (SIGTSTP)
+ case SIGTSTP:
+ case SIGTTOU:
+ case SIGTTIN:
+#endif /* SIGTSTP */
+#if defined (SIGALRM)
+ case SIGALRM:
+#endif
+#if defined (SIGQUIT)
+ case SIGQUIT:
+#endif
+ rl_echo_signal_char (sig);
+ rl_cleanup_after_signal ();
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigemptyset (&set);
+ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
+ sigdelset (&set, sig);
+#else /* !HAVE_POSIX_SIGNALS */
+# if defined (HAVE_BSD_SIGNALS)
+ omask = sigblock (0);
+# endif /* HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+#if defined (__EMX__)
+ signal (sig, SIG_ACK);
+#endif
+
+#if defined (HAVE_KILL)
+ kill (getpid (), sig);
+#else
+ raise (sig); /* assume we have raise */
+#endif
+
+ /* Let the signal that we just sent through. */
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &set, (sigset_t *)NULL);
+#else /* !HAVE_POSIX_SIGNALS */
+# if defined (HAVE_BSD_SIGNALS)
+ sigsetmask (omask & ~(sigmask (sig)));
+# endif /* HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ rl_reset_after_signal ();
+ }
+
+ RL_UNSETSTATE(RL_STATE_SIGHANDLER);
+ SIGHANDLER_RETURN;
+}
+
+#if defined (SIGWINCH)
+static RETSIGTYPE
+rl_sigwinch_handler (sig)
+ int sig;
+{
+ SigHandler *oh;
+
+#if defined (MUST_REINSTALL_SIGHANDLERS)
+ sighandler_cxt dummy_winch;
+
+ /* We don't want to change old_winch -- it holds the state of SIGWINCH
+ disposition set by the calling application. We need this state
+ because we call the application's SIGWINCH handler after updating
+ our own idea of the screen size. */
+ rl_set_sighandler (SIGWINCH, rl_sigwinch_handler, &dummy_winch);
+#endif
+
+ RL_SETSTATE(RL_STATE_SIGHANDLER);
+ _rl_caught_signal = sig;
+
+ /* If another sigwinch handler has been installed, call it. */
+ oh = (SigHandler *)old_winch.sa_handler;
+ if (oh && oh != (SigHandler *)SIG_IGN && oh != (SigHandler *)SIG_DFL)
+ (*oh) (sig);
+
+ RL_UNSETSTATE(RL_STATE_SIGHANDLER);
+ SIGHANDLER_RETURN;
+}
+#endif /* SIGWINCH */
+
+/* Functions to manage signal handling. */
+
+#if !defined (HAVE_POSIX_SIGNALS)
+static int
+rl_sigaction (sig, nh, oh)
+ int sig;
+ sighandler_cxt *nh, *oh;
+{
+ oh->sa_handler = signal (sig, nh->sa_handler);
+ return 0;
+}
+#endif /* !HAVE_POSIX_SIGNALS */
+
+/* Set up a readline-specific signal handler, saving the old signal
+ information in OHANDLER. Return the old signal handler, like
+ signal(). */
+static SigHandler *
+rl_set_sighandler (sig, handler, ohandler)
+ int sig;
+ SigHandler *handler;
+ sighandler_cxt *ohandler;
+{
+ sighandler_cxt old_handler;
+#if defined (HAVE_POSIX_SIGNALS)
+ struct sigaction act;
+
+ act.sa_handler = handler;
+# if defined (SIGWINCH)
+ act.sa_flags = (sig == SIGWINCH) ? SA_RESTART : 0;
+# else
+ act.sa_flags = 0;
+# endif /* SIGWINCH */
+ sigemptyset (&act.sa_mask);
+ sigemptyset (&ohandler->sa_mask);
+ sigaction (sig, &act, &old_handler);
+#else
+ old_handler.sa_handler = (SigHandler *)signal (sig, handler);
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ /* XXX -- assume we have memcpy */
+ /* If rl_set_signals is called twice in a row, don't set the old handler to
+ rl_signal_handler, because that would cause infinite recursion. */
+ if (handler != rl_signal_handler || old_handler.sa_handler != rl_signal_handler)
+ memcpy (ohandler, &old_handler, sizeof (sighandler_cxt));
+
+ return (ohandler->sa_handler);
+}
+
+static void
+rl_maybe_set_sighandler (sig, handler, ohandler)
+ int sig;
+ SigHandler *handler;
+ sighandler_cxt *ohandler;
+{
+ sighandler_cxt dummy;
+ SigHandler *oh;
+
+ sigemptyset (&dummy.sa_mask);
+ oh = rl_set_sighandler (sig, handler, ohandler);
+ if (oh == (SigHandler *)SIG_IGN)
+ rl_sigaction (sig, ohandler, &dummy);
+}
+
+int
+rl_set_signals ()
+{
+ sighandler_cxt dummy;
+ SigHandler *oh;
+#if defined (HAVE_POSIX_SIGNALS)
+ static int sigmask_set = 0;
+ static sigset_t bset, oset;
+#endif
+
+#if defined (HAVE_POSIX_SIGNALS)
+ if (rl_catch_signals && sigmask_set == 0)
+ {
+ sigemptyset (&bset);
+
+ sigaddset (&bset, SIGINT);
+ sigaddset (&bset, SIGTERM);
+ sigaddset (&bset, SIGHUP);
+#if defined (SIGQUIT)
+ sigaddset (&bset, SIGQUIT);
+#endif
+#if defined (SIGALRM)
+ sigaddset (&bset, SIGALRM);
+#endif
+#if defined (SIGTSTP)
+ sigaddset (&bset, SIGTSTP);
+#endif
+#if defined (SIGTTIN)
+ sigaddset (&bset, SIGTTIN);
+#endif
+#if defined (SIGTTOU)
+ sigaddset (&bset, SIGTTOU);
+#endif
+ sigmask_set = 1;
+ }
+#endif /* HAVE_POSIX_SIGNALS */
+
+ if (rl_catch_signals && signals_set_flag == 0)
+ {
+#if defined (HAVE_POSIX_SIGNALS)
+ sigemptyset (&oset);
+ sigprocmask (SIG_BLOCK, &bset, &oset);
+#endif
+
+ rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
+ rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
+ rl_maybe_set_sighandler (SIGHUP, rl_signal_handler, &old_hup);
+#if defined (SIGQUIT)
+ rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
+#endif
+
+#if defined (SIGALRM)
+ oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm);
+ if (oh == (SigHandler *)SIG_IGN)
+ rl_sigaction (SIGALRM, &old_alrm, &dummy);
+#if defined (HAVE_POSIX_SIGNALS) && defined (SA_RESTART)
+ /* If the application using readline has already installed a signal
+ handler with SA_RESTART, SIGALRM will cause reads to be restarted
+ automatically, so readline should just get out of the way. Since
+ we tested for SIG_IGN above, we can just test for SIG_DFL here. */
+ if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART))
+ rl_sigaction (SIGALRM, &old_alrm, &dummy);
+#endif /* HAVE_POSIX_SIGNALS */
+#endif /* SIGALRM */
+
+#if defined (SIGTSTP)
+ rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp);
+#endif /* SIGTSTP */
+
+#if defined (SIGTTOU)
+ rl_maybe_set_sighandler (SIGTTOU, rl_signal_handler, &old_ttou);
+#endif /* SIGTTOU */
+
+#if defined (SIGTTIN)
+ rl_maybe_set_sighandler (SIGTTIN, rl_signal_handler, &old_ttin);
+#endif /* SIGTTIN */
+
+ signals_set_flag = 1;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
+#endif
+ }
+
+#if defined (SIGWINCH)
+ if (rl_catch_sigwinch && sigwinch_set_flag == 0)
+ {
+ rl_maybe_set_sighandler (SIGWINCH, rl_sigwinch_handler, &old_winch);
+ sigwinch_set_flag = 1;
+ }
+#endif /* SIGWINCH */
+
+ return 0;
+}
+
+int
+rl_clear_signals ()
+{
+ sighandler_cxt dummy;
+
+ if (rl_catch_signals && signals_set_flag == 1)
+ {
+ sigemptyset (&dummy.sa_mask);
+
+ rl_sigaction (SIGINT, &old_int, &dummy);
+ rl_sigaction (SIGTERM, &old_term, &dummy);
+ rl_sigaction (SIGHUP, &old_hup, &dummy);
+#if defined (SIGQUIT)
+ rl_sigaction (SIGQUIT, &old_quit, &dummy);
+#endif
+#if defined (SIGALRM)
+ rl_sigaction (SIGALRM, &old_alrm, &dummy);
+#endif
+
+#if defined (SIGTSTP)
+ rl_sigaction (SIGTSTP, &old_tstp, &dummy);
+#endif /* SIGTSTP */
+
+#if defined (SIGTTOU)
+ rl_sigaction (SIGTTOU, &old_ttou, &dummy);
+#endif /* SIGTTOU */
+
+#if defined (SIGTTIN)
+ rl_sigaction (SIGTTIN, &old_ttin, &dummy);
+#endif /* SIGTTIN */
+
+ signals_set_flag = 0;
+ }
+
+#if defined (SIGWINCH)
+ if (rl_catch_sigwinch && sigwinch_set_flag == 1)
+ {
+ sigemptyset (&dummy.sa_mask);
+ rl_sigaction (SIGWINCH, &old_winch, &dummy);
+ sigwinch_set_flag = 0;
+ }
+#endif
+
+ return 0;
+}
+
+/* Clean up the terminal and readline state after catching a signal, before
+ resending it to the calling application. */
+void
+rl_cleanup_after_signal ()
+{
+ _rl_clean_up_for_exit ();
+ if (rl_deprep_term_function)
+ (*rl_deprep_term_function) ();
+ rl_clear_pending_input ();
+ rl_clear_signals ();
+}
+
+/* Reset the terminal and readline state after a signal handler returns. */
+void
+rl_reset_after_signal ()
+{
+ if (rl_prep_term_function)
+ (*rl_prep_term_function) (_rl_meta_flag);
+ rl_set_signals ();
+}
+
+/* Free up the readline variable line state for the current line (undo list,
+ any partial history entry, any keyboard macros in progress, and any
+ numeric arguments in process) after catching a signal, before calling
+ rl_cleanup_after_signal(). */
+void
+rl_free_line_state ()
+{
+ register HIST_ENTRY *entry;
+
+ rl_free_undo_list ();
+
+ entry = current_history ();
+ if (entry)
+ entry->data = (char *)NULL;
+
+ _rl_kill_kbd_macro ();
+ rl_clear_message ();
+ _rl_reset_argument ();
+}
+
+#endif /* HANDLE_SIGNALS */
+
+/* **************************************************************** */
+/* */
+/* SIGINT Management */
+/* */
+/* **************************************************************** */
+
+#if defined (HAVE_POSIX_SIGNALS)
+static sigset_t sigint_set, sigint_oset;
+static sigset_t sigwinch_set, sigwinch_oset;
+#else /* !HAVE_POSIX_SIGNALS */
+# if defined (HAVE_BSD_SIGNALS)
+static int sigint_oldmask;
+static int sigwinch_oldmask;
+# endif /* HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+static int sigint_blocked;
+static int sigwinch_blocked;
+
+/* Cause SIGINT to not be delivered until the corresponding call to
+ release_sigint(). */
+void
+_rl_block_sigint ()
+{
+ if (sigint_blocked)
+ return;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigemptyset (&sigint_set);
+ sigemptyset (&sigint_oset);
+ sigaddset (&sigint_set, SIGINT);
+ sigprocmask (SIG_BLOCK, &sigint_set, &sigint_oset);
+#else /* !HAVE_POSIX_SIGNALS */
+# if defined (HAVE_BSD_SIGNALS)
+ sigint_oldmask = sigblock (sigmask (SIGINT));
+# else /* !HAVE_BSD_SIGNALS */
+# if defined (HAVE_USG_SIGHOLD)
+ sighold (SIGINT);
+# endif /* HAVE_USG_SIGHOLD */
+# endif /* !HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ sigint_blocked = 1;
+}
+
+/* Allow SIGINT to be delivered. */
+void
+_rl_release_sigint ()
+{
+ if (sigint_blocked == 0)
+ return;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &sigint_oset, (sigset_t *)NULL);
+#else
+# if defined (HAVE_BSD_SIGNALS)
+ sigsetmask (sigint_oldmask);
+# else /* !HAVE_BSD_SIGNALS */
+# if defined (HAVE_USG_SIGHOLD)
+ sigrelse (SIGINT);
+# endif /* HAVE_USG_SIGHOLD */
+# endif /* !HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ sigint_blocked = 0;
+}
+
+/* Cause SIGWINCH to not be delivered until the corresponding call to
+ release_sigwinch(). */
+void
+_rl_block_sigwinch ()
+{
+ if (sigwinch_blocked)
+ return;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigemptyset (&sigwinch_set);
+ sigemptyset (&sigwinch_oset);
+ sigaddset (&sigwinch_set, SIGWINCH);
+ sigprocmask (SIG_BLOCK, &sigwinch_set, &sigwinch_oset);
+#else /* !HAVE_POSIX_SIGNALS */
+# if defined (HAVE_BSD_SIGNALS)
+ sigwinch_oldmask = sigblock (sigmask (SIGWINCH));
+# else /* !HAVE_BSD_SIGNALS */
+# if defined (HAVE_USG_SIGHOLD)
+ sighold (SIGWINCH);
+# endif /* HAVE_USG_SIGHOLD */
+# endif /* !HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ sigwinch_blocked = 1;
+}
+
+/* Allow SIGWINCH to be delivered. */
+void
+_rl_release_sigwinch ()
+{
+ if (sigwinch_blocked == 0)
+ return;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &sigwinch_oset, (sigset_t *)NULL);
+#else
+# if defined (HAVE_BSD_SIGNALS)
+ sigsetmask (sigwinch_oldmask);
+# else /* !HAVE_BSD_SIGNALS */
+# if defined (HAVE_USG_SIGHOLD)
+ sigrelse (SIGWINCH);
+# endif /* HAVE_USG_SIGHOLD */
+# endif /* !HAVE_BSD_SIGNALS */
+#endif /* !HAVE_POSIX_SIGNALS */
+
+ sigwinch_blocked = 0;
+}
+
+/* **************************************************************** */
+/* */
+/* Echoing special control characters */
+/* */
+/* **************************************************************** */
+void
+rl_echo_signal_char (sig)
+ int sig;
+{
+ char cstr[3];
+ int cslen, c;
+
+ if (_rl_echoctl == 0 || _rl_echo_control_chars == 0)
+ return;
+
+ switch (sig)
+ {
+ case SIGINT: c = _rl_intr_char; break;
+#if defined (SIGQUIT)
+ case SIGQUIT: c = _rl_quit_char; break;
+#endif
+#if defined (SIGTSTP)
+ case SIGTSTP: c = _rl_susp_char; break;
+#endif
+ default: return;
+ }
+
+ if (CTRL_CHAR (c) || c == RUBOUT)
+ {
+ cstr[0] = '^';
+ cstr[1] = CTRL_CHAR (c) ? UNCTRL (c) : '?';
+ cstr[cslen = 2] = '\0';
+ }
+ else
+ {
+ cstr[0] = c;
+ cstr[cslen = 1] = '\0';
+ }
+
+ _rl_output_some_chars (cstr, cslen);
+}
diff --git a/lib/readline/terminal.c b/lib/readline/terminal.c
index f8c2f6ed..539391d1 100644
--- a/lib/readline/terminal.c
+++ b/lib/readline/terminal.c
@@ -296,7 +296,8 @@ _rl_get_screen_size (tty, ignore_env)
/* If we're being compiled as part of bash, set the environment
variables $LINES and $COLUMNS to new values. Otherwise, just
do a pair of putenv () or setenv () calls. */
- sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
+ if (ignore_env == 0)
+ sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
if (_rl_term_autowrap == 0)
_rl_screenwidth--;
@@ -346,7 +347,13 @@ rl_reset_screen_size ()
{
_rl_get_screen_size (fileno (rl_instream), 0);
}
-
+
+void
+_rl_sigwinch_resize_terminal ()
+{
+ _rl_get_screen_size (fileno (rl_instream), 1);
+}
+
void
rl_resize_terminal ()
{
diff --git a/lib/readline/terminal.c~ b/lib/readline/terminal.c~
new file mode 100644
index 00000000..7fcdca1d
--- /dev/null
+++ b/lib/readline/terminal.c~
@@ -0,0 +1,739 @@
+/* terminal.c -- controlling the terminal with termcap. */
+
+/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+
+ This file is part of the GNU Readline Library (Readline), a library
+ for reading lines of text with interactive input and history editing.
+
+ Readline is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Readline is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Readline. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+#include "posixstat.h"
+#include <fcntl.h>
+#if defined (HAVE_SYS_FILE_H)
+# include <sys/file.h>
+#endif /* HAVE_SYS_FILE_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 */
+
+#if defined (HAVE_LOCALE_H)
+# include <locale.h>
+#endif
+
+#include <stdio.h>
+
+/* System-specific feature definitions and include files. */
+#include "rldefs.h"
+
+#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
+# include <sys/ioctl.h>
+#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
+
+#include "rltty.h"
+#include "tcap.h"
+
+/* Some standard library routines. */
+#include "readline.h"
+#include "history.h"
+
+#include "rlprivate.h"
+#include "rlshell.h"
+#include "xmalloc.h"
+
+#if defined (__MINGW32__)
+# include <windows.h>
+# include <wincon.h>
+
+static void _win_get_screensize PARAMS((int *, int *));
+#endif
+
+#if defined (__EMX__)
+static void _emx_get_screensize PARAMS((int *, int *));
+#endif
+
+#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
+#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
+
+/* If the calling application sets this to a non-zero value, readline will
+ use the $LINES and $COLUMNS environment variables to set its idea of the
+ window size before interrogating the kernel. */
+int rl_prefer_env_winsize = 0;
+
+/* **************************************************************** */
+/* */
+/* Terminal and Termcap */
+/* */
+/* **************************************************************** */
+
+static char *term_buffer = (char *)NULL;
+static char *term_string_buffer = (char *)NULL;
+
+static int tcap_initialized;
+
+#if !defined (__linux__) && !defined (NCURSES_VERSION)
+# if defined (__EMX__) || defined (NEED_EXTERN_PC)
+extern
+# endif /* __EMX__ || NEED_EXTERN_PC */
+char PC, *BC, *UP;
+#endif /* !__linux__ && !NCURSES_VERSION */
+
+/* Some strings to control terminal actions. These are output by tputs (). */
+char *_rl_term_clreol;
+char *_rl_term_clrpag;
+char *_rl_term_cr;
+char *_rl_term_backspace;
+char *_rl_term_goto;
+char *_rl_term_pc;
+
+/* Non-zero if we determine that the terminal can do character insertion. */
+int _rl_terminal_can_insert = 0;
+
+/* How to insert characters. */
+char *_rl_term_im;
+char *_rl_term_ei;
+char *_rl_term_ic;
+char *_rl_term_ip;
+char *_rl_term_IC;
+
+/* How to delete characters. */
+char *_rl_term_dc;
+char *_rl_term_DC;
+
+char *_rl_term_forward_char;
+
+/* How to go up a line. */
+char *_rl_term_up;
+
+/* A visible bell; char if the terminal can be made to flash the screen. */
+static char *_rl_visible_bell;
+
+/* Non-zero means the terminal can auto-wrap lines. */
+int _rl_term_autowrap = -1;
+
+/* Non-zero means that this terminal has a meta key. */
+static int term_has_meta;
+
+/* The sequences to write to turn on and off the meta key, if this
+ terminal has one. */
+static char *_rl_term_mm;
+static char *_rl_term_mo;
+
+/* The key sequences output by the arrow keys, if this terminal has any. */
+static char *_rl_term_ku;
+static char *_rl_term_kd;
+static char *_rl_term_kr;
+static char *_rl_term_kl;
+
+/* How to initialize and reset the arrow keys, if this terminal has any. */
+static char *_rl_term_ks;
+static char *_rl_term_ke;
+
+/* The key sequences sent by the Home and End keys, if any. */
+static char *_rl_term_kh;
+static char *_rl_term_kH;
+static char *_rl_term_at7; /* @7 */
+
+/* Delete key */
+static char *_rl_term_kD;
+
+/* Insert key */
+static char *_rl_term_kI;
+
+/* Cursor control */
+static char *_rl_term_vs; /* very visible */
+static char *_rl_term_ve; /* normal */
+
+static void bind_termcap_arrow_keys PARAMS((Keymap));
+
+/* Variables that hold the screen dimensions, used by the display code. */
+int _rl_screenwidth, _rl_screenheight, _rl_screenchars;
+
+/* Non-zero means the user wants to enable the keypad. */
+int _rl_enable_keypad;
+
+/* Non-zero means the user wants to enable a meta key. */
+int _rl_enable_meta = 1;
+
+#if defined (__EMX__)
+static void
+_emx_get_screensize (swp, shp)
+ int *swp, *shp;
+{
+ int sz[2];
+
+ _scrsize (sz);
+
+ if (swp)
+ *swp = sz[0];
+ if (shp)
+ *shp = sz[1];
+}
+#endif
+
+#if defined (__MINGW32__)
+static void
+_win_get_screensize (swp, shp)
+ int *swp, *shp;
+{
+ HANDLE hConOut;
+ CONSOLE_SCREEN_BUFFER_INFO scr;
+
+ hConOut = GetStdHandle (STD_OUTPUT_HANDLE);
+ if (hConOut != INVALID_HANDLE_VALUE)
+ {
+ if (GetConsoleScreenBufferInfo (hConOut, &scr))
+ {
+ *swp = scr.dwSize.X;
+ *shp = scr.srWindow.Bottom - scr.srWindow.Top + 1;
+ }
+ }
+}
+#endif
+
+/* Get readline's idea of the screen size. TTY is a file descriptor open
+ to the terminal. If IGNORE_ENV is true, we do not pay attention to the
+ values of $LINES and $COLUMNS. The tests for TERM_STRING_BUFFER being
+ non-null serve to check whether or not we have initialized termcap. */
+void
+_rl_get_screen_size (tty, ignore_env)
+ int tty, ignore_env;
+{
+ char *ss;
+#if defined (TIOCGWINSZ)
+ struct winsize window_size;
+#endif /* TIOCGWINSZ */
+ int wr, wc;
+
+ wr = wc = -1;
+#if defined (TIOCGWINSZ)
+ if (ioctl (tty, TIOCGWINSZ, &window_size) == 0)
+ {
+ wc = (int) window_size.ws_col;
+ wr = (int) window_size.ws_row;
+ }
+#endif /* TIOCGWINSZ */
+
+#if defined (__EMX__)
+ _emx_get_screensize (&wc, &wr);
+#elif defined (__MINGW32__)
+ _win_get_screensize (&wc, &wr);
+#endif
+
+ if (ignore_env || rl_prefer_env_winsize == 0)
+ {
+ _rl_screenwidth = wc;
+ _rl_screenheight = wr;
+ }
+ else
+ _rl_screenwidth = _rl_screenheight = -1;
+
+ /* Environment variable COLUMNS overrides setting of "co" if IGNORE_ENV
+ is unset. If we prefer the environment, check it first before
+ assigning the value returned by the kernel. */
+ if (_rl_screenwidth <= 0)
+ {
+ if (ignore_env == 0 && (ss = sh_get_env_value ("COLUMNS")))
+ _rl_screenwidth = atoi (ss);
+
+ if (_rl_screenwidth <= 0)
+ _rl_screenwidth = wc;
+
+#if !defined (__DJGPP__)
+ if (_rl_screenwidth <= 0 && term_string_buffer)
+ _rl_screenwidth = tgetnum ("co");
+#endif
+ }
+
+ /* Environment variable LINES overrides setting of "li" if IGNORE_ENV
+ is unset. */
+ if (_rl_screenheight <= 0)
+ {
+ if (ignore_env == 0 && (ss = sh_get_env_value ("LINES")))
+ _rl_screenheight = atoi (ss);
+
+ if (_rl_screenheight <= 0)
+ _rl_screenheight = wr;
+
+#if !defined (__DJGPP__)
+ if (_rl_screenheight <= 0 && term_string_buffer)
+ _rl_screenheight = tgetnum ("li");
+#endif
+ }
+
+ /* If all else fails, default to 80x24 terminal. */
+ if (_rl_screenwidth <= 1)
+ _rl_screenwidth = 80;
+
+ if (_rl_screenheight <= 0)
+ _rl_screenheight = 24;
+
+ /* If we're being compiled as part of bash, set the environment
+ variables $LINES and $COLUMNS to new values. Otherwise, just
+ do a pair of putenv () or setenv () calls. */
+ if (ignore_env == 0)
+ sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
+
+ if (_rl_term_autowrap == 0)
+ _rl_screenwidth--;
+
+ _rl_screenchars = _rl_screenwidth * _rl_screenheight;
+}
+
+void
+_rl_set_screen_size (rows, cols)
+ int rows, cols;
+{
+ if (_rl_term_autowrap == -1)
+ _rl_init_terminal_io (rl_terminal_name);
+
+ if (rows > 0)
+ _rl_screenheight = rows;
+ if (cols > 0)
+ {
+ _rl_screenwidth = cols;
+ if (_rl_term_autowrap == 0)
+ _rl_screenwidth--;
+ }
+
+ if (rows > 0 || cols > 0)
+ _rl_screenchars = _rl_screenwidth * _rl_screenheight;
+}
+
+void
+rl_set_screen_size (rows, cols)
+ int rows, cols;
+{
+ _rl_set_screen_size (rows, cols);
+}
+
+void
+rl_get_screen_size (rows, cols)
+ int *rows, *cols;
+{
+ if (rows)
+ *rows = _rl_screenheight;
+ if (cols)
+ *cols = _rl_screenwidth;
+}
+
+void
+rl_reset_screen_size ()
+{
+ _rl_get_screen_size (fileno (rl_instream), 0);
+}
+
+void
+_rl_sigwinch_resize_terminal ()
+{
+ _rl_get_screen_size (fileno (rl_instream), 1);
+}
+
+void
+rl_resize_terminal ()
+{
+ _rl_get_screen_size (fileno (rl_instream), 1);
+ if (_rl_echoing_p)
+ {
+ if (CUSTOM_REDISPLAY_FUNC ())
+ rl_forced_update_display ();
+ else if (RL_ISSTATE(RL_STATE_REDISPLAYING) == 0)
+ _rl_redisplay_after_sigwinch ();
+ }
+}
+
+
+struct _tc_string {
+ const char * const tc_var;
+ char **tc_value;
+};
+
+/* This should be kept sorted, just in case we decide to change the
+ search algorithm to something smarter. */
+static const struct _tc_string tc_strings[] =
+{
+ { "@7", &_rl_term_at7 },
+ { "DC", &_rl_term_DC },
+ { "IC", &_rl_term_IC },
+ { "ce", &_rl_term_clreol },
+ { "cl", &_rl_term_clrpag },
+ { "cr", &_rl_term_cr },
+ { "dc", &_rl_term_dc },
+ { "ei", &_rl_term_ei },
+ { "ic", &_rl_term_ic },
+ { "im", &_rl_term_im },
+ { "kD", &_rl_term_kD }, /* delete */
+ { "kH", &_rl_term_kH }, /* home down ?? */
+ { "kI", &_rl_term_kI }, /* insert */
+ { "kd", &_rl_term_kd },
+ { "ke", &_rl_term_ke }, /* end keypad mode */
+ { "kh", &_rl_term_kh }, /* home */
+ { "kl", &_rl_term_kl },
+ { "kr", &_rl_term_kr },
+ { "ks", &_rl_term_ks }, /* start keypad mode */
+ { "ku", &_rl_term_ku },
+ { "le", &_rl_term_backspace },
+ { "mm", &_rl_term_mm },
+ { "mo", &_rl_term_mo },
+ { "nd", &_rl_term_forward_char },
+ { "pc", &_rl_term_pc },
+ { "up", &_rl_term_up },
+ { "vb", &_rl_visible_bell },
+ { "vs", &_rl_term_vs },
+ { "ve", &_rl_term_ve },
+};
+
+#define NUM_TC_STRINGS (sizeof (tc_strings) / sizeof (struct _tc_string))
+
+/* Read the desired terminal capability strings into BP. The capabilities
+ are described in the TC_STRINGS table. */
+static void
+get_term_capabilities (bp)
+ char **bp;
+{
+#if !defined (__DJGPP__) /* XXX - doesn't DJGPP have a termcap library? */
+ register int i;
+
+ for (i = 0; i < NUM_TC_STRINGS; i++)
+ *(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp);
+#endif
+ tcap_initialized = 1;
+}
+
+int
+_rl_init_terminal_io (terminal_name)
+ const char *terminal_name;
+{
+ const char *term;
+ char *buffer;
+ int tty, tgetent_ret;
+
+ term = terminal_name ? terminal_name : sh_get_env_value ("TERM");
+ _rl_term_clrpag = _rl_term_cr = _rl_term_clreol = (char *)NULL;
+ tty = rl_instream ? fileno (rl_instream) : 0;
+
+ if (term == 0)
+ term = "dumb";
+
+ /* I've separated this out for later work on not calling tgetent at all
+ if the calling application has supplied a custom redisplay function,
+ (and possibly if the application has supplied a custom input function). */
+ if (CUSTOM_REDISPLAY_FUNC())
+ {
+ tgetent_ret = -1;
+ }
+ else
+ {
+ if (term_string_buffer == 0)
+ term_string_buffer = (char *)xmalloc(2032);
+
+ if (term_buffer == 0)
+ term_buffer = (char *)xmalloc(4080);
+
+ buffer = term_string_buffer;
+
+ tgetent_ret = tgetent (term_buffer, term);
+ }
+
+ if (tgetent_ret <= 0)
+ {
+ FREE (term_string_buffer);
+ FREE (term_buffer);
+ buffer = term_buffer = term_string_buffer = (char *)NULL;
+
+ _rl_term_autowrap = 0; /* used by _rl_get_screen_size */
+
+ /* Allow calling application to set default height and width, using
+ rl_set_screen_size */
+ if (_rl_screenwidth <= 0 || _rl_screenheight <= 0)
+ {
+#if defined (__EMX__)
+ _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
+ _rl_screenwidth--;
+#else /* !__EMX__ */
+ _rl_get_screen_size (tty, 0);
+#endif /* !__EMX__ */
+ }
+
+ /* Defaults. */
+ if (_rl_screenwidth <= 0 || _rl_screenheight <= 0)
+ {
+ _rl_screenwidth = 79;
+ _rl_screenheight = 24;
+ }
+
+ /* Everything below here is used by the redisplay code (tputs). */
+ _rl_screenchars = _rl_screenwidth * _rl_screenheight;
+ _rl_term_cr = "\r";
+ _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
+ _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
+ _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL;
+ _rl_term_kh = _rl_term_kH = _rl_term_kI = _rl_term_kD = (char *)NULL;
+ _rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL;
+ _rl_term_mm = _rl_term_mo = (char *)NULL;
+ _rl_term_ve = _rl_term_vs = (char *)NULL;
+ _rl_term_forward_char = (char *)NULL;
+ _rl_terminal_can_insert = term_has_meta = 0;
+
+ /* Reasonable defaults for tgoto(). Readline currently only uses
+ tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we
+ change that later... */
+ PC = '\0';
+ BC = _rl_term_backspace = "\b";
+ UP = _rl_term_up;
+
+ return 0;
+ }
+
+ get_term_capabilities (&buffer);
+
+ /* Set up the variables that the termcap library expects the application
+ to provide. */
+ PC = _rl_term_pc ? *_rl_term_pc : 0;
+ BC = _rl_term_backspace;
+ UP = _rl_term_up;
+
+ if (!_rl_term_cr)
+ _rl_term_cr = "\r";
+
+ _rl_term_autowrap = tgetflag ("am") && tgetflag ("xn");
+
+ /* Allow calling application to set default height and width, using
+ rl_set_screen_size */
+ if (_rl_screenwidth <= 0 || _rl_screenheight <= 0)
+ _rl_get_screen_size (tty, 0);
+
+ /* "An application program can assume that the terminal can do
+ character insertion if *any one of* the capabilities `IC',
+ `im', `ic' or `ip' is provided." But we can't do anything if
+ only `ip' is provided, so... */
+ _rl_terminal_can_insert = (_rl_term_IC || _rl_term_im || _rl_term_ic);
+
+ /* Check to see if this terminal has a meta key and clear the capability
+ variables if there is none. */
+ term_has_meta = tgetflag ("km") != 0;
+ if (term_has_meta == 0)
+ _rl_term_mm = _rl_term_mo = (char *)NULL;
+
+ /* Attempt to find and bind the arrow keys. Do not override already
+ bound keys in an overzealous attempt, however. */
+
+ bind_termcap_arrow_keys (emacs_standard_keymap);
+
+#if defined (VI_MODE)
+ bind_termcap_arrow_keys (vi_movement_keymap);
+ bind_termcap_arrow_keys (vi_insertion_keymap);
+#endif /* VI_MODE */
+
+ return 0;
+}
+
+/* Bind the arrow key sequences from the termcap description in MAP. */
+static void
+bind_termcap_arrow_keys (map)
+ Keymap map;
+{
+ Keymap xkeymap;
+
+ xkeymap = _rl_keymap;
+ _rl_keymap = map;
+
+ rl_bind_keyseq_if_unbound (_rl_term_ku, rl_get_previous_history);
+ rl_bind_keyseq_if_unbound (_rl_term_kd, rl_get_next_history);
+ rl_bind_keyseq_if_unbound (_rl_term_kr, rl_forward_char);
+ rl_bind_keyseq_if_unbound (_rl_term_kl, rl_backward_char);
+
+ rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
+ rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
+
+ rl_bind_keyseq_if_unbound (_rl_term_kD, rl_delete);
+
+ _rl_keymap = xkeymap;
+}
+
+char *
+rl_get_termcap (cap)
+ const char *cap;
+{
+ register int i;
+
+ if (tcap_initialized == 0)
+ return ((char *)NULL);
+ for (i = 0; i < NUM_TC_STRINGS; i++)
+ {
+ if (tc_strings[i].tc_var[0] == cap[0] && strcmp (tc_strings[i].tc_var, cap) == 0)
+ return *(tc_strings[i].tc_value);
+ }
+ return ((char *)NULL);
+}
+
+/* Re-initialize the terminal considering that the TERM/TERMCAP variable
+ has changed. */
+int
+rl_reset_terminal (terminal_name)
+ const char *terminal_name;
+{
+ _rl_screenwidth = _rl_screenheight = 0;
+ _rl_init_terminal_io (terminal_name);
+ return 0;
+}
+
+/* A function for the use of tputs () */
+#ifdef _MINIX
+void
+_rl_output_character_function (c)
+ int c;
+{
+ putc (c, _rl_out_stream);
+}
+#else /* !_MINIX */
+int
+_rl_output_character_function (c)
+ int c;
+{
+ return putc (c, _rl_out_stream);
+}
+#endif /* !_MINIX */
+
+/* Write COUNT characters from STRING to the output stream. */
+void
+_rl_output_some_chars (string, count)
+ const char *string;
+ int count;
+{
+ fwrite (string, 1, count, _rl_out_stream);
+}
+
+/* Move the cursor back. */
+int
+_rl_backspace (count)
+ int count;
+{
+ register int i;
+
+ if (_rl_term_backspace)
+ for (i = 0; i < count; i++)
+ tputs (_rl_term_backspace, 1, _rl_output_character_function);
+ else
+ for (i = 0; i < count; i++)
+ putc ('\b', _rl_out_stream);
+ return 0;
+}
+
+/* Move to the start of the next line. */
+int
+rl_crlf ()
+{
+#if defined (NEW_TTY_DRIVER) || defined (__MINT__)
+ if (_rl_term_cr)
+ tputs (_rl_term_cr, 1, _rl_output_character_function);
+#endif /* NEW_TTY_DRIVER || __MINT__ */
+ putc ('\n', _rl_out_stream);
+ return 0;
+}
+
+/* Ring the terminal bell. */
+int
+rl_ding ()
+{
+ if (_rl_echoing_p)
+ {
+ switch (_rl_bell_preference)
+ {
+ case NO_BELL:
+ default:
+ break;
+ case VISIBLE_BELL:
+ if (_rl_visible_bell)
+ {
+ tputs (_rl_visible_bell, 1, _rl_output_character_function);
+ break;
+ }
+ /* FALLTHROUGH */
+ case AUDIBLE_BELL:
+ fprintf (stderr, "\007");
+ fflush (stderr);
+ break;
+ }
+ return (0);
+ }
+ return (-1);
+}
+
+/* **************************************************************** */
+/* */
+/* Controlling the Meta Key and Keypad */
+/* */
+/* **************************************************************** */
+
+void
+_rl_enable_meta_key ()
+{
+#if !defined (__DJGPP__)
+ if (term_has_meta && _rl_term_mm)
+ tputs (_rl_term_mm, 1, _rl_output_character_function);
+#endif
+}
+
+void
+_rl_control_keypad (on)
+ int on;
+{
+#if !defined (__DJGPP__)
+ if (on && _rl_term_ks)
+ tputs (_rl_term_ks, 1, _rl_output_character_function);
+ else if (!on && _rl_term_ke)
+ tputs (_rl_term_ke, 1, _rl_output_character_function);
+#endif
+}
+
+/* **************************************************************** */
+/* */
+/* Controlling the Cursor */
+/* */
+/* **************************************************************** */
+
+/* Set the cursor appropriately depending on IM, which is one of the
+ insert modes (insert or overwrite). Insert mode gets the normal
+ cursor. Overwrite mode gets a very visible cursor. Only does
+ anything if we have both capabilities. */
+void
+_rl_set_cursor (im, force)
+ int im, force;
+{
+ if (_rl_term_ve && _rl_term_vs)
+ {
+ if (force || im != rl_insert_mode)
+ {
+ if (im == RL_IM_OVERWRITE)
+ tputs (_rl_term_vs, 1, _rl_output_character_function);
+ else
+ tputs (_rl_term_ve, 1, _rl_output_character_function);
+ }
+ }
+}
diff --git a/patchlevel.h b/patchlevel.h
index 52efbd76..2352c1ca 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -25,6 +25,6 @@
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */
-#define PATCHLEVEL 7
+#define PATCHLEVEL 8
#endif /* _PATCHLEVEL_H_ */
diff --git a/po/LINGUAS b/po/LINGUAS
index cf88fe3b..9a7084a7 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,2 +1,2 @@
# Set of available languages.
-en@quot en@boldquot af bg ca cs de eo es et fi fr ga hu id ja lt nl pl pt_BR ro ru sk sl sv tr uk vi zh_CN zh_TW
+en@quot en@boldquot af bg ca cs da de eo es et fi fr ga hu id ja lt nl pl pt_BR ro ru sk sl sv tr uk vi zh_CN zh_TW
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 00000000..4bd0220a
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,5316 @@
+# Danish translation of bash.
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the bash package.
+#
+# Kenneth Nielsen <k.nielsen81@gmail.com>, 2009-2011.
+#
+# Oversættelseskonventioner:
+# keymap -> tastetildeling
+# child -> underproces
+#
+msgid ""
+msgstr ""
+"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: 2011-03-18 01:36+0100\n"
+"Last-Translator: Kenneth Nielsen <k.nielsen81@gmail.com>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\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=2; plural=(n != 1);\n"
+
+# Den er jeg altså ikke helt sikker på
+#: arrayfunc.c:50
+msgid "bad array subscript"
+msgstr "ugyldigt arrayindeks"
+
+#: arrayfunc.c:313 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
+#, c-format
+msgid "%s: invalid associative array key"
+msgstr "%s: ugyldig nøgle til associativt array"
+
+#: arrayfunc.c:482
+#, c-format
+msgid "%s: cannot assign to non-numeric index"
+msgstr "%s: kan ikke tildele til ikkenumerisk indeks"
+
+#: arrayfunc.c:518
+#, 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
+#, c-format
+msgid "%s: cannot create: %s"
+msgstr "%s: kan ikke oprette %s"
+
+#: bashline.c:3498
+msgid "bash_execute_unix_command: cannot find keymap for command"
+msgstr "bash_execute_unix_command: kan ikke finde tastetildeling for kommando"
+
+#: bashline.c:3584
+#, 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
+#, c-format
+msgid "no closing `%c' in %s"
+msgstr "ingen afsluttende \"%c\" i %s"
+
+#: bashline.c:3647
+#, c-format
+msgid "%s: missing colon separator"
+msgstr "%s: manglende kolonseparator"
+
+#: builtins/alias.def:132
+#, fuzzy, c-format
+msgid "`%s': invalid alias name"
+msgstr "\"%s\": ugyldigt tastetildelingsnavn"
+
+#: builtins/bind.def:120 builtins/bind.def:123
+msgid "line editing not enabled"
+msgstr "linjeredigering ikke slået til"
+
+#: builtins/bind.def:206
+#, c-format
+msgid "`%s': invalid keymap name"
+msgstr "\"%s\": ugyldigt tastetildelingsnavn"
+
+#: builtins/bind.def:245
+#, c-format
+msgid "%s: cannot read: %s"
+msgstr "%s: kan ikke læse: %s"
+
+#: builtins/bind.def:260
+#, c-format
+msgid "`%s': cannot unbind"
+msgstr "\"%s\": kan ikke løsne"
+
+#: builtins/bind.def:295 builtins/bind.def:325
+#, c-format
+msgid "`%s': unknown function name"
+msgstr "\"%s\": ukendt funktionsnavn"
+
+#: builtins/bind.def:303
+#, c-format
+msgid "%s is not bound to any keys.\n"
+msgstr "%s er ikke bundet til nogen taster.\n"
+
+#: builtins/bind.def:307
+#, c-format
+msgid "%s can be invoked via "
+msgstr "%s kan kaldes via "
+
+#: builtins/break.def:77 builtins/break.def:117
+msgid "loop count"
+msgstr "løkketæller"
+
+#: builtins/break.def:137
+msgid "only meaningful in a `for', `while', or `until' loop"
+msgstr "kun meningsfuld i en \"for\"-, \"while\"- eller \"until\"-løkke"
+
+#: builtins/caller.def:133
+msgid ""
+"Returns the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns "
+msgstr ""
+"Returnerer konteksten af det nuværende underrutinekald.\n"
+" \n"
+" NÃ¥r UDTRYK udelades returneres "
+
+#: builtins/cd.def:235
+msgid "HOME not set"
+msgstr "HOME ikke indstillet"
+
+#: builtins/cd.def:247
+msgid "OLDPWD not set"
+msgstr "OLDPWD ikke indstillet"
+
+#: builtins/common.c:101
+#, c-format
+msgid "line %d: "
+msgstr "linje %d: "
+
+#: builtins/common.c:139 error.c:261
+#, c-format
+msgid "warning: "
+msgstr "advarsel: "
+
+#: builtins/common.c:153
+#, c-format
+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
+#, c-format
+msgid "%s: option requires an argument"
+msgstr "%s: tilvalg kræver et argument"
+
+#: builtins/common.c:198
+#, c-format
+msgid "%s: numeric argument required"
+msgstr "%s: numerisk argument påkrævet"
+
+#: builtins/common.c:205
+#, c-format
+msgid "%s: not found"
+msgstr "%s: ikke fundet"
+
+#: builtins/common.c:214 shell.c:795
+#, c-format
+msgid "%s: invalid option"
+msgstr "%s: ugyldigt tilvalg"
+
+#: builtins/common.c:221
+#, c-format
+msgid "%s: invalid option name"
+msgstr "%s: ugyldigt tilvalgsnavn"
+
+#: builtins/common.c:228 general.c:231 general.c:236
+#, c-format
+msgid "`%s': not a valid identifier"
+msgstr "\"%s\": ikke et gyldigt identificeringsnavn"
+
+#: builtins/common.c:238
+msgid "invalid octal number"
+msgstr "ugyldigt oktaltal"
+
+#: builtins/common.c:240
+msgid "invalid hex number"
+msgstr "ugyldigt heksadecimalt tal"
+
+#: builtins/common.c:242 expr.c:1362
+msgid "invalid number"
+msgstr "ugyldigt tal"
+
+#: builtins/common.c:250
+#, c-format
+msgid "%s: invalid signal specification"
+msgstr "%s: ugyldig signalspecifikation"
+
+#: builtins/common.c:257
+#, c-format
+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
+#, c-format
+msgid "%s: readonly variable"
+msgstr "%s: skrivebeskyttet variabel"
+
+#: builtins/common.c:272
+#, c-format
+msgid "%s: %s out of range"
+msgstr "%s: %s udenfor rækkevidde"
+
+#: builtins/common.c:272 builtins/common.c:274
+msgid "argument"
+msgstr "argument"
+
+#: builtins/common.c:274
+#, c-format
+msgid "%s out of range"
+msgstr "%s udenfor rækkevidde"
+
+#: builtins/common.c:282
+#, c-format
+msgid "%s: no such job"
+msgstr "%s: intet sådant job"
+
+#: builtins/common.c:290
+#, c-format
+msgid "%s: no job control"
+msgstr "%s: ingen jobkontrol"
+
+#: builtins/common.c:292
+msgid "no job control"
+msgstr "ingen jobkontrol"
+
+#: builtins/common.c:302
+#, c-format
+msgid "%s: restricted"
+msgstr "%s: begrænset"
+
+#: builtins/common.c:304
+msgid "restricted"
+msgstr "begrænset"
+
+#: builtins/common.c:312
+#, c-format
+msgid "%s: not a shell builtin"
+msgstr "%s: ikke indbygget i skallen"
+
+#: builtins/common.c:321
+#, c-format
+msgid "write error: %s"
+msgstr "skrivefejl: %s"
+
+#: builtins/common.c:329
+#, c-format
+msgid "error setting terminal attributes: %s"
+msgstr "fejl ved indstilling af terminalattribut: %s"
+
+#: builtins/common.c:331
+#, c-format
+msgid "error getting terminal attributes: %s"
+msgstr "fejl ved indhentning af terminalattribut: %s"
+
+#: builtins/common.c:563
+#, c-format
+msgid "%s: error retrieving current directory: %s: %s\n"
+msgstr "%s: fejl ved indhentning af nuværende mappe: %s: %s\n"
+
+#: builtins/common.c:629 builtins/common.c:631
+#, c-format
+msgid "%s: ambiguous job spec"
+msgstr "%s: tvetydig job-spec"
+
+#: builtins/complete.def:276
+#, c-format
+msgid "%s: invalid action name"
+msgstr "%s: ugyldigt handlingsnavn"
+
+#: builtins/complete.def:449 builtins/complete.def:644
+#: builtins/complete.def:853
+#, c-format
+msgid "%s: no completion specification"
+msgstr "%s: ingen fuldførselsspecifikation"
+
+#: builtins/complete.def:696
+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
+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
+msgid "not currently executing completion function"
+msgstr "ikke i gang med at eksekvere fuldførelsesfunktion"
+
+#: builtins/declare.def:124
+msgid "can only be used in a function"
+msgstr "kan kun bruges i en funktion"
+
+#: builtins/declare.def:366
+msgid "cannot use `-f' to make functions"
+msgstr "kan ikke bruge \"-f\" til at lave funktioner"
+
+#: builtins/declare.def:378 execute_cmd.c:5105
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: skrivebeskyttet funktion"
+
+#: builtins/declare.def:474
+#, c-format
+msgid "%s: cannot destroy array variables in this way"
+msgstr "%s: kan ikke destruere arrayvariabel på denne måde"
+
+#: builtins/declare.def:481
+#, c-format
+msgid "%s: cannot convert associative to indexed array"
+msgstr "%s: kan ikke konvertere associativt til indekseret array"
+
+#: builtins/enable.def:137 builtins/enable.def:145
+msgid "dynamic loading not available"
+msgstr "dynamisk indlæsning ikke tilgængelig"
+
+#: builtins/enable.def:312
+#, c-format
+msgid "cannot open shared object %s: %s"
+msgstr "kan ikke åbne delt objekt %s: %s"
+
+#: builtins/enable.def:335
+#, c-format
+msgid "cannot find %s in shared object %s: %s"
+msgstr "kan ikke finde %s i delt objekt %s: %s"
+
+#: builtins/enable.def:459
+#, c-format
+msgid "%s: not dynamically loaded"
+msgstr "%s: ikke dynamisk indlæst"
+
+#: builtins/enable.def:474
+#, c-format
+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
+#, c-format
+msgid "%s: is a directory"
+msgstr "%s: er en mappe"
+
+#: builtins/evalfile.c:140
+#, c-format
+msgid "%s: not a regular file"
+msgstr "%s: ikke en regulær fil"
+
+#: builtins/evalfile.c:148
+#, c-format
+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
+#, c-format
+msgid "%s: cannot execute binary file"
+msgstr "%s: kan ikke eksekvere binær fil"
+
+#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
+#, c-format
+msgid "%s: cannot execute: %s"
+msgstr "%s: kan ikke eksekvere: %s"
+
+#: builtins/exit.def:65
+#, c-format
+msgid "logout\n"
+msgstr "log ud\n"
+
+#: builtins/exit.def:88
+msgid "not login shell: use `exit'"
+msgstr "ikke en logind-skal: brug \"exit\""
+
+#: builtins/exit.def:120
+#, c-format
+msgid "There are stopped jobs.\n"
+msgstr "Der er stoppede job.\n"
+
+#: builtins/exit.def:122
+#, c-format
+msgid "There are running jobs.\n"
+msgstr "Der er kørende job.\n"
+
+#: builtins/fc.def:262
+msgid "no command found"
+msgstr "ingen kommando fundet"
+
+#: builtins/fc.def:312 builtins/fc.def:359
+msgid "history specification"
+msgstr "historikspecifikation"
+
+#: builtins/fc.def:380
+#, c-format
+msgid "%s: cannot open temp file: %s"
+msgstr "%s: kan ikke åbne midl. fil: %s"
+
+#: builtins/fg_bg.def:149 builtins/jobs.def:282
+msgid "current"
+msgstr "nuværende"
+
+#: builtins/fg_bg.def:158
+#, c-format
+msgid "job %d started without job control"
+msgstr "job %d startet uden jobkontrol"
+
+#: builtins/getopt.c:110
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ugyldigt tilvalg -- %c\n"
+
+#: builtins/getopt.c:111
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: et argument er påkrævet til tilvalget -- %c\n"
+
+#: builtins/hash.def:92
+msgid "hashing disabled"
+msgstr "hashing slået fra"
+
+#: builtins/hash.def:138
+#, c-format
+msgid "%s: hash table empty\n"
+msgstr "%s: hash-tabel tom\n"
+
+#: builtins/hash.def:245
+#, c-format
+msgid "hits\tcommand\n"
+msgstr "hits\tkommando\n"
+
+# Jeg antager at det sidste ` er det første af et sæt af anførselstegn og
+# det er derfor oversat til "
+#: builtins/help.def:130
+#, c-format
+msgid "Shell commands matching keyword `"
+msgid_plural "Shell commands matching keywords `"
+msgstr[0] "Skalkommandoer som matcher nøgleordet \""
+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\"."
+
+#: builtins/help.def:185
+#, c-format
+msgid "%s: cannot open: %s"
+msgstr "%s: kan ikke åbne: %s"
+
+#: builtins/help.def:337
+#, c-format
+msgid ""
+"These shell commands are defined internally. Type `help' to see this list.\n"
+"Type `help name' to find out more about the function `name'.\n"
+"Use `info bash' to find out more about the shell in general.\n"
+"Use `man -k' or `info' to find out more about commands not in this list.\n"
+"\n"
+"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"
+"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"
+"på listen.\n"
+"\n"
+"En stjerne (*) ved siden af et navn betyder at kommandoen er slået fra.\n"
+"\n"
+
+#: builtins/history.def:154
+msgid "cannot use more than one of -anrw"
+msgstr "kan ikke bruge mere end en af -anrw"
+
+#: builtins/history.def:186
+msgid "history position"
+msgstr "historikposition"
+
+#: builtins/history.def:365
+#, c-format
+msgid "%s: history expansion failed"
+msgstr "%s: historikudvidelse fejlede"
+
+#: builtins/inlib.def:71
+#, c-format
+msgid "%s: inlib failed"
+msgstr "%s: inlib fejlede"
+
+#: builtins/jobs.def:109
+msgid "no other options allowed with `-x'"
+msgstr "ingen andre tilvalg er tilladt sammen med \"-x\""
+
+#: builtins/kill.def:198
+#, c-format
+msgid "%s: arguments must be process or job IDs"
+msgstr "%s: argumenter skal være processer eller job-id'er"
+
+#: builtins/kill.def:261
+msgid "Unknown error"
+msgstr "Ukendt fejl"
+
+#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
+msgid "expression expected"
+msgstr "forventede et udtryk"
+
+#: builtins/mapfile.def:172
+#, fuzzy, c-format
+msgid "%s: not an indexed array"
+msgstr "%s: ikke en arrayvariabel"
+
+#: builtins/mapfile.def:256 builtins/read.def:279
+#, c-format
+msgid "%s: invalid file descriptor specification"
+msgstr "%s: ugyldig filbeskrivelsesspecifikation"
+
+#: builtins/mapfile.def:264 builtins/read.def:286
+#, c-format
+msgid "%d: invalid file descriptor: %s"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+# -c Specify the number of lines read between each call to callback.
+#: builtins/mapfile.def:273 builtins/mapfile.def:311
+#, c-format
+msgid "%s: invalid line count"
+msgstr "%s: ugyldigt antal linjer"
+
+#: builtins/mapfile.def:284
+#, c-format
+msgid "%s: invalid array origin"
+msgstr "%s: ugyldig array-startindeks"
+
+#: builtins/mapfile.def:301
+#, c-format
+msgid "%s: invalid callback quantum"
+msgstr "%s: ugyldigt tilbagekaldskvantum"
+
+#: builtins/mapfile.def:333
+msgid "empty array variable name"
+msgstr "tomt arrayvariabelnavn"
+
+#: builtins/mapfile.def:354
+msgid "array variable support required"
+msgstr "understøttelse af arrayvariabel påkrævet"
+
+#: builtins/printf.def:394
+#, c-format
+msgid "`%s': missing format character"
+msgstr "\"%s\": manglende formattegn"
+
+#: builtins/printf.def:448
+#, fuzzy, c-format
+msgid "`%c': invalid time format specification"
+msgstr "%s: ugyldig specifikation af tidsudløb"
+
+#: builtins/printf.def:635
+#, c-format
+msgid "`%c': invalid format character"
+msgstr "\"%c\": ugyldigt formattegn"
+
+#: builtins/printf.def:662
+#, c-format
+msgid "warning: %s: %s"
+msgstr "advarsel: %s: %s"
+
+#: builtins/printf.def:840
+msgid "missing hex digit for \\x"
+msgstr "manglende heksciffer for \\x"
+
+#: builtins/printf.def:855
+#, fuzzy, c-format
+msgid "missing unicode digit for \\%c"
+msgstr "manglende heksciffer for \\x"
+
+#: builtins/pushd.def:195
+msgid "no other directory"
+msgstr "ingen anden mappe"
+
+#: builtins/pushd.def:462
+msgid "<no current directory>"
+msgstr "<ingen nuværende mappe>"
+
+#: builtins/pushd.def:506
+msgid "directory stack empty"
+msgstr "mappestak tom"
+
+#: builtins/pushd.def:508
+msgid "directory stack index"
+msgstr "mappestakindeks"
+
+#: builtins/pushd.def:683
+msgid ""
+"Display the list of currently remembered directories. Directories\n"
+" find their way onto the list with the `pushd' command; you can get\n"
+" back up through the list with the `popd' command.\n"
+" \n"
+" Options:\n"
+" -c\tclear the directory stack by deleting all of the elements\n"
+" -l\tdo not print tilde-prefixed versions of directories relative\n"
+" \tto your home directory\n"
+" -p\tprint the directory stack with one entry per line\n"
+" -v\tprint the directory stack with one entry per line prefixed\n"
+" \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"
+" \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"
+"\tdirs when invoked without options, starting with zero."
+msgstr ""
+"Viser listen af huskede mapper. Mapper tilføjes til listen med\n"
+" \"pushd\"-kommandoen. Du kan komme tilbage i listen med \"popd\"-\n"
+" kommandoen.\n"
+"\n"
+" Valgmuligheder:\n"
+" -c\tryd mappestakken ved at slette alle elementerne\n"
+" -l\tvis ikke \"tildepræfiksede\" versioner af mapper relativt\n"
+" til din hjemmemappe\n"
+" -p\tvis mappestakken med et element per linje\n"
+" -v\tvis mappestakken med et element per linje, præfikset med\n"
+" med dets position i stakken\n"
+" \n"
+" Argumenter:\n"
+" +N\tViser det N'te element, talt fra venstre af og vist mappevis\n"
+" når der ikke angives nogle valgmuligheder, startende fra 0.\n"
+" \n"
+" -N\tViser det N'te element, talt fra venstre af og vist mappevis\n"
+" når der ikke angives nogle valgmuligheder, startende fra 0."
+
+# Jeg tror der er en fejl i den engelske, fejlrapport
+#: builtins/pushd.def:705
+#, fuzzy
+msgid ""
+"Adds a directory to the top of the directory stack, or rotates\n"
+" the stack, making the new top of the stack the current working\n"
+" directory. With no arguments, exchanges the top two directories.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when adding\n"
+" \tdirectories to the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRotates the stack so that the Nth directory (counting\n"
+" \tfrom the left of the list shown by `dirs', starting with\n"
+" \tzero) is at the top.\n"
+" \n"
+" -N\tRotates the stack so that the Nth directory (counting\n"
+" \tfrom the right of the list shown by `dirs', starting with\n"
+" \tzero) is at the top.\n"
+" \n"
+" dir\tAdds DIR to the directory stack at the top, making it the\n"
+" \tnew current working directory.\n"
+" \n"
+" The `dirs' builtin displays the directory stack."
+msgstr ""
+"Tilføjer en mappe til toppen af mappestakken, eller roterer stakken\n"
+" således at den nye top bliver den aktuelle mappe. Uden\n"
+" argumenter ombyttes de to øverste mapper.\n"
+" \n"
+" Valgmuligheder:\n"
+" -n\tUndertrykker det normale mappeskift ved tilføjelse\n"
+" \taf mapper til stakken, således at kun stakken manipuleres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tRoterer stakken således at det N'te element (talt\n"
+" \tfra venstre af listen som vist af \"dirs\", startende med nul)\n"
+" \tbliver placeret i toppen.\n"
+" \n"
+" -N\tRoterer stakken således at det N'te element (talt\n"
+" \tfra højre af listen som vist af \"dirs\", startende med nul)\n"
+" \tbliver placeret i toppen.\n"
+" \n"
+" dir\tTilføjer DIR til toppen af mappestakken, således at den\n"
+" \tbliver den nye aktive mappe.\n"
+" \n"
+"Den indbyggede funktion \"dirs\" viser mappestakken."
+
+#: builtins/pushd.def:730
+msgid ""
+"Removes entries from the directory stack. With no arguments, removes\n"
+" the top directory from the stack, and changes to the new top directory.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when removing\n"
+" \tdirectories from the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRemoves the Nth entry counting from the left of the list\n"
+" \tshown by `dirs', starting with zero. For example: `popd +0'\n"
+" \tremoves the first directory, `popd +1' the second.\n"
+" \n"
+" -N\tRemoves the Nth entry counting from the right of the list\n"
+" \tshown by `dirs', starting with zero. For example: `popd -0'\n"
+" \tremoves the last directory, `popd -1' the next to last.\n"
+" \n"
+" The `dirs' builtin displays the directory stack."
+msgstr ""
+"Fjerner en mappe fra toppen af mappestakken. Uden argumenter fjernes\n"
+" den øverste mappe fra stakken og der skiftes til den nye øverste mappe.\n"
+" \n"
+" Valgmuligheder:\n"
+" -n\tUndertrykker det normale mappeskift ved fjernelse\n"
+" \taf mapper fra stakken, således at kun stakken manipuleres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tFjerner det N'te element, talt fra venstre af listen\n"
+" \tsom vist af \"dirs\", startende med nul. F.eks: vil \"popd +0\"\n"
+" \tfjerne det øverste argument og \"popd +1\" det andet.\n"
+" \n"
+" -N\tFjerner det N'te element, talt fra højre af listen\n"
+" \tsom vist af \"dirs\", startende med nul. F.eks: vil \"popd -0\"\n"
+" \tfjerne det sidste argument og \"popd -1\" det andetsidste.\n"
+" \n"
+"Den indbyggede funktion \"dirs\" viser mappestakken."
+
+#: builtins/read.def:252
+#, c-format
+msgid "%s: invalid timeout specification"
+msgstr "%s: ugyldig specifikation af tidsudløb"
+
+#: builtins/read.def:588
+#, c-format
+msgid "read error: %d: %s"
+msgstr "læsefejl: %d: %s"
+
+#: builtins/return.def:73
+msgid "can only `return' from a function or sourced script"
+msgstr "kan kun udføre \"return\" fra en funktion eller indlæst skript"
+
+#: builtins/set.def:771
+msgid "cannot simultaneously unset a function and a variable"
+msgstr "kan ikke fjerne en funktion og en variabel samtidig"
+
+#: builtins/set.def:808
+#, c-format
+msgid "%s: cannot unset"
+msgstr "%s: kan ikke fjerne"
+
+#: builtins/set.def:815
+#, c-format
+msgid "%s: cannot unset: readonly %s"
+msgstr "%s: kan ikke fjerne: skrivebeskyttet %s"
+
+#: builtins/set.def:826
+#, c-format
+msgid "%s: not an array variable"
+msgstr "%s: ikke en arrayvariabel"
+
+#: builtins/setattr.def:186
+#, c-format
+msgid "%s: not a function"
+msgstr "%s: ikke en funktion"
+
+#: builtins/shift.def:71 builtins/shift.def:77
+msgid "shift count"
+msgstr "skifttæller"
+
+#: builtins/shopt.def:264
+msgid "cannot set and unset shell options simultaneously"
+msgstr "kan ikke indstille og fjerne skaltilvalg samtidig"
+
+#: builtins/shopt.def:329
+#, c-format
+msgid "%s: invalid shell option name"
+msgstr "%s: ugyldigt navn for skaltilvalg"
+
+#: builtins/source.def:130
+msgid "filename argument required"
+msgstr "filnavnsargument påkrævet"
+
+#: builtins/source.def:155
+#, c-format
+msgid "%s: file not found"
+msgstr "%s: fil ikke fundet"
+
+#: builtins/suspend.def:101
+msgid "cannot suspend"
+msgstr "kan ikke sætte i hvile"
+
+#: builtins/suspend.def:111
+msgid "cannot suspend a login shell"
+msgstr "kan ikke sætte en logindskal i hvile"
+
+#: builtins/type.def:234
+#, c-format
+msgid "%s is aliased to `%s'\n"
+msgstr "%s er aliasset til \"%s\"\n"
+
+#: builtins/type.def:255
+#, c-format
+msgid "%s is a shell keyword\n"
+msgstr "%s er et skalnøgleord\n"
+
+#: builtins/type.def:274
+#, c-format
+msgid "%s is a function\n"
+msgstr "%s er en funktion\n"
+
+#: builtins/type.def:296
+#, c-format
+msgid "%s is a shell builtin\n"
+msgstr "%s er indbygget i skallen\n"
+
+#: builtins/type.def:317 builtins/type.def:391
+#, c-format
+msgid "%s is %s\n"
+msgstr "%s er %s\n"
+
+#: builtins/type.def:337
+#, c-format
+msgid "%s is hashed (%s)\n"
+msgstr "%s er hashet (%s)\n"
+
+#: builtins/ulimit.def:376
+#, c-format
+msgid "%s: invalid limit argument"
+msgstr "%s: ugyldigt grænseargument"
+
+#: builtins/ulimit.def:402
+#, c-format
+msgid "`%c': bad command"
+msgstr "\"%c\": ugyldig kommando"
+
+#: builtins/ulimit.def:431
+#, c-format
+msgid "%s: cannot get limit: %s"
+msgstr "%s: kan ikke indhente grænse: %s"
+
+#: builtins/ulimit.def:457
+msgid "limit"
+msgstr "grænse"
+
+#: builtins/ulimit.def:469 builtins/ulimit.def:769
+#, c-format
+msgid "%s: cannot modify limit: %s"
+msgstr "%s: kan ikke modificere grænse: %s"
+
+#: builtins/umask.def:118
+msgid "octal number"
+msgstr "oktalt tal"
+
+#: builtins/umask.def:231
+#, c-format
+msgid "`%c': invalid symbolic mode operator"
+msgstr "\"%c\": ugyldig symbolsk tilstandsoperator"
+
+#: builtins/umask.def:286
+#, c-format
+msgid "`%c': invalid symbolic mode character"
+msgstr "\"%c\": ugyldigt symbolsk tilstandstegn"
+
+#: error.c:90 error.c:321 error.c:323 error.c:325
+msgid " line "
+msgstr " linje "
+
+#: error.c:165
+#, c-format
+msgid "last command: %s\n"
+msgstr "sidste kommando: %s\n"
+
+#: error.c:173
+#, c-format
+msgid "Aborting..."
+msgstr "Afbryder..."
+
+#: error.c:406
+msgid "unknown command error"
+msgstr "ukendt kommandofejl"
+
+#: error.c:407
+msgid "bad command type"
+msgstr "ugyldig kommandotype"
+
+#: error.c:408
+msgid "bad connector"
+msgstr "dårligt mellemled"
+
+#: error.c:409
+msgid "bad jump"
+msgstr "dårligt hop"
+
+#: error.c:447
+#, c-format
+msgid "%s: unbound variable"
+msgstr "%s: ubundet variabel"
+
+#: eval.c:181
+#, c-format
+msgid "\atimed out waiting for input: auto-logout\n"
+msgstr "\atidsudløb mens der ventedes på input: auto-logud\n"
+
+#: execute_cmd.c:504
+#, c-format
+msgid "cannot redirect standard input from /dev/null: %s"
+msgstr "kan ikke videresende standardinput fra /dev/null: %s"
+
+#: execute_cmd.c:1168
+#, c-format
+msgid "TIMEFORMAT: `%c': invalid format character"
+msgstr "TIMEFORMAT: \"%c\": ugyldigt formateringstegn"
+
+#: execute_cmd.c:2121
+msgid "pipe error"
+msgstr "datakanalfejl (pipe error)"
+
+#: execute_cmd.c:4640
+#, c-format
+msgid "%s: restricted: cannot specify `/' in command names"
+msgstr "%s: begrænset: kan ikke specificere \"/\" i kommandonavne"
+
+#: execute_cmd.c:4735
+#, c-format
+msgid "%s: command not found"
+msgstr "%s: kommando ikke fundet"
+
+#: execute_cmd.c:4959
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: execute_cmd.c:4995
+#, c-format
+msgid "%s: %s: bad interpreter"
+msgstr "%s: %s: dårlig fortolker"
+
+# 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
+# of <(list) or >(list). The process list is run with its input or outâ€
+# put connected to a FIFO or some file in /dev/fd. The name of this file
+# is passed as an argument to the current command as the result of the
+# 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
+#, c-format
+msgid "cannot duplicate fd %d to fd %d"
+msgstr "kan ikke duplikere fd %d til fd %d"
+
+#: expr.c:256
+msgid "expression recursion level exceeded"
+msgstr "grænse for rekursion af udtryk overskredet"
+
+#: expr.c:280
+msgid "recursion stack underflow"
+msgstr "underløb i rekursionsstak"
+
+#: expr.c:422
+msgid "syntax error in expression"
+msgstr "syntaksfejl i udtryk"
+
+#: expr.c:463
+msgid "attempted assignment to non-variable"
+msgstr "forsøgte tildeling til ikke-variabel"
+
+#: expr.c:486 expr.c:491 expr.c:807
+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
+msgid "bug: bad expassign token"
+msgstr "bug: dårligt expassign-udtryk"
+
+#: expr.c:564
+msgid "`:' expected for conditional expression"
+msgstr "\":\" forventet for betingede udtryk"
+
+#: expr.c:832
+msgid "exponent less than 0"
+msgstr "eksponent mindre end 0"
+
+#: expr.c:887
+msgid "identifier expected after pre-increment or pre-decrement"
+msgstr "identifikator forventet efter præforøgelse eller -formindskelse"
+
+#: expr.c:910
+msgid "missing `)'"
+msgstr "manglende \")\""
+
+#: expr.c:959 expr.c:1282
+msgid "syntax error: operand expected"
+msgstr "syntaksfejl: operand forventet"
+
+#: expr.c:1284
+msgid "syntax error: invalid arithmetic operator"
+msgstr "syntaksfejl: ugyldig aritmetisk operator"
+
+#: expr.c:1308
+#, c-format
+msgid "%s%s%s: %s (error token is \"%s\")"
+msgstr "%s%s%s: %s (fejlelement er \"%s\")"
+
+#: expr.c:1366
+msgid "invalid arithmetic base"
+msgstr "ugyldig aritmetisk grundtal"
+
+#: expr.c:1386
+msgid "value too great for base"
+msgstr "værdi for stor til grundtal"
+
+#: expr.c:1435
+#, c-format
+msgid "%s: expression error\n"
+msgstr "%s: fejl i udtryk\n"
+
+#: general.c:61
+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
+#, c-format
+msgid "cannot reset nodelay mode for fd %d"
+msgstr "kan ikke nulstille \"nodelay\"-tilstand for fd %d"
+
+#: input.c:260
+#, 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
+#, 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
+msgid "start_pipeline: pgrp pipe"
+msgstr "start_pipeline: pgrp-datakanal (pipe)"
+
+#: jobs.c:889
+#, c-format
+msgid "forked pid %d appears in running job %d"
+msgstr "forgrenet pid %d figurerer i kørende job %d"
+
+#: jobs.c:1007
+#, c-format
+msgid "deleting stopped job %d with process group %ld"
+msgstr "sletter stoppet job %d med procesgruppe %ld"
+
+# ??
+#: jobs.c:1112
+#, c-format
+msgid "add_process: process %5ld (%s) in the_pipeline"
+msgstr "add_process: proces %5ld (%s) i the_pipeline"
+
+#: jobs.c:1115
+#, 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
+#, c-format
+msgid "describe_pid: %ld: no such pid"
+msgstr "describe_pid: %ld: ingen process med det pid"
+
+#: jobs.c:1445
+#, c-format
+msgid "Signal %d"
+msgstr "Signal %d"
+
+#: jobs.c:1459 jobs.c:1484
+msgid "Done"
+msgstr "Færdig"
+
+#: jobs.c:1464 siglist.c:123
+msgid "Stopped"
+msgstr "Stoppet"
+
+#: jobs.c:1468
+#, c-format
+msgid "Stopped(%s)"
+msgstr "Stoppet(%s)"
+
+#: jobs.c:1472
+msgid "Running"
+msgstr "Kører"
+
+#: jobs.c:1486
+#, c-format
+msgid "Done(%d)"
+msgstr "Færdig(%d)"
+
+#: jobs.c:1488
+#, c-format
+msgid "Exit %d"
+msgstr "Afslut %d"
+
+#: jobs.c:1491
+msgid "Unknown status"
+msgstr "Ukendt status"
+
+#: jobs.c:1578
+#, c-format
+msgid "(core dumped) "
+msgstr "(smed kerne) "
+
+#: jobs.c:1597
+#, c-format
+msgid " (wd: %s)"
+msgstr " (wd: %s)"
+
+#: jobs.c:1805
+#, c-format
+msgid "child setpgid (%ld to %ld)"
+msgstr "underproces setpgid (%ld til %ld)"
+
+#: jobs.c:2133 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
+#, c-format
+msgid "wait_for: No record of process %ld"
+msgstr "wait_for: Ingen optegnelse af proces %ld"
+
+#: jobs.c:2637
+#, c-format
+msgid "wait_for_job: job %d is stopped"
+msgstr "wait_for_job: job %d er stoppet"
+
+#: jobs.c:2859
+#, c-format
+msgid "%s: job has terminated"
+msgstr "%s: job er afbrudt"
+
+#: jobs.c:2868
+#, c-format
+msgid "%s: job %d already in background"
+msgstr "%s: job %d er allerede i baggrunden"
+
+#: jobs.c:3089
+msgid "waitchld: turning on WNOHANG to avoid indefinite block"
+msgstr ""
+
+#: jobs.c:3538
+#, c-format
+msgid "%s: line %d: "
+msgstr "%s: linje %d: "
+
+#: jobs.c:3552 nojobs.c:814
+#, c-format
+msgid " (core dumped)"
+msgstr " (smed kerne)"
+
+#: jobs.c:3564 jobs.c:3577
+#, c-format
+msgid "(wd now: %s)\n"
+msgstr "(wd nu: %s)\n"
+
+#: jobs.c:3609
+msgid "initialize_job_control: getpgrp failed"
+msgstr "initialize_job_control: getpgrp fejlede"
+
+#: jobs.c:3669
+msgid "initialize_job_control: line discipline"
+msgstr "initialize_job_control: linjedisciplin"
+
+#: jobs.c:3679
+msgid "initialize_job_control: setpgid"
+msgstr "initialize_job_control: setpgid"
+
+#: jobs.c:3707
+#, c-format
+msgid "cannot set terminal process group (%d)"
+msgstr "kan ikke indstille terminal-procesgruppe (%d)"
+
+#: jobs.c:3712
+msgid "no job control in this shell"
+msgstr "ingen jobkontrol i denne skal"
+
+#: lib/malloc/malloc.c:296
+#, c-format
+msgid "malloc: failed assertion: %s\n"
+msgstr "malloc: forfejlet hævdelse: %s\n"
+
+#: lib/malloc/malloc.c:312
+#, c-format
+msgid ""
+"\r\n"
+"malloc: %s:%d: assertion botched\r\n"
+msgstr ""
+"\r\n"
+"malloc: %s:%d: hævdelse forkludret\r\n"
+
+#: lib/malloc/malloc.c:313
+msgid "unknown"
+msgstr "ukendt"
+
+#: lib/malloc/malloc.c:797
+msgid "malloc: block on free list clobbered"
+msgstr "malloc: blok i fri liste tværet ud"
+
+#: lib/malloc/malloc.c:874
+msgid "free: called with already freed block argument"
+msgstr "free: kaldt med blokargument som allerede er fri"
+
+#: lib/malloc/malloc.c:877
+msgid "free: called with unallocated block argument"
+msgstr "free: kaldt med ikke-allokeret blokargument"
+
+#: lib/malloc/malloc.c:896
+msgid "free: underflow detected; mh_nbytes out of range"
+msgstr "free: underløb detekteret, mh_nbytes uden for interval"
+
+#: lib/malloc/malloc.c:902
+msgid "free: start and end chunk sizes differ"
+msgstr "free: størrelse på start- og slut-bid afviger"
+
+#: lib/malloc/malloc.c:1001
+msgid "realloc: called with unallocated block argument"
+msgstr "realloc: kaldt med ikke-allokeret blokargument"
+
+#: lib/malloc/malloc.c:1016
+msgid "realloc: underflow detected; mh_nbytes out of range"
+msgstr "realloc: underløb detekteret, mh_nbytes uden for interval"
+
+#: lib/malloc/malloc.c:1022
+msgid "realloc: start and end chunk sizes differ"
+msgstr "realloc: størrelse på start- og slut-bid afviger"
+
+#: lib/malloc/table.c:177
+#, c-format
+msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
+msgstr "register_alloc: alloc-tabel er fyldt med FIND_ALLOC?\n"
+
+#: lib/malloc/table.c:184
+#, c-format
+msgid "register_alloc: %p already in table as allocated?\n"
+msgstr "register_alloc: %p allerede i tabel som allokeret?\n"
+
+#: lib/malloc/table.c:220
+#, c-format
+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
+msgid "invalid base"
+msgstr "ugyldig base"
+
+#: lib/sh/netopen.c:168
+#, c-format
+msgid "%s: host unknown"
+msgstr "%s: vært ukendt"
+
+#: lib/sh/netopen.c:175
+#, c-format
+msgid "%s: invalid service"
+msgstr "%s: ugyldig tjeneste"
+
+#: lib/sh/netopen.c:306
+#, c-format
+msgid "%s: bad network path specification"
+msgstr "%s: dårlig specifikation for netværkssti"
+
+#: lib/sh/netopen.c:346
+msgid "network operations not supported"
+msgstr "netværksoperation ikke understøttet"
+
+#: locale.c:192
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s)"
+msgstr ""
+
+#: locale.c:194
+#, c-format
+msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
+msgstr ""
+
+#: locale.c:247
+#, fuzzy, c-format
+msgid "setlocale: %s: cannot change locale (%s)"
+msgstr "xrealloc: %s:%d: kan ikke allokere %lu bytes"
+
+#: locale.c:249
+#, fuzzy, c-format
+msgid "setlocale: %s: cannot change locale (%s): %s"
+msgstr "xrealloc: %s:%d: kan ikke allokere %lu bytes"
+
+#: mailcheck.c:433
+msgid "You have mail in $_"
+msgstr "Du har post i $_"
+
+#: mailcheck.c:458
+msgid "You have new mail in $_"
+msgstr "Du har ny post i $_"
+
+#: mailcheck.c:474
+#, c-format
+msgid "The mail in %s has been read\n"
+msgstr "Posten i %s er blevet læst\n"
+
+#: make_cmd.c:323
+msgid "syntax error: arithmetic expression required"
+msgstr "syntaksfejl: aritmetisk udtryk påkrævet"
+
+#: make_cmd.c:325
+msgid "syntax error: `;' unexpected"
+msgstr "syntaksfejl: \";\" uventet"
+
+#: make_cmd.c:326
+#, c-format
+msgid "syntax error: `((%s))'"
+msgstr "syntaksfejl: \"((%s))\""
+
+#: make_cmd.c:575
+#, c-format
+msgid "make_here_document: bad instruction type %d"
+msgstr "make_here_document: dårlig instruktionstype %d"
+
+#: make_cmd.c:659
+#, 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\")"
+
+#: make_cmd.c:756
+#, 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
+#, c-format
+msgid "unexpected EOF while looking for matching `%c'"
+msgstr "uventet EOF mens der ledtes efter samhørende \"%c\""
+
+#: parse.y:4025
+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
+#, c-format
+msgid "syntax error in conditional expression: unexpected token `%s'"
+msgstr "syntaksfejl i betingelsesudtryk: uventet element \"%s\""
+
+#: parse.y:4034
+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
+#, c-format
+msgid "unexpected token `%s', expected `)'"
+msgstr "uventet element \"%s\", forventede \")\""
+
+#: parse.y:4116
+msgid "expected `)'"
+msgstr "forventede \")\""
+
+#: parse.y:4144
+#, c-format
+msgid "unexpected argument `%s' to conditional unary operator"
+msgstr "uventet argument \"%s\" til unær betingelsesoperator"
+
+#: parse.y:4148
+msgid "unexpected argument to conditional unary operator"
+msgstr "uventet argument til unær betingelsesoperator"
+
+#: parse.y:4194
+#, c-format
+msgid "unexpected token `%s', conditional binary operator expected"
+msgstr "uventet udtryk \"%s\", ventede binær betingelsesoperator"
+
+#: parse.y:4198
+msgid "conditional binary operator expected"
+msgstr "ventedet binær betingelsesoperator"
+
+#: parse.y:4220
+#, c-format
+msgid "unexpected argument `%s' to conditional binary operator"
+msgstr "uventet argument \"%s\" til binær betingelsesoperator"
+
+#: parse.y:4224
+msgid "unexpected argument to conditional binary operator"
+msgstr "uventet argument til binær betingelsesoperator"
+
+#: parse.y:4235
+#, c-format
+msgid "unexpected token `%c' in conditional command"
+msgstr "uventet udtryk \"%c\" i betingelseskommando"
+
+#: parse.y:4238
+#, c-format
+msgid "unexpected token `%s' in conditional command"
+msgstr "uventet udtryk \"%s\" i betingelseskommando"
+
+#: parse.y:4242
+#, c-format
+msgid "unexpected token %d in conditional command"
+msgstr "uventet udtryk \"%d\" i betingelseskommando"
+
+#: parse.y:5566
+#, c-format
+msgid "syntax error near unexpected token `%s'"
+msgstr "syntaksfejl nær uventet udtryk \"%s\""
+
+#: parse.y:5584
+#, c-format
+msgid "syntax error near `%s'"
+msgstr "syntaksfejl nær \"%s\""
+
+#: parse.y:5594
+msgid "syntax error: unexpected end of file"
+msgstr "syntaksfejl: uventet slutning på fil"
+
+#: parse.y:5594
+msgid "syntax error"
+msgstr "syntaksfejl"
+
+#: parse.y:5656
+#, c-format
+msgid "Use \"%s\" to leave the shell.\n"
+msgstr "Brug \"%s\" for at forlade skallen.\n"
+
+#: parse.y:5818
+msgid "unexpected EOF while looking for matching `)'"
+msgstr "uventet EOF mens der ledtes efter samhørende \")\""
+
+#: pcomplete.c:1030
+#, c-format
+msgid "completion: function `%s' not found"
+msgstr "completion: funktion \"%s\" ikke fundet"
+
+#: pcomplib.c:182
+#, c-format
+msgid "progcomp_insert: %s: NULL COMPSPEC"
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
+
+#: print_cmd.c:296
+#, c-format
+msgid "print_command: bad connector `%d'"
+msgstr "print_command: dårligt mellemled \"%d\""
+
+#: print_cmd.c:368
+#, fuzzy, c-format
+msgid "xtrace_set: %d: invalid file descriptor"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+#: print_cmd.c:373
+msgid "xtrace_set: NULL file pointer"
+msgstr ""
+
+#: print_cmd.c:377
+#, c-format
+msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
+msgstr ""
+
+#: print_cmd.c:1478
+#, c-format
+msgid "cprintf: `%c': invalid format character"
+msgstr "cprintf: \"%c\": ugyldigt formateringstegn"
+
+#: redir.c:122
+msgid "file descriptor out of range"
+msgstr "fil-deskriptor uden for interval"
+
+#: redir.c:178
+#, c-format
+msgid "%s: ambiguous redirect"
+msgstr "%s: tvetydig videresendelse"
+
+#: redir.c:182
+#, c-format
+msgid "%s: cannot overwrite existing file"
+msgstr "%s: kan ikke overskrive eksisterende fil"
+
+#: redir.c:187
+#, c-format
+msgid "%s: restricted: cannot redirect output"
+msgstr "%s: begrænset: kan ikke videresende output"
+
+#: redir.c:192
+#, c-format
+msgid "cannot create temp file for here-document: %s"
+msgstr "kan ikke danne midlertidig fil til here-dokument: %s"
+
+#: redir.c:196
+#, fuzzy, c-format
+msgid "%s: cannot assign fd to variable"
+msgstr "%s: kan ikke tildele liste til arrayelementer"
+
+#: redir.c:548
+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
+msgid "redirection error: cannot duplicate fd"
+msgstr "videresendelsesfejl: kan ikke duplikere fd"
+
+#: shell.c:333
+msgid "could not find /tmp, please create!"
+msgstr "kan ikke finde /tmp, opret venligst mappen!"
+
+#: shell.c:337
+msgid "/tmp must be a valid directory name"
+msgstr "/tmp skal være et gyldigt mappenavn"
+
+#: shell.c:884
+#, c-format
+msgid "%c%c: invalid option"
+msgstr "%c%c: ugyldigt tilvalg"
+
+#: shell.c:1652
+msgid "I have no name!"
+msgstr "Jeg har ikke noget navn!"
+
+#: shell.c:1795
+#, c-format
+msgid "GNU bash, version %s-(%s)\n"
+msgstr "GNU bash, version %s-(%s)\n"
+
+#: shell.c:1796
+#, c-format
+msgid ""
+"Usage:\t%s [GNU long option] [option] ...\n"
+"\t%s [GNU long option] [option] script-file ...\n"
+msgstr ""
+"Brug:\t%s [langt GNU-tilvalg] [tilvalg] ...\n"
+"\t%s [langt GNU-tilvalg] [tilvalg] skript-fil ...\n"
+
+#: shell.c:1798
+msgid "GNU long options:\n"
+msgstr "Lange GNU-tilvalg:\n"
+
+#: shell.c:1802
+msgid "Shell options:\n"
+msgstr "Skal-tilvalg:\n"
+
+#: shell.c:1803
+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
+#, c-format
+msgid "\t-%s or -o option\n"
+msgstr "\tTilvalg -%s eller -o\n"
+
+#: shell.c:1824
+#, 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"
+
+#: shell.c:1825
+#, 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"
+
+#: shell.c:1826
+#, c-format
+msgid "Use the `bashbug' command to report bugs.\n"
+msgstr "Brug kommandoen \"bashbug\" til at rapportere fejl.\n"
+
+#: sig.c:638
+#, c-format
+msgid "sigprocmask: %d: invalid operation"
+msgstr "sigprocmask: %d: ugyldig handling"
+
+#: siglist.c:48
+msgid "Bogus signal"
+msgstr "Falsk signal"
+
+#: siglist.c:51
+msgid "Hangup"
+msgstr "Læg på"
+
+#: siglist.c:55
+msgid "Interrupt"
+msgstr "Afbryd"
+
+#: siglist.c:59
+msgid "Quit"
+msgstr "Afslut"
+
+#: siglist.c:63
+msgid "Illegal instruction"
+msgstr "Ugyldig instruktion"
+
+#: siglist.c:67
+msgid "BPT trace/trap"
+msgstr "BPT-spor/fang"
+
+#: siglist.c:75
+msgid "ABORT instruction"
+msgstr "ABORT-instruktion"
+
+#: siglist.c:79
+msgid "EMT instruction"
+msgstr "EMT-instruktion"
+
+#: siglist.c:83
+msgid "Floating point exception"
+msgstr "Kommatalsundtagelse"
+
+#: siglist.c:87
+msgid "Killed"
+msgstr "Slået ihjel"
+
+#: siglist.c:91
+msgid "Bus error"
+msgstr "Bus-fejl"
+
+#: siglist.c:95
+msgid "Segmentation fault"
+msgstr "Segmenteringsfejl"
+
+#: siglist.c:99
+msgid "Bad system call"
+msgstr "Ugyldigt systemkald"
+
+#: siglist.c:103
+msgid "Broken pipe"
+msgstr "Ødelagt datakanal"
+
+#: siglist.c:107
+msgid "Alarm clock"
+msgstr "Alarmklokke"
+
+#: siglist.c:111
+msgid "Terminated"
+msgstr "Afsluttet"
+
+#: siglist.c:115
+msgid "Urgent IO condition"
+msgstr "Presserende IO-forhold"
+
+#: siglist.c:119
+msgid "Stopped (signal)"
+msgstr "Stoppet (signal)"
+
+#: siglist.c:127
+msgid "Continue"
+msgstr "Fortsæt"
+
+#: siglist.c:135
+msgid "Child death or stop"
+msgstr "Død eller stop af underproces"
+
+#: siglist.c:139
+msgid "Stopped (tty input)"
+msgstr "Stoppet (tty-input)"
+
+#: siglist.c:143
+msgid "Stopped (tty output)"
+msgstr "Stoppet (tty-output)"
+
+#: siglist.c:147
+msgid "I/O ready"
+msgstr "I/O klar"
+
+#: siglist.c:151
+msgid "CPU limit"
+msgstr "CPU-grænse"
+
+#: siglist.c:155
+msgid "File limit"
+msgstr "Filgrænse"
+
+#: siglist.c:159
+msgid "Alarm (virtual)"
+msgstr "Alarm (virtuel)"
+
+#: siglist.c:163
+msgid "Alarm (profile)"
+msgstr "Alarm (profil)"
+
+#: siglist.c:167
+msgid "Window changed"
+msgstr "Vindue ændret"
+
+# I fejlrapport for at få meningen
+#: siglist.c:171
+msgid "Record lock"
+msgstr "Optag lås"
+
+#: siglist.c:175
+msgid "User signal 1"
+msgstr "Brugersignal 1"
+
+#: siglist.c:179
+msgid "User signal 2"
+msgstr "Brugersignal 2"
+
+# Fejlrapport
+#: siglist.c:183
+msgid "HFT input data pending"
+msgstr "HFT-inputdata afventer"
+
+#: siglist.c:187
+msgid "power failure imminent"
+msgstr "strømsvigt nært forestående"
+
+#: siglist.c:191
+msgid "system crash imminent"
+msgstr "systemnedbrud nært forestående"
+
+#: siglist.c:195
+msgid "migrate process to another CPU"
+msgstr "flyt proces til en anden CPU"
+
+#: siglist.c:199
+msgid "programming error"
+msgstr "programmeringsfejl"
+
+#: siglist.c:203
+msgid "HFT monitor mode granted"
+msgstr "HFT-skærmtilstand tildelt"
+
+#: siglist.c:207
+msgid "HFT monitor mode retracted"
+msgstr "HFT-skærmtilstand trukket tilbage"
+
+#: siglist.c:211
+msgid "HFT sound sequence has completed"
+msgstr "HFT-lydsekvens er afsluttet"
+
+#: siglist.c:215
+msgid "Information request"
+msgstr "Informationsforespørgsel"
+
+#: siglist.c:223
+msgid "Unknown Signal #"
+msgstr "Ukendt signal #"
+
+#: siglist.c:225
+#, c-format
+msgid "Unknown Signal #%d"
+msgstr "Ukendt signal #%d"
+
+#: subst.c:1333 subst.c:1502
+#, c-format
+msgid "bad substitution: no closing `%s' in %s"
+msgstr "dårlig udskiftning: ingen lukkende \"%s\" i %s"
+
+#: subst.c:2795
+#, c-format
+msgid "%s: cannot assign list to array member"
+msgstr "%s: kan ikke tildele liste til arrayelementer"
+
+#: subst.c:4979 subst.c:4995
+msgid "cannot make pipe for process substitution"
+msgstr "kan ikke lave datakanal (pipe) til procesudskiftning"
+
+#: subst.c:5027
+msgid "cannot make child for process substitution"
+msgstr "kan ikke danne underproces til procesudskiftning"
+
+#: subst.c:5072
+#, c-format
+msgid "cannot open named pipe %s for reading"
+msgstr "kan ikke åbne navngiven datakanal (pipe) %s til læsning"
+
+#: subst.c:5074
+#, c-format
+msgid "cannot open named pipe %s for writing"
+msgstr "kan ikke åbne navngiven datakanal (pipe) %s til skrivning"
+
+#: subst.c:5092
+#, c-format
+msgid "cannot duplicate named pipe %s as fd %d"
+msgstr "kan ikke duplikere navngiven datakanal (pipe) %s som %d"
+
+#: subst.c:5284
+msgid "cannot make pipe for command substitution"
+msgstr "kan ikke danne datakanal (pipe) til kommandoudskiftning"
+
+#: subst.c:5322
+msgid "cannot make child for command substitution"
+msgstr "kan ikke danne underproces til kommandoudskiftning"
+
+#: subst.c:5339
+msgid "command_substitute: cannot duplicate pipe as fd 1"
+msgstr "command_substitute: kan ikke duplikere datakanal (pipe) som fd 1"
+
+#: subst.c:5859
+#, c-format
+msgid "%s: parameter null or not set"
+msgstr "%s: parameter null eller ikke indstillet"
+
+#: subst.c:6125 subst.c:6140
+#, c-format
+msgid "%s: substring expression < 0"
+msgstr "%s: understreng-udtryk < 0"
+
+#: subst.c:7271
+#, c-format
+msgid "%s: bad substitution"
+msgstr "%s: dårlig udskiftning"
+
+#: subst.c:7347
+#, 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"
+msgstr ""
+
+#: subst.c:8149
+#, c-format
+msgid "bad substitution: no closing \"`\" in %s"
+msgstr "dårlig udskiftning: ingen lukkende \"`\" i %s"
+
+#: subst.c:9036
+#, c-format
+msgid "no match: %s"
+msgstr "intet match: %s"
+
+#: test.c:146
+msgid "argument expected"
+msgstr "argument forventet"
+
+#: test.c:155
+#, c-format
+msgid "%s: integer expression expected"
+msgstr "%s: heltalsudtryk forventet"
+
+#: test.c:263
+msgid "`)' expected"
+msgstr "\")\" forventet"
+
+#: test.c:265
+#, c-format
+msgid "`)' expected, found %s"
+msgstr "\")\" forventet, fandt %s"
+
+#: test.c:280 test.c:698 test.c:701
+#, c-format
+msgid "%s: unary operator expected"
+msgstr "%s: unær operator forventet"
+
+#: test.c:449 test.c:741
+#, c-format
+msgid "%s: binary operator expected"
+msgstr "%s: binær operator forventet"
+
+#: test.c:816
+msgid "missing `]'"
+msgstr "manglende \"]\""
+
+#: trap.c:207
+msgid "invalid signal number"
+msgstr "ugyldigt signalnummer"
+
+#: trap.c:337
+#, 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
+#, 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"
+
+#: trap.c:393
+#, c-format
+msgid "trap_handler: bad signal %d"
+msgstr "trap_handler: ugyldigt signal %d"
+
+#: variables.c:363
+#, c-format
+msgid "error importing function definition for `%s'"
+msgstr "fejl under importering af funktionsdefinition for \"%s\""
+
+#: variables.c:755
+#, c-format
+msgid "shell level (%d) too high, resetting to 1"
+msgstr "skalniveau (%d) for højt, genindstiller til 1"
+
+#: variables.c:1932
+msgid "make_local_variable: no function context at current scope"
+msgstr "make_local_variable: ingen funktionskontekst ved nuværende navneområde"
+
+#: variables.c:3182
+msgid "all_local_variables: no function context at current scope"
+msgstr "all_local_variables: ingen funktionskontekst ved nuværende navneområde"
+
+#: variables.c:3427
+#, fuzzy, c-format
+msgid "%s has null exportstr"
+msgstr "%s: parameter null eller ikke indstillet"
+
+#: variables.c:3432 variables.c:3441
+#, c-format
+msgid "invalid character %d in exportstr for %s"
+msgstr "ugyldigt tegn %d i exportstr for %s"
+
+#: variables.c:3447
+#, c-format
+msgid "no `=' in exportstr for %s"
+msgstr "intet \"=\" i exportstr for %s"
+
+#: variables.c:3891
+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
+msgid "pop_var_context: no global_variables context"
+msgstr "pop_var_context: ingen global_variables-kontekst"
+
+#: variables.c:3978
+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"
+
+#: variables.c:4786
+#, fuzzy, c-format
+msgid "%s: %s: cannot open as FILE"
+msgstr "%s: kan ikke åbne: %s"
+
+#: variables.c:4791
+#, fuzzy, c-format
+msgid "%s: %s: invalid value for trace file descriptor"
+msgstr "%d: ugyldig filbeskrivelse: %s"
+
+#: version.c:46
+#, fuzzy
+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"
+
+#: version.c:86 version2.c:83
+#, c-format
+msgid "GNU bash, version %s (%s)\n"
+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 "Dette er fri software; du kan frit ændre eller redistribuere det.\n"
+
+#: version.c:92 version2.c:89
+#, c-format
+msgid "There is NO WARRANTY, to the extent permitted by law.\n"
+msgstr "Der er INGEN GARANTI i det omfang loven tillader.\n"
+
+#: version2.c:86
+#, fuzzy, c-format
+msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n"
+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"
+
+#: xmalloc.c:91
+#, fuzzy, c-format
+msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: kan ikke allokere %lu bytes (%lu bytes allokeret)"
+
+#: xmalloc.c:93
+#, fuzzy, c-format
+msgid "%s: cannot allocate %lu bytes"
+msgstr "xmalloc: kan ikke allokere %lu bytes"
+
+#: xmalloc.c:163
+#, fuzzy, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
+msgstr "xmalloc: %s:%d: kan ikke allokere %lu bytes (%lu bytes allokeret)"
+
+#: xmalloc.c:165
+#, fuzzy, c-format
+msgid "%s: %s:%d: cannot allocate %lu bytes"
+msgstr "xmalloc: %s:%d: kan ikke allokere %lu bytes"
+
+#: builtins.c:43
+msgid "alias [-p] [name[=value] ... ]"
+msgstr "alias [-p] [navn[=værdi] ... ]"
+
+#: builtins.c:47
+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]"
+
+#: builtins.c:54
+msgid "break [n]"
+msgstr "break [n]"
+
+#: builtins.c:56
+msgid "continue [n]"
+msgstr "continue [n]"
+
+#: builtins.c:58
+msgid "builtin [shell-builtin [arg ...]]"
+msgstr "builtin [shell-builtin [arg ...]]"
+
+#: builtins.c:61
+msgid "caller [expr]"
+msgstr "caller [expr]"
+
+#: builtins.c:64
+#, fuzzy
+msgid "cd [-L|[-P [-e]]] [dir]"
+msgstr "cd [-L|-P] [mappe]"
+
+#: builtins.c:66
+msgid "pwd [-LP]"
+msgstr "pwd [-LP]"
+
+#: builtins.c:68
+msgid ":"
+msgstr ":"
+
+#: builtins.c:70
+msgid "true"
+msgstr "true"
+
+#: builtins.c:72
+msgid "false"
+msgstr "false"
+
+#: builtins.c:74
+msgid "command [-pVv] command [arg ...]"
+msgstr "command [-pVv] kommando [arg ...]"
+
+#: builtins.c:76
+#, fuzzy
+msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
+msgstr "declare [-aAfFilrtux] [-p] [navn[=værdi] ...]"
+
+#: builtins.c:78
+#, fuzzy
+msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
+msgstr "typeset [-aAfFilrtux] [-p] navn[=værdi] ..."
+
+#: builtins.c:80
+msgid "local [option] name[=value] ..."
+msgstr "local [tilvalg] navn[=værdi] ..."
+
+#: builtins.c:83
+msgid "echo [-neE] [arg ...]"
+msgstr "echo [-neE] [arg ...]"
+
+#: builtins.c:87
+msgid "echo [-n] [arg ...]"
+msgstr "echo [-n] [arg ...]"
+
+#: builtins.c:90
+msgid "enable [-a] [-dnps] [-f filename] [name ...]"
+msgstr "enable [-a] [-dnps] [-f filnavn] [navn ...]"
+
+#: builtins.c:92
+msgid "eval [arg ...]"
+msgstr "eval [arg ...]"
+
+#: builtins.c:94
+msgid "getopts optstring name [arg]"
+msgstr "getopts tilvalgsstreng navn [arg]"
+
+#: builtins.c:96
+msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
+msgstr "exec [-cl] [-a navn] [kommando [argumenter ...]] [videresendelse ...]"
+
+#: builtins.c:98
+msgid "exit [n]"
+msgstr "exit [n]"
+
+#: builtins.c:100
+msgid "logout [n]"
+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]"
+
+#: builtins.c:107
+msgid "fg [job_spec]"
+msgstr "fg [job_spec]"
+
+#: builtins.c:111
+msgid "bg [job_spec ...]"
+msgstr "bg [job_spec ...]"
+
+#: builtins.c:114
+msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
+msgstr "hash [-lr] [-p stinavn] [-dt] [navn ...]"
+
+#: builtins.c:117
+#, fuzzy
+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...]"
+
+#: builtins.c:125
+msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
+msgstr "jobs [-lnprs] [jobspec ...] eller jobs -x kommando [arger]"
+
+#: builtins.c:129
+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]"
+
+#: builtins.c:134
+msgid "let arg [arg ...]"
+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 ...]"
+
+#: builtins.c:138
+msgid "return [n]"
+msgstr "return [n]"
+
+#: builtins.c:140
+#, fuzzy
+msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
+msgstr "set [--abefhkmnptuvxBCHP] [-o tilvalgsnavn] [arg ...]"
+
+#: builtins.c:142
+msgid "unset [-f] [-v] [name ...]"
+msgstr "unset [-f] [-v] [navn ...]"
+
+#: builtins.c:144
+msgid "export [-fn] [name[=value] ...] or export -p"
+msgstr "export [-fn] [navn[=værdi] ...] eller export -p"
+
+#: builtins.c:146
+#, fuzzy
+msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
+msgstr "readonly [-af] [navn[=værdi] ...] eller readonly -p"
+
+#: builtins.c:148
+msgid "shift [n]"
+msgstr "shift [n]"
+
+#: builtins.c:150
+msgid "source filename [arguments]"
+msgstr "source filnavn [argumenter]"
+
+#: builtins.c:152
+msgid ". filename [arguments]"
+msgstr ". filnavn [argumenter]"
+
+#: builtins.c:155
+msgid "suspend [-f]"
+msgstr "suspend [-f]"
+
+#: builtins.c:158
+msgid "test [expr]"
+msgstr "test [udtryk]"
+
+#: builtins.c:160
+msgid "[ arg... ]"
+msgstr "[ arg... ]"
+
+#: builtins.c:162
+msgid "times"
+msgstr "times"
+
+#: builtins.c:164
+msgid "trap [-lp] [[arg] signal_spec ...]"
+msgstr "trap [-lp] [[arg] signal_spec ...]"
+
+#: builtins.c:166
+msgid "type [-afptP] name [name ...]"
+msgstr "type [-afptP] navn [navn ...]"
+
+#: builtins.c:169
+msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [grænse]"
+
+#: builtins.c:172
+msgid "umask [-p] [-S] [mode]"
+msgstr "umask [-p] [-S] [tilstand]"
+
+#: builtins.c:175
+msgid "wait [id]"
+msgstr "wait [id]"
+
+#: builtins.c:179
+msgid "wait [pid]"
+msgstr "wait [pid]"
+
+#: builtins.c:182
+msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
+msgstr "for NAVN [in ORD ... ] ; do KOMMANDOER; done"
+
+#: builtins.c:184
+msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
+msgstr "for (( udtryk1; udtryk2; udtryk3 )); do KOMMANDOER; done"
+
+#: builtins.c:186
+msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
+msgstr "select NAVN [in ORD ... ;] do KOMMANDOER; done"
+
+#: builtins.c:188
+msgid "time [-p] pipeline"
+msgstr "time [-p] datakanal"
+
+#: builtins.c:190
+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"
+
+#: builtins.c:194
+msgid "while COMMANDS; do COMMANDS; done"
+msgstr "while KOMMANDOER; do KOMMANDOER; done"
+
+#: builtins.c:196
+msgid "until COMMANDS; do COMMANDS; done"
+msgstr "until KOMMANDOER; do KOMMANDOER; done"
+
+#: builtins.c:198
+msgid "coproc [NAME] command [redirections]"
+msgstr "coproc [NAVN] kommando [videresendelser]"
+
+#: builtins.c:200
+msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
+msgstr "function navn { KOMMANDOER ; } eller navn () { KOMMANDOER ; }"
+
+#: builtins.c:202
+msgid "{ COMMANDS ; }"
+msgstr "{ KOMMANDOER ; }"
+
+#: builtins.c:204
+msgid "job_spec [&]"
+msgstr "job_spec [&]"
+
+#: builtins.c:206
+msgid "(( expression ))"
+msgstr "(( udtryk ))"
+
+#: builtins.c:208
+msgid "[[ expression ]]"
+msgstr "[[ udtryk ]]"
+
+#: builtins.c:210
+msgid "variables - Names and meanings of some shell variables"
+msgstr "variables - Navn og betydning af nogle skalvariable"
+
+#: builtins.c:213
+msgid "pushd [-n] [+N | -N | dir]"
+msgstr "pushd [-n] [+N | -N | mappe]"
+
+#: builtins.c:217
+msgid "popd [-n] [+N | -N]"
+msgstr "popd [-n] [+N | -N]"
+
+#: builtins.c:221
+msgid "dirs [-clpv] [+N] [-N]"
+msgstr "dirs [-clpv] [+N] [-N]"
+
+#: builtins.c:224
+msgid "shopt [-pqsu] [-o] [optname ...]"
+msgstr "shopt [-pqsu] [-o] [indstnavn ...]"
+
+#: builtins.c:226
+msgid "printf [-v var] format [arguments]"
+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 ...]"
+
+#: 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]"
+
+#: builtins.c:237
+#, fuzzy
+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]"
+
+#: 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]"
+
+#: builtins.c:254
+msgid ""
+"Define or display aliases.\n"
+" \n"
+" Without arguments, `alias' prints the list of aliases in the reusable\n"
+" form `alias NAME=VALUE' on standard output.\n"
+" \n"
+" Otherwise, an alias is defined for each NAME whose VALUE is given.\n"
+" A trailing space in VALUE causes the next word to be checked for\n"
+" alias substitution when the alias is expanded.\n"
+" \n"
+" Options:\n"
+" -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"
+" defined."
+msgstr ""
+"Definer eller vis aliasser.\n"
+" \n"
+" Uden argumenter vil \"alias\" udskrive en liste af aliasser på den\n"
+" genanvendelige form alias NAVN=VÆRDI til standardoutput.\n"
+" \n"
+" Ellers vil der blive defineret et alias for hvert NAVN, som der er an-\n"
+" givet en VÆRDI til. Et efterfølgende mellemrum i VÆRDI vil medføre,\n"
+" at det næste ord vil blive kontrolleret for alias-udskiftning, når\n"
+" aliasset udvides.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tUdskriver alle definerede aliasser i et genanvendelig format\n"
+" \n"
+" Afslutningsstatus:\n"
+" alias returnerer sand med mindre der gives et NAVN som der ikke er\n"
+" defineret noget alias for."
+
+#: builtins.c:276
+msgid ""
+"Remove each NAME from the list of defined aliases.\n"
+" \n"
+" Options:\n"
+" -a\tremove all alias definitions.\n"
+" \n"
+" Return success unless a NAME is not an existing alias."
+msgstr ""
+"Fjern hvert NAVN fra listen af definerede aliasser.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tfjern alle aliasdefinitioner.\n"
+" \n"
+" Returner succes med mindre et NAVN ikke er et eksisterende alias."
+
+#: builtins.c:289
+msgid ""
+"Set Readline key bindings and variables.\n"
+" \n"
+" Bind a key sequence to a Readline function or a macro, or set a\n"
+" Readline variable. The non-option argument syntax is equivalent to\n"
+" that found in ~/.inputrc, but must be passed as a single argument:\n"
+" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" 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"
+" 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"
+" 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"
+" -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"
+" \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"
+" 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"
+" 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"
+" 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"
+" 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"
+" genbruges som inddata.\n"
+" -q funktionsnavn Forespørg hvilke taster der udfører den navngivne \n"
+" funktion.\n"
+" -u funktionsnavn Løsn alle taster som er bundet til den navngivne\n"
+" funktion.\n"
+" -r tastesekv Fjern bindingen for TASTESEKV.\n"
+" -f filnavn Indlæs tastetildeling fra FILNAVN.\n"
+" -x tastesekv:skalkommando\tMedfører at SKALKOMMANDO udføres når \n"
+" \t\t\t\tTASTESEKV trykkes.\n"
+" \n"
+" Afslutningsstatus:\n"
+" bind returnerer 0 med mindre et ugenkendt tilvalg angives, eller hvis der\n"
+" opstår en fejl."
+
+#: builtins.c:326
+msgid ""
+"Exit for, while, or until loops.\n"
+" \n"
+" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n"
+" loops.\n"
+" \n"
+" Exit Status:\n"
+" The exit status is 0 unless N is not greater than or equal to 1."
+msgstr ""
+"Afslut for-, while- eller until-løkker.\n"
+" \n"
+" Afslut en FOR, WHILE eller UNTIL-løkke. Hvis N er angivet, afbrydes N\n"
+" indlejrede løkker.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med 1."
+
+#: builtins.c:338
+msgid ""
+"Resume for, while, or until loops.\n"
+" \n"
+" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n"
+" If N is specified, resumes the Nth enclosing loop.\n"
+" \n"
+" Exit Status:\n"
+" The exit status is 0 unless N is not greater than or equal to 1."
+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"
+" \n"
+" Afslutningsstatus:\n"
+" Afslutningsstatussen er 0 med mindre N ikke er større end eller lig med 1."
+
+#: builtins.c:350
+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"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
+" not a shell builtin.."
+msgstr ""
+"Eksekver en skal-indbygget funktion.\n"
+" \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"
+" inden i funktionen.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatussen for den SKAL-INDBYGGEDE, eller falsk hvis\n"
+" SKAL-INDBYGGET ikke er en skal-indbygget.."
+
+#: builtins.c:365
+msgid ""
+"Return the context of the current subroutine call.\n"
+" \n"
+" Without EXPR, returns \"$line $filename\". With EXPR, returns\n"
+" \"$line $subroutine $filename\"; this extra information can be used to\n"
+" provide a stack trace.\n"
+" \n"
+" The value of EXPR indicates how many call frames to go back before the\n"
+" current one; the top frame is frame 0.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 unless the shell is not executing a shell function or EXPR\n"
+" is invalid."
+msgstr ""
+"Returnerer konteksten af det nuværende underrutinekald.\n"
+"\n"
+" Uden UDTRYK returneres \"$line $filename\". Med UDTRYK returneres\n"
+" \"$line $subroutine $filename\". Den ekstra information\n"
+" kan bruges til at give at stakspor.\n"
+"\n"
+" Værdien af UDTRYK angiver hvor mange kalderammer der skal gås tilbage\n"
+" fra den nuværende. Toprammen er ramme 0.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer 0 med mindre skallen ikke eksekverer en skalfunktion eller hvis\n"
+" UDTRYK er ugyldigt."
+
+#: builtins.c:383
+#, fuzzy
+msgid ""
+"Change the shell working directory.\n"
+" \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"
+" 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"
+" its value is used for DIR.\n"
+" \n"
+" Options:\n"
+" -L\tforce symbolic links to be followed\n"
+" -P\tuse the physical directory structure without following symbolic\n"
+" \tlinks\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"
+" \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 ""
+"Ændrer skallens aktuelle mappe.\n"
+" \n"
+" Æ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"
+" 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"
+" 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"
+" værdi, så bruges denne som MAPPE.\n"
+"\n"
+" Tilvalg:\n"
+" -L\tgennemtving at symbolske lænker følges\n"
+" -P\tbrug den fysiske mappestruktur uden at følge symbolske lænker\n"
+" \n"
+" Som standard følges symbolske lænker, som om \"-L\" var valgt.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer 0 hvis mappen ændres, ellers noget forskellig fra 0."
+
+#: builtins.c:414
+msgid ""
+"Print the name of the current working directory.\n"
+" \n"
+" Options:\n"
+" -L\tprint the value of $PWD if it names the current working\n"
+" \tdirectory\n"
+" -P\tprint the physical directory, without any symbolic links\n"
+" \n"
+" By default, `pwd' behaves as if `-L' were specified.\n"
+" \n"
+" Exit Status:\n"
+" Returns 0 unless an invalid option is given or the current directory\n"
+" cannot be read."
+msgstr ""
+"Udskriver navnet for den aktuelle mappe.\n"
+" \n"
+" Tilvalg:\n"
+" -L\tudskriv værdien af $PWD hvis den indeholder den aktuelle mappe\n"
+" -P\tudskriv den fysiske mappe uden nogen symbolske lænker\n"
+" \n"
+" 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"
+" aktuelle mappe ikke kan læses."
+
+#: builtins.c:431
+msgid ""
+"Null command.\n"
+" \n"
+" No effect; the command does nothing.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Null-kommando.\n"
+" \n"
+" Ingen effekt, kommandoen gør intet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes altid succesfuldt."
+
+#: builtins.c:442
+msgid ""
+"Return a successful result.\n"
+" \n"
+" Exit Status:\n"
+" Always succeeds."
+msgstr ""
+"Returnerer et succesfuldt resultat.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes altid succesfuldt."
+
+#: builtins.c:451
+msgid ""
+"Return an unsuccessful result.\n"
+" \n"
+" Exit Status:\n"
+" Always fails."
+msgstr ""
+"Returnerer et mislykket resultat.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes altid mislykket."
+
+#: builtins.c:460
+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"
+" on disk when a function with the same name exists.\n"
+" \n"
+" Options:\n"
+" -p\tuse a default value for PATH that is guaranteed to find all of\n"
+" \tthe standard utilities\n"
+" -v\tprint a description of COMMAND similar to the `type' builtin\n"
+" -V\tprint a more verbose description of each COMMAND\n"
+" \n"
+" Exit Status:\n"
+" Returns exit status of COMMAND, or failure if COMMAND is not found."
+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"
+" fra disken, når en funktion af samme navn eksisterer.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tbrug en standardværdi for PATH som med garanti vil finde alle\n"
+" \tstandardværktøjerne\n"
+" -v\tudskriv en beskrivelse af KOMMANDO, i stil med den skal-\n"
+" \tindbyggede \"type\"\n"
+" -V\tUdskriv en større beskrivelse af hver kommando\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatus fra KOMMANDO eller mislykket hvis KOMMANDO\n"
+" ikke findes."
+
+#: builtins.c:479
+#, fuzzy
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Declare variables and give them attributes. If no NAMEs are given,\n"
+" display the attributes and values of all variables.\n"
+" \n"
+" Options:\n"
+" -f\trestrict action or display to function names and definitions\n"
+" -F\trestrict display to function names only (plus line number and\n"
+" \tsource file when debugging)\n"
+" -g\tcreate global variables when used in a shell function; otherwise\n"
+" \tignored\n"
+" -p\tdisplay the attributes and value of each NAME\n"
+" \n"
+" Options which set attributes:\n"
+" -a\tto make NAMEs indexed arrays (if supported)\n"
+" -A\tto make NAMEs associative arrays (if supported)\n"
+" -i\tto make NAMEs have the `integer' attribute\n"
+" -l\tto convert NAMEs to lower case on assignment\n"
+" -r\tto make NAMEs readonly\n"
+" -t\tto make NAMEs have the `trace' attribute\n"
+" -u\tto convert NAMEs to upper case on assignment\n"
+" -x\tto make NAMEs export\n"
+" \n"
+" Using `+' instead of `-' turns off the given attribute.\n"
+" \n"
+" 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"
+" 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 ""
+"Indstil variabelværdier og -attributter\n"
+" \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"
+" -f\tbegræns handling eller visning til funktionsnavne og\n"
+" \tdefinitioner\n"
+" -F\tbegræns visning til funktionsnavne (inklusive linjenummer og\n"
+" \tkildekodefil under fejlsøgning)\n"
+" -p\tvis attributter og værdi for hvert NAVN\n"
+" \n"
+" Tilvalg som indstiller attributter:\n"
+" -a\tfor at gøre NAVNE til indekserede arrays (hvis understøttet)\n"
+" -A\tfor at gøre NAVNE til associerede arrays (hvis understøttet)\n"
+" -i\tfor at give NAVNE \"integer\"-attributten\n"
+" -l\tkonverter NAVNE til små bogstaver ved tildeling\n"
+" -t\tfor at give NAVNE \"trace\"-attributten\n"
+" -u\tkonverter NAVNE til store bogstaver ved tildeling\n"
+" -x\tfor at eksportere NAVNE\n"
+" \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"
+" 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"
+" lokale, ligesom med \"local\"-kommandoen.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:517
+msgid ""
+"Set variable values and attributes.\n"
+" \n"
+" Obsolete. See `help declare'."
+msgstr ""
+"Indstil variabelværdier og -attributter.\n"
+" \n"
+" Forældet. Læs i \"help declare\"."
+
+#: builtins.c:525
+msgid ""
+"Define local variables.\n"
+" \n"
+" Create a local variable called NAME, and give it VALUE. OPTION can\n"
+" be any option accepted by `declare'.\n"
+" \n"
+" Local variables can only be used within a function; they are visible\n"
+" only to the function where they are defined and its children.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied, an error occurs,\n"
+" or the shell is not executing a function."
+msgstr ""
+"Definer lokale variable.\n"
+" \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"
+" 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
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs on the standard output followed by a newline.\n"
+" \n"
+" Options:\n"
+" -n\tdo not append a newline\n"
+" -e\tenable interpretation of the following backslash escapes\n"
+" -E\texplicitly suppress interpretation of backslash escapes\n"
+" \n"
+" `echo' interprets the following backslash-escaped characters:\n"
+" \\a\talert (bell)\n"
+" \\b\tbackspace\n"
+" \\c\tsuppress further output\n"
+" \\e\tescape character\n"
+" \\f\tform feed\n"
+" \\n\tnew line\n"
+" \\r\tcarriage return\n"
+" \\t\thorizontal tab\n"
+" \\v\tvertical tab\n"
+" \\\\\tbackslash\n"
+" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n"
+" \t0 to 3 octal digits\n"
+" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n"
+" \tcan be one or two hex digits\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless a write error occurs."
+msgstr ""
+"Skriv argumenter til standardoutput.\n"
+" \n"
+" Vis ARGer fra standardoutput, efterfulgt af et nylinjetegn.\n"
+" \n"
+" Tilvalg:\n"
+" -n vedhæft ikke nylinjetegn\n"
+" -e aktiver fortolkning af de følgende undvigesekvenser med\n"
+" omvendt skråstreg\n"
+" -E\tundertryk eksplicit fortolkningen af undvigesekvenser med\n"
+" \tomvendt skråstreg\n"
+"\n"
+" \"echo\" fortolker følgende undvigesekvenser med omvendt skråstreg\n"
+" \\a\talarm (klokke)\n"
+" \\b\ttilbageryk (backspace)\n"
+" \\c\tundertryk yderligere output\n"
+" \\e\tescape-tegn\n"
+" \\f\tsideskift (form feed)\n"
+" \\n\tny linje\n"
+" \\r\tlinjeskift (carrige return)\n"
+" \\t\thorisontalt tab\n"
+" \\v\tvertikalt tab\n"
+" \\\\\tomvendt skråstreg\n"
+" \\0nnn\tdet tegn hvis ASCII-kode er NNN (oktalt). NNN kan have 0-3\n"
+" \toktale cifre\n"
+" \\xHH\tdet 8 bit tegn hvis værdi er HH (heksadecimalt). HH kan have\n"
+" \tet eller to heksadecimale cifre\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der opstår en skrivefejl."
+
+#: builtins.c:576
+msgid ""
+"Write arguments to the standard output.\n"
+" \n"
+" Display the ARGs on the standard output followed by a newline.\n"
+" \n"
+" Options:\n"
+" -n\tdo not append a newline\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless a write error occurs."
+msgstr ""
+"Skriv argumenter til standardoutput.\n"
+" \n"
+" Vis ARGer til standard output, efterfulgt af et nylinjetegn.\n"
+" \n"
+" Tilvalg:\n"
+" -n\tvedhæft ikke et nylinjetegn\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der opstår en skrivefejl."
+
+#: builtins.c:591
+msgid ""
+"Enable and disable shell builtins.\n"
+" \n"
+" Enables and disables builtin shell commands. Disabling allows you to\n"
+" execute a disk command which has the same name as a shell builtin\n"
+" without using a full pathname.\n"
+" \n"
+" Options:\n"
+" -a\tprint a list of builtins showing whether or not each is enabled\n"
+" -n\tdisable each NAME or display a list of disabled builtins\n"
+" -p\tprint the list of builtins in a reusable format\n"
+" -s\tprint only the names of Posix `special' builtins\n"
+" \n"
+" Options controlling dynamic loading:\n"
+" -f\tLoad builtin NAME from shared object FILENAME\n"
+" -d\tRemove a builtin loaded with -f\n"
+" \n"
+" Without options, each NAME is enabled.\n"
+" \n"
+" To use the `test' found in $PATH instead of the shell builtin\n"
+" version, type `enable -n test'.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless NAME is not a shell builtin or an error occurs."
+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"
+" uden at bruge et fuldt stinavn.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tudskriver en liste over indbyggede, uanset om de er slået til\n"
+" -n\tdeaktiver hvert NAVN eller vis en liste af deaktiverede funk-\n"
+" \ttioner\n"
+" -p\tudskriv en liste over indbyggede i et genanvendeligt format\n"
+" -s\tudskriv kun navne for \"specielle\" Posix-indbyggede\n"
+" \n"
+" Tilvalg som kontrollerer dynamisk indlæsning:\n"
+" -f\tIndlæs indbygget NAVN fra det delte objekt FILNAVN\n"
+" -d\tFjern en indbygget indlæst med -f\n"
+" \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"
+" 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
+msgid ""
+"Execute arguments as a shell command.\n"
+" \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 ""
+"Eksekver argumenter som en skalkommando.\n"
+" \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"
+" null."
+
+#: builtins.c:631
+msgid ""
+"Parse option arguments.\n"
+" \n"
+" Getopts is used by shell procedures to parse positional parameters\n"
+" as options.\n"
+" \n"
+" OPTSTRING contains the option letters to be recognized; if a letter\n"
+" is followed by a colon, the option is expected to have an argument,\n"
+" which should be separated from it by white space.\n"
+" \n"
+" Each time it is invoked, getopts will place the next option in the\n"
+" shell variable $name, initializing name if it does not exist, and\n"
+" the index of the next argument to be processed into the shell\n"
+" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n"
+" a shell script is invoked. When an option requires an argument,\n"
+" getopts places that argument into the shell variable OPTARG.\n"
+" \n"
+" getopts reports errors in one of two ways. If the first character\n"
+" of OPTSTRING is a colon, getopts uses silent error reporting. In\n"
+" this mode, no error messages are printed. If an invalid option is\n"
+" seen, getopts places the option character found into OPTARG. If a\n"
+" required argument is not found, getopts places a ':' into NAME and\n"
+" sets OPTARG to the option character found. If getopts is not in\n"
+" silent mode, and an invalid option is seen, getopts places '?' into\n"
+" NAME and unsets OPTARG. If a required argument is not found, a '?'\n"
+" is placed in NAME, OPTARG is unset, and a diagnostic message is\n"
+" printed.\n"
+" \n"
+" If the shell variable OPTERR has the value 0, getopts disables the\n"
+" printing of error messages, even if the first character of\n"
+" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n"
+" \n"
+" Getopts normally parses the positional parameters ($0 - $9), but if\n"
+" more arguments are given, they are parsed instead.\n"
+" \n"
+" Exit Status:\n"
+" Returns success if an option is found; fails if the end of options is\n"
+" encountered or an error occurs."
+msgstr ""
+"Fortolkning af tilvalgsargumenter\n"
+" \n"
+" Getopts bruges af skalprocedurer til at tolke positionsparametre og\n"
+" tilvalg.\n"
+" \n"
+" OPTSTRING indeholder de tilvalg, som skal genkendes. Hvis et bogstav\n"
+" følges af et kolon, forventes det at tilvalget har et argument, som\n"
+" skal adskilles fra tilvalget med et mellemrum.\n"
+" \n"
+" Hver gang getopts kaldes, vil den placere det næste tilvalg i skal-\n"
+" variablen $name, og initialisere $name, hvis den ikke eksisterer, og\n"
+" putte indekset for det næste argument, som skal behandles, ind i\n"
+" skalvariablen OPTIND. OPTIND initialiseres til 1 hver gang skallen\n"
+" eller et skalskript kaldes. Hvis tilvalget kræver et argument, vil\n"
+" getopts placere argumentet i skalvariablen OPTARG.\n"
+" \n"
+" getopts rapporterer fejl på en af to forskellige måder. Hvis det\n"
+" første tegn i OPTSTRENG er et kolon, vil getopts bruge stille fejl-\n"
+" rapportering. I denne tilstand vil fejlbeskeder ikke blive\n"
+" udskrevet. Hvis der angives et ugyldigt tilvalg, vil getopts placere\n"
+" tilvalgstegnet i OPTARG. Hvis et påkrævet argument ikke bliver\n"
+" fundet, vil getopts placere et \":\" i NAVN og sætte OPTARG til det\n"
+" fundne tilvalgstegn. Hvis getopts ikke er i stille tilstand og der\n"
+" angives et ugyldigt tilvalg, vil getopts placere \"?\" i NAVN og\n"
+" fjerne (unset) OPTARG. Hvis et påkrævet argument ikke findes, vil\n"
+" der blive placeret et \"?\" i NAVN og OPTARG vil blive fjernet\n"
+" (unset) og en diagnosebesked vil blive udskrevet.\n"
+" \n"
+" Hvis skalvariablen OPTERR har værdien 0, vil udskrivningen af fejl-\n"
+" beskeder blive slået fra i getopts, også selv om det første tegn i\n"
+" OPTSTRING ikke er et kolon. OPTERR har værdien 1 som standard.\n"
+" \n"
+" Normalt vil getopts tolke de positionelle parametre ($0 - $9), men\n"
+" hvis der angives flere argumenter end dette, vil de blive tolket i\n"
+" stedet for.\n"
+" \n"
+" Afslutningsstatus\n"
+" Returnerer succes hvis et tilvalg findes, fejler hvis afslutningen\n"
+" af tilvalgene nås eller hvis der opstår en fejl."
+
+#: builtins.c:673
+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"
+" any redirections take effect in the current shell.\n"
+" \n"
+" Options:\n"
+" -a name\tpass NAME as the zeroth argument to COMMAND\n"
+" -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"
+" the shell option `execfail' is set.\n"
+" \n"
+" Exit Status:\n"
+" 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"
+" alle omdirigeringer træde i kraft i den aktuelle skal.\n"
+" \n"
+" Tilvalg:\n"
+" -a\tnavn\tangiv NAVN som det nulte argument til KOMMANDO\n"
+" -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"
+" med mindre skal-tilvalget \"execfail\" angives\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes succesfuldt med mindre KOMMANDO ikke kan findes, eller hvis der\n"
+" opstår en omdirigeringsfejl."
+
+#: builtins.c:694
+msgid ""
+"Exit the shell.\n"
+" \n"
+" Exits the shell with a status of N. If N is omitted, the exit status\n"
+" is that of the last command executed."
+msgstr ""
+"Afslut skallen.\n"
+" \n"
+" Afslut skallen med status N. Hvis N udelades vil afslutningsstatus\n"
+" blive den samme som sidst eksekverede kommando."
+
+#: builtins.c:703
+msgid ""
+"Exit a login shell.\n"
+" \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"
+" den ikke eksekveres i en logindskal."
+
+#: builtins.c:713
+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"
+" 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"
+" \t\tthen vi\n"
+" -l \tlist lines instead of editing\n"
+" -n\tomit line numbers when listing\n"
+" -r\treverse the order of the lines (newest listed first)\n"
+" \n"
+" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n"
+" re-executed after the substitution OLD=NEW is performed.\n"
+" \n"
+" A useful alias to use with this is r='fc -s', so that typing `r cc'\n"
+" runs the last command beginning with `cc' and typing `r' re-executes\n"
+" the last command.\n"
+" \n"
+" Exit Status:\n"
+" 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" der opstod en fejl."
+
+#: builtins.c:743
+msgid ""
+"Move job to the foreground.\n"
+" \n"
+" Place the job identified by JOB_SPEC in the foreground, making it the\n"
+" current job. If JOB_SPEC is not present, the shell's notion of the\n"
+" current job is used.\n"
+" \n"
+" Exit Status:\n"
+" Status of command placed in foreground, or failure if an error occurs."
+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, blive brugt.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Status af den kommando der placeres i forgrunden eller mislykket hvis der\n"
+" opstår fejl."
+
+#: builtins.c:758
+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"
+" of the current job is used.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless job control is not enabled or an error occurs."
+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"
+" det nuværende job, blive brugt.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes succesfuldt medmindre jobkontrol ikke er slået til, eller hvis\n"
+" der opstår en fejl."
+
+#: builtins.c:772
+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"
+" \n"
+" Options:\n"
+" -d\t\tforget the remembered location of each NAME\n"
+" -l\t\tdisplay in a format that may be reused as input\n"
+" -p pathname\tuse PATHNAME is the full pathname of NAME\n"
+" -r\t\tforget all remembered locations\n"
+" -t\t\tprint the remembered location of each NAME, preceding\n"
+" \t\teach location with the corresponding NAME if multiple\n"
+" \t\tNAMEs are given\n"
+" Arguments:\n"
+" NAME\t\tEach NAME is searched for in $PATH and added to the list\n"
+" \t\tof remembered commands.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless NAME is not found or an invalid option is given."
+msgstr ""
+"Husk og vis programplaceringer.\n"
+" \n"
+" Afgør og husker det fulde stinavn for hver kommando-NAVN. Hvis der ikke\n"
+" gives noget argument, vil information om huskede kommandoer blive vist.\n"
+" \n"
+" Tilvalg:\n"
+" -d\t\tglem den huskede placering for hvert NAVN\n"
+" -l\t\tvis i et format som kan genanvendes\n"
+" -p stinavn\tbrug STINAVN som det fulde stinavn for NAVN\n"
+" -r\t\tglem alle huskede placeringer\n"
+" -t\t\tudskriv den huskede placering for hvert NAVN, med NAVNet\n"
+" \t\tudskrevet foran placeringen hvis flere NAVNe er angivet.\n"
+" Argumenter:\n"
+" NAVN\t\tDer søges efter hvert navn i $PATH og de tilføjes til\n"
+" \t\tlisten af huskede kommandoer.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afsluttes succesfuldt med mindre NAVN ikke kan findes, eller hvis der angives\n"
+" et ugyldig tilvalg."
+
+#: builtins.c:797
+msgid ""
+"Display information about builtin commands.\n"
+" \n"
+" Displays brief summaries of builtin commands. If PATTERN is\n"
+" specified, gives detailed help on all commands matching PATTERN,\n"
+" otherwise the list of help topics is printed.\n"
+" \n"
+" Options:\n"
+" -d\toutput short description for each topic\n"
+" -m\tdisplay usage in pseudo-manpage format\n"
+" -s\toutput only a short usage synopsis for each topic matching\n"
+" \tPATTERN\n"
+" \n"
+" Arguments:\n"
+" PATTERN\tPattern specifiying a help topic\n"
+" \n"
+" Exit Status:\n"
+" 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"
+" MØNSTER, ellers vil der blive udskrevet en liste over hjælpeemner.\n"
+" \n"
+" Tilvalg:\n"
+" -d\tudskriver kort beskrivelse for hvert emne\n"
+" -m\tviser brugsinformation i pseudo-mansideformat\n"
+" -s\tvis kun en kort synopsis for hvert emne som matcher MØNSTER\n"
+" \n"
+" Argumenter:\n"
+" MØNSTER\tMønster som specificerer et hjælpeemne\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre MØNSTER ikke kan findes, eller hvis der\n"
+" angives et ugyldigt tilvalg."
+
+#: builtins.c:821
+msgid ""
+"Display or manipulate the history list.\n"
+" \n"
+" Display the history list with line numbers, prefixing each modified\n"
+" entry with a `*'. An argument of N lists only the last N entries.\n"
+" \n"
+" Options:\n"
+" -c\tclear the history list by deleting all of the entries\n"
+" -d offset\tdelete the history entry at offset OFFSET.\n"
+" \n"
+" -a\tappend history lines from this session to the history file\n"
+" -n\tread all history lines not already read from the history file\n"
+" -r\tread the history file and append the contents to the history\n"
+" \tlist\n"
+" -w\twrite the current history to the history file\n"
+" \tand append them to the history list\n"
+" \n"
+" -p\tperform history expansion on each ARG and display the result\n"
+" \twithout storing it in the history list\n"
+" -s\tappend the ARGs to the history list as a single entry\n"
+" \n"
+" If FILENAME is given, it is used as the history file. Otherwise,\n"
+" if $HISTFILE has a value, that is used, else ~/.bash_history.\n"
+" \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"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or an error occurs."
+msgstr ""
+"Vis eller manipuler med historiklisten.\n"
+"\n"
+" Vis historikken med linjenumre. Linjer som vises med \"*\" er blevet\n"
+" ændret. Argumentet N gør at kun de N sidste linjer bliver vist.\n"
+" \n"
+" Tilvalg:\n"
+" -c\trydder historiklisten ved at slette alle elementer i den.\n"
+" -d forskydning\tsletter historik-elementet ved position FORSKYDNING.\n"
+" -a\tvedhæfter historiklinjer fra denne session til historikfilen.\n"
+" -n\tindlæser alle linjer fra historikfilen, som ikke allerede er\n"
+" \tindlæst\n"
+" -r\tindlæser historikfilen og føjer dens indhold til historiklisten\n"
+" -w\tskriver den nuværende historik til historikfilen og vedhæft dem\n"
+" \ttil historiklisten\n"
+" \n"
+" -p\tudfør en historikudvidelse på hvert enkelt ARG og udskriv\n"
+" \tresultatet uden at tilføje det til historikken\n"
+" -s\tvedhæft ARGer til historiklisten som et enkelt element\n"
+" \n"
+" Hvis FILENAVN er angivet, vil den blive brugt som historikfil,\n"
+" 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"
+" værdi blive brugt som formatstreng til strftime(3) til formatering af\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"
+" der opstår en fejl."
+
+#: builtins.c:857
+msgid ""
+"Display status of jobs.\n"
+" \n"
+" Lists the active jobs. JOBSPEC restricts output to that job.\n"
+" Without options, the status of all active jobs is displayed.\n"
+" \n"
+" Options:\n"
+" -l\tlists process IDs in addition to the normal information\n"
+" -n\tlist only processes that have changed status since the last\n"
+" \tnotification\n"
+" -p\tlists process IDs only\n"
+" -r\trestrict output to running jobs\n"
+" -s\trestrict output to stopped jobs\n"
+" \n"
+" If -x is supplied, COMMAND is run after all job specifications that\n"
+" appear in ARGS have been replaced with the process ID of that job's\n"
+" process group leader.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or an error occurs.\n"
+" If -x is used, returns the exit status of COMMAND."
+msgstr ""
+"Viser status af jobs.\n"
+" \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"
+" \n"
+" -l\tvis også proces-id'er ud over den normale information\n"
+" -n\tviser kun de processer, som har ændret status siden sidste\n"
+" \tpåmindelse\n"
+" -p\tviser udelukkende proces-id'er\n"
+" -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"
+" gruppeleder.\n"
+" \n"
+" Afslutningsstatus:\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
+msgid ""
+"Remove jobs from current shell.\n"
+" \n"
+" Removes each JOBSPEC argument from the table of active jobs. Without\n"
+" any JOBSPECs, the shell uses its notion of the current job.\n"
+" \n"
+" Options:\n"
+" -a\tremove all jobs if JOBSPEC is not supplied\n"
+" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n"
+" \tshell receives a SIGHUP\n"
+" -r\tremove only running jobs\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option or JOBSPEC is given."
+msgstr ""
+"Fjern jobs fra den aktuelle skal.\n"
+" \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"
+" -a\tfjern alle jobs hvis JOBSPEC ikke er angivet\n"
+" -h\tmarker hvert JOBSPEC således at SIGHUP ikke sendes til jobbet\n"
+" \thvis skallen modtager SIGHUP\n"
+" -r\tfjern kun kørende jobs\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre et ugyldigt tilvalg eller JOBSPEC angives."
+
+#: builtins.c:903
+msgid ""
+"Send a signal to a job.\n"
+" \n"
+" Send the processes identified by PID or JOBSPEC the signal named by\n"
+" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n"
+" SIGTERM is assumed.\n"
+" \n"
+" Options:\n"
+" -s sig\tSIG is a signal name\n"
+" -n sig\tSIG is a signal number\n"
+" -l\tlist the signal names; if arguments follow `-l' they are\n"
+" \tassumed to be signal numbers for which names should be listed\n"
+" \n"
+" Kill is a shell builtin for two reasons: it allows job IDs to be used\n"
+" instead of process IDs, and allows processes to be killed if the limit\n"
+" on processes that you can create is reached.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or an error occurs."
+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"
+" \n"
+" -s sig\tSIG er et signalnavn\n"
+" -n sig\tSIG er et signalnummer\n"
+" -l\tudskriver signalnavnene. Hvis der står argumenter efter \"-l\",\n"
+" \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"
+" 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"
+" opstår en fejl."
+
+#: builtins.c:926
+#, fuzzy
+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"
+" in order of decreasing precedence.\n"
+" \n"
+" \tid++, id--\tvariable post-increment, post-decrement\n"
+" \t++id, --id\tvariable pre-increment, pre-decrement\n"
+" \t-, +\t\tunary minus, plus\n"
+" \t!, ~\t\tlogical and bitwise negation\n"
+" \t**\t\texponentiation\n"
+" \t*, /, %\t\tmultiplication, division, remainder\n"
+" \t+, -\t\taddition, subtraction\n"
+" \t<<, >>\t\tleft and right bitwise shifts\n"
+" \t<=, >=, <, >\tcomparison\n"
+" \t==, !=\t\tequality, inequality\n"
+" \t&\t\tbitwise AND\n"
+" \t^\t\tbitwise XOR\n"
+" \t|\t\tbitwise OR\n"
+" \t&&\t\tlogical AND\n"
+" \t||\t\tlogical OR\n"
+" \texpr ? expr : expr\n"
+" \t\t\tconditional operator\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\tassignment\n"
+" \n"
+" Shell variables are allowed as operands. The name of the variable\n"
+" is replaced by its value (coerced to a fixed-width integer) within\n"
+" an expression. The variable need not have its integer attribute\n"
+" turned on to be used in an expression.\n"
+" \n"
+" Operators are evaluated in order of precedence. Sub-expressions in\n"
+" parentheses are evaluated first and may override the precedence\n"
+" rules above.\n"
+" \n"
+" Exit Status:\n"
+" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."
+msgstr ""
+"Evaluer aritmetiske udtryk.\n"
+" \n"
+" Hvert ARG er et aritmetisk udtryk som skal evalueres. Evalueringen\n"
+" bliver foretaget i heltal med fast-bredde, uden check for overløb,\n"
+" dog vil division med 0 blive fanget og markeret som en fejl. Den\n"
+" følgende liste af operatorer er vist i grupper med samme evaluerings-\n"
+" prioritet. Grupperne er vist med faldende prioritet.\n"
+" \n"
+" \tid++, id--\tpost-forøgelse og -formindskelse af variabel\n"
+" \t++id, --id\tpræ-forøgelse og -formindskelse af variabel\n"
+" \t-, +\t\tunær minus og plus\n"
+" \t!, ~\t\tlogisk og bitvis negation\n"
+" \t**\t\teksponentiering\n"
+" \t*, /, %\t\tmultiplikation, division, rest\n"
+" \t+, -\t\taddition, subtraktion\n"
+" \t<<, >>\t\tvenstre og højre bitvis skift\n"
+" \t<=, >=, <, >\tsammenligning\n"
+" \t==, !=\t\tlighed, ulighed\n"
+" \t&\t\tbitvis AND (OG)\n"
+" \t^\t\tbitvis XOR (EKSKLUSIVT ELLER)\n"
+" \t|\t\tbitvis OR (ELLER)\n"
+" \t&&\t\tlogisk AND (OG)\n"
+" \t||\t\tlogisk OR (ELLER)\n"
+" \texpr ? expr : expr\n"
+" \t\t\tbetingelsesoperator\n"
+" \t=, *=, /=, %=,\n"
+" \t+=, -=, <<=, >>=,\n"
+" \t&=, ^=, |=\ttildeling\n"
+" \n"
+" Skalvariable er tilladt som operander. Variablens navn vil blive\n"
+" erstattet af dens værdi (tilpasset så den er et heltal med fast-bredde)\n"
+" indeni udtrykket. Variablen skal have sin heltals-attribut slået til\n"
+" for, at den kan bruges i et udtryk.\n"
+" \n"
+" Operatorer vil blive evalueret efter prioritet. Underoperatorer i\n"
+" parenteser bliver evalueret først og kan tilsidesætte de ovenstående\n"
+" prioriteter.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Hvis det sidste ARG evalueres til 0, vil \"let\" returnere 1, ellers\n"
+" returneres 0."
+
+#: builtins.c:971
+#, 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"
+" 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"
+" delimiters.\n"
+" \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"
+" \t\tvariable ARRAY, starting at zero\n"
+" -d delim\tcontinue until the first character of DELIM is read, rather\n"
+" \t\tthan newline\n"
+" -e\t\tuse Readline to obtain the line in an interactive shell\n"
+" -i text\tUse TEXT as the initial text for Readline\n"
+" -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"
+" \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\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\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"
+" 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"
+" 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"
+"\n"
+" Hvis der ikke er angivet nogle NAVNe, vil linjen blive gemt i REPLY-\n"
+" variablen.\n"
+"\n"
+" 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"
+" \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"
+" \t\tpå et nylinjetegn\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"
+" -t tidsgrænse\tindstil tidsudløb og returner fejl, hvis der ikke kan\n"
+" \t\t\tlæses en komplet linje indenfor TIDSGRÆNSE sekunder.\n"
+" \t\t\tVærdien af variablen TMOUT er standardtidsudløbet.\n"
+" \t\t\tTIDSGRÆNSE kan være et kommatal. Hvis TIDSGRÆNSE er 0,\n"
+" \t\t\tvil read kun returnere succes hvis der er input\n"
+" \t\t\ttilgængelig ved den angivne fildeskriptor. Fejlstatus\n"
+" \t\t\tvil være større end 128 hvis tidsudløb indtræffer.\n"
+" -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"
+" eller hvis en ugyldig fildeskriptor gives som argument til -u."
+
+#: builtins.c:1014
+msgid ""
+"Return from a shell function.\n"
+" \n"
+" Causes a function or sourced script to exit with the return value\n"
+" specified by N. If N is omitted, the return status is that of the\n"
+" last command executed within the function or script.\n"
+" \n"
+" Exit Status:\n"
+" Returns N, or failure if the shell is not executing a function or script."
+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"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer N, eller fejl hvis skallen ikke er i færd med at eksekvere en\n"
+" funktion eller et skript."
+
+#: builtins.c:1027
+#, fuzzy
+msgid ""
+"Set or unset values of shell options and positional parameters.\n"
+" \n"
+" Change the value of shell attributes and positional parameters, or\n"
+" display the names and values of shell variables.\n"
+" \n"
+" Options:\n"
+" -a Mark variables which are modified or created for export.\n"
+" -b Notify of job termination immediately.\n"
+" -e Exit immediately if a command exits with a non-zero status.\n"
+" -f Disable file name generation (globbing).\n"
+" -h Remember the location of commands as they are looked up.\n"
+" -k All assignment arguments are placed in the environment for a\n"
+" command, not just those that precede the command name.\n"
+" -m Job control is enabled.\n"
+" -n Read commands but do not execute them.\n"
+" -o option-name\n"
+" Set the variable corresponding to option-name:\n"
+" allexport same as -a\n"
+" braceexpand same as -B\n"
+" emacs use an emacs-style line editing interface\n"
+" errexit same as -e\n"
+" errtrace same as -E\n"
+" functrace same as -T\n"
+" hashall same as -h\n"
+" histexpand same as -H\n"
+" history enable command history\n"
+" ignoreeof the shell will not exit upon reading EOF\n"
+" interactive-comments\n"
+" allow comments to appear in interactive commands\n"
+" keyword same as -k\n"
+" monitor same as -m\n"
+" noclobber same as -C\n"
+" noexec same as -n\n"
+" noglob same as -f\n"
+" nolog currently accepted but ignored\n"
+" notify same as -b\n"
+" nounset same as -u\n"
+" onecmd same as -t\n"
+" 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"
+" posix change the behavior of bash where the default\n"
+" operation differs from the Posix standard to\n"
+" match the standard\n"
+" privileged same as -p\n"
+" verbose same as -v\n"
+" vi use a vi-style line editing interface\n"
+" xtrace same as -x\n"
+" -p Turned on whenever the real and effective user ids do not match.\n"
+" Disables processing of the $ENV file and importing of shell\n"
+" functions. Turning this option off causes the effective uid and\n"
+" gid to be set to the real uid and gid.\n"
+" -t Exit after reading and executing one command.\n"
+" -u Treat unset variables as an error when substituting.\n"
+" -v Print shell input lines as they are read.\n"
+" -x Print commands and their arguments as they are executed.\n"
+" -B the shell will perform brace expansion\n"
+" -C If set, disallow existing regular files to be overwritten\n"
+" by redirection of output.\n"
+" -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"
+" 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"
+" If there are no remaining arguments, the positional parameters\n"
+" are unset.\n"
+" - Assign any remaining arguments to the positional parameters.\n"
+" The -x and -v options are turned off.\n"
+" \n"
+" Using + rather than - causes these flags to be turned off. The\n"
+" flags can also be used upon invocation of the shell. The current\n"
+" set of flags may be found in $-. The remaining n ARGs are positional\n"
+" parameters and are assigned, in order, to $1, $2, .. $n. If no\n"
+" ARGs are given, all shell variables are printed.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given."
+msgstr ""
+"Indstiller eller afinitialiserer (unset) skaltilvalg og positionsparametre.\n"
+" \n"
+" Ændr værdien af skalattributter og positionsparametre, eller vis navne og\n"
+" værdier af skalvariable.\n"
+"\n"
+" Tilvalg:\n"
+" -a Marker variable som er ændret eller oprettet til eksport.\n"
+" -b Underret om jobafslutning øjeblikkeligt.\n"
+" -e Afslut øjeblikkeligt hvis en kommando afslutter med en\n"
+" 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"
+" som kommer før kommandonavnet.\n"
+" -m Slå jobkontrol til.\n"
+" -n Læs kommandoer men eksekver dem ikke.\n"
+" -o tilvalgsnavn\n"
+" Indstil variablen så den passer til tilvalgsnavn:\n"
+" allexport samme som -a\n"
+" braceexpand samme som -B\n"
+" emacs brug en linjeredigerings-grænseflade som i emacs\n"
+" errexit samme som -e\n"
+" errtrace samme som -E\n"
+" functrace samme som -T\n"
+" hashall samme som -h\n"
+" histexpand samme som -H\n"
+" history slå kommandohistorik til\n"
+" 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"
+" keyword samme som -k\n"
+" monitor samme som -m\n"
+" noclobber samme som -C\n"
+" noexec samme som -n\n"
+" noglob samme som -f\n"
+" nolog accepteres på nuværende tidspunkt men har ingen\n"
+" virkning\n"
+" notify samme som -b\n"
+" nounset samme som -u\n"
+" 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 som er forskellig fra nul, eller nul hvis\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"
+" standarden følges\n"
+" privileged samme som -p\n"
+" verbose samme som -v\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"
+" 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"
+" -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"
+" 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"
+" - 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"
+" variable blive udskrevet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg."
+
+#: builtins.c:1112
+msgid ""
+"Unset values and attributes of shell variables and functions.\n"
+" \n"
+" For each NAME, remove the corresponding variable or function.\n"
+" \n"
+" Options:\n"
+" -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"
+" tries to unset a function.\n"
+" \n"
+" Some variables cannot be unset; also see `readonly'.\n"
+" \n"
+" 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"
+" \n"
+" Fjerner den tilsvarende variabel eller funktion for hvert NAVN.\n"
+" \n"
+" Tilvalg:\n"
+" -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"
+" 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"
+" givent navn er skrivebeskyttet."
+
+#: builtins.c:1132
+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"
+" \n"
+" Options:\n"
+" -f\trefer to shell functions\n"
+" -n\tremove the export property from each NAME\n"
+" -p\tdisplay a list of all exported variables and functions\n"
+" \n"
+" An argument of `--' disables further option processing.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or NAME is invalid."
+msgstr ""
+"Indstil eksportattributten for skalvariable.\n"
+" \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"
+" Tilvalg:\n"
+" -f\treferer til skalfunktioner\n"
+" -n\tfjern eksportegenskaben fra hvert NAVN\n"
+" -p\tvis en liste over alle eksporterede variable og funktioner\n"
+" \n"
+" Argumentet \"--\" slår al efterfølgende behandling fra.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg eller hvis\n"
+" NAVN er ugyldig."
+
+#: builtins.c:1151
+msgid ""
+"Mark shell variables as unchangeable.\n"
+" \n"
+" Mark each NAME as read-only; the values of these NAMEs may not be\n"
+" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n"
+" before marking as read-only.\n"
+" \n"
+" Options:\n"
+" -a\trefer to indexed array variables\n"
+" -A\trefer to associative array variables\n"
+" -f\trefer to shell functions\n"
+" -p\tdisplay a list of all readonly variables and functions\n"
+" \n"
+" An argument of `--' disables further option processing.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is given or NAME is invalid."
+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"
+" denne blive tildelt variablen, før den markeres som skrivebeskyttet.\n"
+" \n"
+" Tilvalg:\n"
+" -a\treferer til indekserede arrays\n"
+" -A\treferer til associative arrayvariable\n"
+" -f\treferer til skalfunktioner\n"
+" -p\tvis en liste af alle skrivebeskyttede variable og funktioner\n"
+" \n"
+" Argumentet \"--\" slår al efterfølgende fra.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg eller hvis\n"
+" NAVN er ugyldigt."
+
+#: builtins.c:1172
+msgid ""
+"Shift positional parameters.\n"
+" \n"
+" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n"
+" not given, it is assumed to be 1.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless N is negative or greater than $#."
+msgstr ""
+"Skift positionsparametre.\n"
+" \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
+msgid ""
+"Execute commands from a file in the current shell.\n"
+" \n"
+" Read and execute commands from FILENAME in the current shell. The\n"
+" entries in $PATH are used to find the directory containing FILENAME.\n"
+" If any ARGUMENTS are supplied, they become the positional parameters\n"
+" when FILENAME is executed.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed in FILENAME; fails if\n"
+" FILENAME cannot be read."
+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"
+" 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"
+" FILNAVN ikke kan læses."
+
+#: builtins.c:1215
+msgid ""
+"Suspend shell execution.\n"
+" \n"
+" Suspend the execution of this shell until it receives a SIGCONT signal.\n"
+" Unless forced, login shells cannot be suspended.\n"
+" \n"
+" Options:\n"
+" -f\tforce the suspend, even if the shell is a login shell\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless job control is not enabled or an error occurs."
+msgstr ""
+"Suspender skaleksekvering.\n"
+" \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"
+" opstår en fejl."
+
+#: builtins.c:1231
+#, fuzzy
+msgid ""
+"Evaluate conditional expression.\n"
+" \n"
+" Exits with a status of 0 (true) or 1 (false) depending on\n"
+" the evaluation of EXPR. Expressions may be unary or binary. Unary\n"
+" expressions are often used to examine the status of a file. There\n"
+" are string operators and numeric comparison operators as well.\n"
+" \n"
+" The behavior of test depends on the number of arguments. Read the\n"
+" bash manual page for the complete specification.\n"
+" \n"
+" File operators:\n"
+" \n"
+" -a FILE True if file exists.\n"
+" -b FILE True if file is block special.\n"
+" -c FILE True if file is character special.\n"
+" -d FILE True if file is a directory.\n"
+" -e FILE True if file exists.\n"
+" -f FILE True if file exists and is a regular file.\n"
+" -g FILE True if file is set-group-id.\n"
+" -h FILE True if file is a symbolic link.\n"
+" -L FILE True if file is a symbolic link.\n"
+" -k FILE True if file has its `sticky' bit set.\n"
+" -p FILE True if file is a named pipe.\n"
+" -r FILE True if file is readable by you.\n"
+" -s FILE True if file exists and is not empty.\n"
+" -S FILE True if file is a socket.\n"
+" -t FD True if FD is opened on a terminal.\n"
+" -u FILE True if the file is set-user-id.\n"
+" -w FILE True if the file is writable by you.\n"
+" -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"
+" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n"
+" modification date).\n"
+" \n"
+" FILE1 -ot FILE2 True if file1 is older than file2.\n"
+" \n"
+" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n"
+" \n"
+" String operators:\n"
+" \n"
+" -z STRING True if string is empty.\n"
+" \n"
+" -n STRING\n"
+" STRING True if string is not empty.\n"
+" \n"
+" STRING1 = STRING2\n"
+" True if the strings are equal.\n"
+" STRING1 != STRING2\n"
+" True if the strings are not equal.\n"
+" STRING1 < STRING2\n"
+" True if STRING1 sorts before STRING2 lexicographically.\n"
+" STRING1 > STRING2\n"
+" True if STRING1 sorts after STRING2 lexicographically.\n"
+" \n"
+" Other operators:\n"
+" \n"
+" -o OPTION True if the shell option OPTION is enabled.\n"
+" -v VAR\t True if the shell variable VAR is set\n"
+" ! EXPR True if expr is false.\n"
+" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n"
+" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n"
+" \n"
+" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n"
+" -lt, -le, -gt, or -ge.\n"
+" \n"
+" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n"
+" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n"
+" than ARG2.\n"
+" \n"
+" Exit Status:\n"
+" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
+" false or an invalid argument is given."
+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"
+" at undersøge filers status. Der findes også strengoperatorer såvel som\n"
+" operatorer til numeriske sammenligninger.\n"
+" \n"
+" Filoperatorer:\n"
+" \n"
+" -a FIL Sand hvis filen eksisterer.\n"
+" -b FIL Sand hvis filen er blokspeciel.\n"
+" -c FIL Sand hvis filen er tegnspecial.\n"
+" -d FIL Sand hvis filen er en mappe.\n"
+" -e FIL Sand hvis filen eksisterer.\n"
+" -f FIL Sand hvis filen eksisterer og er en regulær fil.\n"
+" -g FIL Sand hvis filen er sæt-gruppe-id.\n"
+" -h FIL Sand hvis filen er en symbolsk lænke.\n"
+" -L FIL Sand hvis filen er en symbolsk lænke.\n"
+" -k FIL Sand hvis filens klæbebit (sticky bit) er indstillet.\n"
+" -p FIL Sand hvis filen er en navngiven datakanal (pipe).\n"
+" -r FIL Sand hvis du kan læse filen.\n"
+" -s FIL Sand hvis filen eksisterer og ikke er tom.\n"
+" -S FIL Sand hvis filen er en sokkel.\n"
+" -t FD Sand hvis FD blev åbnet på en terminal.\n"
+" -u FIL Sand hvis filen er sæt-bruger-id.\n"
+" -w FIL Sand hvis du kan skrive til filen.\n"
+" -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"
+" 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"
+" \n"
+" FIL1 -ef FIL2 Sand hvis fil1 er en hård lænke til fil2.\n"
+" \n"
+" Strengoperatorer:\n"
+" \n"
+" -z STRENG Sand hvis strengen er tom.\n"
+" \n"
+" -n STRENG\n"
+" STRENG Sand hvis strengen ikke er tom.\n"
+" \n"
+" STRENG1 = STRENG2\n"
+" Sand hvis strengene er ens.\n"
+" STRENG1 != STRENG2\n"
+" Sand hvis strengene ikke er ens.\n"
+" STRENG1 < STRENG2\n"
+" Sand hvis STRENG1 sorteres før STRENG2 leksikografisk.\n"
+" STRENG1 > STRENG2\n"
+" Sand hvis STRENG1 sorteres efter STRENG2 leksikografisk.\n"
+" \n"
+" Andre operatorer:\n"
+" \n"
+" -o TILVALG Sand hvis skaltilvalget TILVALG er slået til.\n"
+" ! UDTRYK Sand hvis udtryk er falsk.\n"
+" UDTR1 -a UDTR2 Sand hvis både udtr1 og udtr2 er sande.\n"
+" UDTR1 -o UDTR2 Sand hvis enten udtr1 eller udtr2 er sand.\n"
+" \n"
+" 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"
+" 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
+msgid ""
+"Evaluate conditional expression.\n"
+" \n"
+" This is a synonym for the \"test\" builtin, but the last argument must\n"
+" be a literal `]', to match the opening `['."
+msgstr ""
+"Evaluer betingelsesudtryk.\n"
+" \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
+msgid ""
+"Display process times.\n"
+" \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 ""
+"Vis procestid.\n"
+" \n"
+" Udskriver den akkumulerede bruger- og systemtid for skallen og alle dens\n"
+" underprocesser.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Lykkes altid."
+
+#: builtins.c:1332
+#, fuzzy
+msgid ""
+"Trap signals and other events.\n"
+" \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"
+" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n"
+" is supplied) or `-', each specified signal is reset to its original\n"
+" 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"
+" shell to exit when the -e option is enabled.\n"
+" \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"
+" 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."
+msgstr ""
+"Indfanger signaler og andre begivenheder.\n"
+" \n"
+" Definerer og aktiverer håndteringsenheder, som skal køres når skallen\n"
+" modtager signaler eller under andre omstændigheder.\n"
+" \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"
+" 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"
+" simpel kommando.\n"
+" \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"
+" -l\tudskriver en liste af signalnavne og deres tilhørende numre\n"
+" -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"
+" 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"
+" et ugyldigt tilvalg."
+
+#: builtins.c:1368
+msgid ""
+"Display information about command type.\n"
+" \n"
+" For each NAME, indicate how it would be interpreted if used as a\n"
+" command name.\n"
+" \n"
+" Options:\n"
+" -a\tdisplay all locations containing an executable named NAME;\n"
+" \tincludes aliases, builtins, and functions, if and only if\n"
+" \tthe `-p' option is not also used\n"
+" -f\tsuppress shell function lookup\n"
+" -P\tforce a PATH search for each NAME, even if it is an alias,\n"
+" \tbuiltin, or function, and returns the name of the disk file\n"
+" \tthat would be executed\n"
+" -p\treturns either the name of the disk file that would be executed,\n"
+" \tor nothing if `type -t NAME' would not return `file'.\n"
+" -t\toutput a single word which is one of `alias', `keyword',\n"
+" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n"
+" \treserved word, shell function, shell builtin, disk file, or not\n"
+" \tfound, respectively\n"
+" \n"
+" Arguments:\n"
+" 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."
+msgstr ""
+"Vis information om kommandoers type.\n"
+" \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"
+" \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"
+" \talias, en indbygget eller en funktion og returner samme navne som den\n"
+" \tdiskfil der ville blive eksekveret\n"
+" -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\"builtin\", \"file\" eller \"\", hvis NAVN er henholdsvis et alias,\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"
+" ikke findes."
+
+#: builtins.c:1399
+msgid ""
+"Modify shell resource limits.\n"
+" \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"
+" -S\tuse the `soft' resource limit\n"
+" -H\tuse the `hard' resource limit\n"
+" -a\tall current limits are reported\n"
+" -b\tthe socket buffer size\n"
+" -c\tthe maximum size of core files created\n"
+" -d\tthe maximum size of a process's data segment\n"
+" -e\tthe maximum scheduling priority (`nice')\n"
+" -f\tthe maximum size of files written by the shell and its children\n"
+" -i\tthe maximum number of pending signals\n"
+" -l\tthe maximum size a process may lock into memory\n"
+" -m\tthe maximum resident set size\n"
+" -n\tthe maximum number of open file descriptors\n"
+" -p\tthe pipe buffer size\n"
+" -q\tthe maximum number of bytes in POSIX message queues\n"
+" -r\tthe maximum real-time scheduling priority\n"
+" -s\tthe maximum stack size\n"
+" -t\tthe maximum amount of cpu time in seconds\n"
+" -u\tthe maximum number of user processes\n"
+" -v\tthe size of virtual memory\n"
+" -x\tthe maximum number of file locks\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"
+" current soft limit, the current hard limit, and no limit, respectively.\n"
+" Otherwise, the current value of the specified resource is printed. If\n"
+" no option is given, then -f is assumed.\n"
+" \n"
+" Values are in 1024-byte increments, except for -t, which is in seconds,\n"
+" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n"
+" number of processes.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Modificer grænser for skalressourcer.\n"
+" \n"
+" Giver kontrol over de ressourcer som er tilgængelige for skallen og de\n"
+" processer den starter på systemer som tillader den slags kontrol.\n"
+" \n"
+" Tilvalg:\n"
+" -S\tbrug den \"bløde\" ressourcegrænse\n"
+" -H\tbrug den \"hårde\" ressourcegrænse\n"
+" -a\talle aktuelle grænser rapporteres\n"
+" -b\tstørrelse af sokkelbuffer\n"
+" -c\tmaksimale størrelse af oprettede kernefiler\n"
+" -d\tmaksimale størrelse af en proces' datasegment\n"
+" -e\tmaksimale planlægningsprioritet (`nice')\n"
+" -f\tmaksimale størrelse af filer skrevet af skallen og dens\n"
+" \tunderprocesser\n"
+" -i\tmaksimale antal af ventende signaler\n"
+" -l\tmaksimale størrelse en proces må låse i hukommelse\n"
+" -m\tmaksimale indstillede område (resident size)\n"
+" -n\tmaksimale antal åbne fildeskriptorer\n"
+" -p\tbufferstørrelse for datakanal (pipe)\n"
+" -q\tmaksimale antal bytes i POSIX-beskedkøer\n"
+" -r\tmaksimale realtids-planlægningsprioritet\n"
+" -s\tmaksimal stakstørrelse\n"
+" -t\tmaksimale mængde cpu-tid i sekunder\n"
+" -u\tmaksimale antal brugerprocesser\n"
+" -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"
+" 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"
+" 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"
+" -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"
+" opstår en fejl."
+
+#: builtins.c:1444
+msgid ""
+"Display or set file mode mask.\n"
+" \n"
+" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n"
+" the current value of the mask.\n"
+" \n"
+" If MODE begins with a digit, it is interpreted as an octal number;\n"
+" otherwise it is a symbolic mode string like that accepted by chmod(1).\n"
+" \n"
+" Options:\n"
+" -p\tif MODE is omitted, output in a form that may be reused as input\n"
+" -S\tmakes the output symbolic; otherwise an octal number is output\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless MODE is invalid or an invalid option is given."
+msgstr ""
+"Vis eller indstil filmasketilstand.\n"
+" \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"
+" tal, ellers er det en symbolsk tilstandsstreng, ligesom dem der angives\n"
+" til chmod(1).\n"
+" \n"
+" Tilvalg:\n"
+" -p\thvis TILSTAND udelades, udskrives der i en form der kan bruges\n"
+" \tsom input\n"
+" -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"
+" tilvalg angives."
+
+#: builtins.c:1464
+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"
+" 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"
+" \n"
+" Exit Status:\n"
+" Returns the status of ID; fails if ID is invalid or an invalid option is\n"
+" 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"
+" 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"
+" et ugyldigt tilvalg."
+
+#: builtins.c:1482
+msgid ""
+"Wait for process completion and return exit status.\n"
+" \n"
+" Waits for the specified process and reports its termination status. If\n"
+" PID is not given, all currently active child processes are waited for,\n"
+" 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"
+" 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"
+" der ikke angives noget PID ventes på alle aktuelle underprocesser og\n"
+" afslutningsstatussen er 0. PID skal være et proces-id.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen for ID, fejler hvis ID er ugyldig eller hvis der\n"
+" angives et ugyldigt tilvalg."
+
+#: builtins.c:1497
+msgid ""
+"Execute commands for each member in a list.\n"
+" \n"
+" The `for' loop executes a sequence of commands for each member in a\n"
+" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n"
+" assumed. For each element in WORDS, NAME is set to that element, and\n"
+" the COMMANDS are executed.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+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"
+" KOMMANDOER vil blive eksekveret.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen for den sidst eksekverede kommando."
+
+#: builtins.c:1511
+msgid ""
+"Arithmetic for loop.\n"
+" \n"
+" Equivalent to\n"
+" \t(( EXP1 ))\n"
+" \twhile (( EXP2 )); do\n"
+" \t\tCOMMANDS\n"
+" \t\t(( EXP3 ))\n"
+" \tdone\n"
+" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n"
+" omitted, it behaves as if it evaluates to 1.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"Aritmetisk for-løkke.\n"
+" \n"
+" Ækvivalent til\n"
+" \t(( UDTRYK ))\n"
+" \twhile (( UDTRYK )); do\n"
+" \t\tKOMMANDOER\n"
+" \t\t(( UDTRYK3 ))\n"
+" \tdone\n"
+" UDTRYK1, UDTRYK2 og UDTRYK3 er aritmetisk udtryk. Hvis et af udtrykkene\n"
+" mangler, vil resultatet være som om det evalueredes til 1.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatussen for den sidst eksekverede kommando."
+
+#: builtins.c:1529
+msgid ""
+"Select words from a list and execute commands.\n"
+" \n"
+" The WORDS are expanded, generating a list of words. The\n"
+" set of expanded words is printed on the standard error, each\n"
+" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n"
+" is assumed. The PS3 prompt is then displayed and a line read\n"
+" from the standard input. If the line consists of the number\n"
+" corresponding to one of the displayed words, then NAME is set\n"
+" to that word. If the line is empty, WORDS and the prompt are\n"
+" redisplayed. If EOF is read, the command completes. Any other\n"
+" value read causes NAME to be set to null. The line read is saved\n"
+" in the variable REPLY. COMMANDS are executed after each selection\n"
+" until a break command is executed.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"Vælg ord fra en liste og eksekver kommandoer.\n"
+" \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"
+" 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"
+" 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"
+" blive eksekveret efter hvert valg indtil en break-kommando eksekveres.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1550
+msgid ""
+"Report time consumed by pipeline's execution.\n"
+" \n"
+" Execute PIPELINE and print a summary of the real time, user CPU time,\n"
+" and system CPU time spent executing PIPELINE when it terminates.\n"
+" \n"
+" Options:\n"
+" -p\tprint the timing summary in the portable Posix format\n"
+" \n"
+" The value of the TIMEFORMAT variable is used as the output format.\n"
+" \n"
+" Exit Status:\n"
+" The return status is the return status of PIPELINE."
+msgstr ""
+"Rapporterer tid brugt ved en datakanals (pipe) eksekvering.\n"
+" \n"
+" Eksekverer DATAKANAL og udskriv den brugte realtid, bruger-CPU-tid\n"
+" og system-CPU-tid, når den er færdig.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tudskriver timingssammendrag i det flytbare (portable)\n"
+" POSIX-format\n"
+" \n"
+" Værdien af variablen TIMEFORMAT bruges som outputformatet.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Afslutningsstatus er afslutningsstatus for DATAKANAL."
+
+#: builtins.c:1567
+msgid ""
+"Execute commands based on pattern matching.\n"
+" \n"
+" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n"
+" `|' is used to separate multiple patterns.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"Eksekver kommandoer baseret på mønstersammenligning.\n"
+" \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
+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"
+" 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"
+" if no condition tested true.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+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"
+" sådan findes. Afslutningsstatus for hele strukturen er afslutnings-\n"
+" statussen for den sidste kommando, eller nul hvis ingen betingelse var\n"
+" sand.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1596
+msgid ""
+"Execute commands as long as a test succeeds.\n"
+" \n"
+" Expand and execute COMMANDS as long as the final command in the\n"
+" `while' COMMANDS has an exit status of zero.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"Eksekver kommandoer så længe en test evaluerer til sad.\n"
+" \n"
+" Udvid og eksekver KOMMANDOER så længe den sidste kommando i \"while\"\n"
+" KOMMANDOER har en afslutningsstatus på nul.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1608
+msgid ""
+"Execute commands as long as a test does not succeed.\n"
+" \n"
+" Expand and execute COMMANDS as long as the final command in the\n"
+" `until' COMMANDS has an exit status which is not zero.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"Eksekver kommandoer så længe en test ikke evaluerer til falsk.\n"
+" \n"
+" Udvid og eksekver KOMMANDOER så længe den sidste kommando i \"untill\"\n"
+" KOMMANDOER har en afslutningsstatus som ikke er nul.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1620
+msgid ""
+"Create a coprocess named NAME.\n"
+" \n"
+" Execute COMMAND asynchronously, with the standard output and standard\n"
+" input of the command connected via a pipe to file descriptors assigned\n"
+" to indices 0 and 1 of an array variable NAME in the executing shell.\n"
+" The default NAME is \"COPROC\".\n"
+" \n"
+" Exit Status:\n"
+" Returns the exit status of COMMAND."
+msgstr ""
+"Opret en coproces ved navn NAVN.\n"
+" \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"
+" Standardnavnet NAVN er \"COPROC\".\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer afslutningsstatussen for KOMMANDO."
+
+#: builtins.c:1634
+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"
+" the arguments are passed to the function as $1...$n, and the function's\n"
+" name is in $FUNCNAME.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless NAME is readonly."
+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"
+" 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
+msgid ""
+"Group commands as a unit.\n"
+" \n"
+" Run a set of commands in a group. This is one way to redirect an\n"
+" entire set of commands.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the last command executed."
+msgstr ""
+"Grupper kommandoer som en enhed.\n"
+" \n"
+" Kør et sæt af kommandoer i en gruppe. Dette er en måde at videresende\n"
+" et sæt af kommandoer på.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer statussen fra den sidst eksekverede kommando."
+
+#: builtins.c:1660
+msgid ""
+"Resume job in foreground.\n"
+" \n"
+" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n"
+" stopped or background job. JOB_SPEC can specify either a job name\n"
+" or a job number. Following JOB_SPEC with a `&' places the job in\n"
+" the background, as if the job specification had been supplied as an\n"
+" argument to `bg'.\n"
+" \n"
+" Exit Status:\n"
+" Returns the status of the resumed job."
+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"
+" 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
+msgid ""
+"Evaluate arithmetic expression.\n"
+" \n"
+" The EXPRESSION is evaluated according to the rules for arithmetic\n"
+" evaluation. Equivalent to \"let EXPRESSION\".\n"
+" \n"
+" Exit Status:\n"
+" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
+msgstr ""
+"Evaluer aritmetisk udtryk.\n"
+" \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
+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"
+" \n"
+" ( EXPRESSION )\tReturns the value of EXPRESSION\n"
+" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
+" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n"
+" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n"
+" \n"
+" When the `==' and `!=' operators are used, the string to the right of\n"
+" the operator is used as a pattern and pattern matching is performed.\n"
+" When the `=~' operator is used, the string to the right of the operator\n"
+" is matched as a regular expression.\n"
+" \n"
+" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n"
+" determine the expression's value.\n"
+" \n"
+" Exit Status:\n"
+" 0 or 1 depending on value of EXPRESSION."
+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"
+" 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"
+" \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"
+" matchet som et regulært udtryk.\n"
+" \n"
+" Operatorerne && og || vil ikke evaluere UDTR2, hvis UDTR1 er nok til at\n"
+" afgøre udtrykkets værdi.\n"
+"\n"
+" Afslutningsstatus:\n"
+" 0 eller 1 afhængigt af udtrykkets værdi."
+
+#: builtins.c:1713
+msgid ""
+"Common shell variable names and usage.\n"
+" \n"
+" BASH_VERSION\tVersion information for this Bash.\n"
+" CDPATH\tA colon-separated list of directories to search\n"
+" \t\tfor directories given as arguments to `cd'.\n"
+" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n"
+" \t\tbe ignored by pathname expansion.\n"
+" HISTFILE\tThe name of the file where your command history is stored.\n"
+" HISTFILESIZE\tThe maximum number of lines this file can contain.\n"
+" HISTSIZE\tThe maximum number of history lines that a running\n"
+" \t\tshell can access.\n"
+" HOME\tThe complete pathname to your login directory.\n"
+" HOSTNAME\tThe name of the current host.\n"
+" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n"
+" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n"
+" \t\tcharacter as the sole input. If set, then the value\n"
+" \t\tof it is the number of EOF characters that can be seen\n"
+" \t\tin a row on an empty line before the shell will exit\n"
+" \t\t(default 10). When unset, EOF signifies the end of input.\n"
+" MACHTYPE\tA string describing the current system Bash is running on.\n"
+" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n"
+" MAILPATH\tA colon-separated list of filenames which Bash checks\n"
+" \t\tfor new mail.\n"
+" OSTYPE\tThe version of Unix this version of Bash is running on.\n"
+" PATH\tA colon-separated list of directories to search when\n"
+" \t\tlooking for commands.\n"
+" PROMPT_COMMAND\tA command to be executed before the printing of each\n"
+" \t\tprimary prompt.\n"
+" PS1\t\tThe primary prompt string.\n"
+" PS2\t\tThe secondary prompt string.\n"
+" PWD\t\tThe full pathname of the current directory.\n"
+" SHELLOPTS\tA colon-separated list of enabled shell options.\n"
+" TERM\tThe name of the current terminal type.\n"
+" TIMEFORMAT\tThe output format for timing statistics displayed by the\n"
+" \t\t`time' reserved word.\n"
+" auto_resume\tNon-null means a command word appearing on a line by\n"
+" \t\titself is first looked for in the list of currently\n"
+" \t\tstopped jobs. If found there, that job is foregrounded.\n"
+" \t\tA value of `exact' means that the command word must\n"
+" \t\texactly match a command in the list of stopped jobs. A\n"
+" \t\tvalue of `substring' means that the command word must\n"
+" \t\tmatch a substring of the job. Any other value means that\n"
+" \t\tthe command must be a prefix of a stopped job.\n"
+" histchars\tCharacters controlling history expansion and quick\n"
+" \t\tsubstitution. The first character is the history\n"
+" \t\tsubstitution character, usually `!'. The second is\n"
+" \t\tthe `quick substitution' character, usually `^'. The\n"
+" \t\tthird is the `history comment' character, usually `#'.\n"
+" HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
+" \t\tcommands should be saved on the history list.\n"
+msgstr ""
+"Navnene på almindelige skalvariable og deres brug.\n"
+" \n"
+" 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"
+" \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"
+" HISTSIZE\tDet maksimale antal linjer som en kørende skal kan tilgå.\n"
+" 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"
+" \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"
+" 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"
+" 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"
+" PS2\t\tStreng for den sekundære prompt.\n"
+" 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"
+" \t\treserverede ord \"time\".\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"
+" 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"
+" skal være et præfiks for et stoppet job.\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"
+" \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
+msgid ""
+"Add directories to stack.\n"
+" \n"
+" Adds a directory to the top of the directory stack, or rotates\n"
+" the stack, making the new top of the stack the current working\n"
+" directory. With no arguments, exchanges the top two directories.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when adding\n"
+" \tdirectories to the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRotates the stack so that the Nth directory (counting\n"
+" \tfrom the left of the list shown by `dirs', starting with\n"
+" \tzero) is at the top.\n"
+" \n"
+" -N\tRotates the stack so that the Nth directory (counting\n"
+" \tfrom the right of the list shown by `dirs', starting with\n"
+" \tzero) is at the top.\n"
+" \n"
+" dir\tAdds DIR to the directory stack at the top, making it the\n"
+" \tnew current working directory.\n"
+" \n"
+" The `dirs' builtin displays the directory stack.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid argument is supplied or the directory\n"
+" change fails."
+msgstr ""
+"Tilføjer mapper til stakken.\n"
+" \n"
+" Tilføjer en mappe til toppen af stakken, eller roterer stakken, således\n"
+" at den nye top af stakken bliver den aktuelle mappe. Uden argumenter\n"
+" ombyttes de to øverste mapper.\n"
+" \n"
+" Tilvalg:\n"
+" -n\tUndertrykker det mappeskift der normalt følger med tilføjelse\n"
+" \taf mapper til stakken, således at kun stakken ændres.\n"
+" \n"
+" Argumenter:\n"
+" +N\tRoterer stakken således at den N'te mappe (talt fra venstre i\n"
+" \tlisten som vises af \"dirs\", startende med nul) vil blive placeret i\n"
+" \ttoppen.\n"
+" \n"
+" -N\tRoterer stakken således at den N'te mappe (talt fra højre i\n"
+" \tlisten som vises af \"dirs\", startende med nul) vil blive placeret i\n"
+" \ttoppen.\n"
+" \n"
+" mappe\tTilføjer MAPPE til toppen af mappestakken, således at den\n"
+" \tbliver den aktuelle mappe.\n"
+" \n"
+" Den indbyggede \"dirs\" viser mappestakken.\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes med mindre der angives et ugyldigt tilvalg, eller hvis\n"
+" mappeskiftet mislykkes."
+
+#: builtins.c:1804
+msgid ""
+"Remove directories from stack.\n"
+" \n"
+" Removes entries from the directory stack. With no arguments, removes\n"
+" the top directory from the stack, and changes to the new top directory.\n"
+" \n"
+" Options:\n"
+" -n\tSuppresses the normal change of directory when removing\n"
+" \tdirectories from the stack, so only the stack is manipulated.\n"
+" \n"
+" Arguments:\n"
+" +N\tRemoves the Nth entry counting from the left of the list\n"
+" \tshown by `dirs', starting with zero. For example: `popd +0'\n"
+" \tremoves the first directory, `popd +1' the second.\n"
+" \n"
+" -N\tRemoves the Nth entry counting from the right of the list\n"
+" \tshown by `dirs', starting with zero. For example: `popd -0'\n"
+" \tremoves the last directory, `popd -1' the next to last.\n"
+" \n"
+" The `dirs' builtin displays the directory stack.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid argument is supplied or the directory\n"
+" change fails."
+msgstr ""
+"Fjerner mapper fra stakken.\n"
+" \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"
+" -n\tUndertrykker det mappeskift der normalt følger med fjernelse\n"
+" \taf mapper fra stakken, således at kun stakken ændres.\n"
+" \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"
+" \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"
+" \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"
+" mappeskiftet mislykkes."
+
+#: builtins.c:1834
+msgid ""
+"Display directory stack.\n"
+" \n"
+" Display the list of currently remembered directories. Directories\n"
+" find their way onto the list with the `pushd' command; you can get\n"
+" back up through the list with the `popd' command.\n"
+" \n"
+" Options:\n"
+" -c\tclear the directory stack by deleting all of the elements\n"
+" -l\tdo not print tilde-prefixed versions of directories relative\n"
+" \tto your home directory\n"
+" -p\tprint the directory stack with one entry per line\n"
+" -v\tprint the directory stack with one entry per line prefixed\n"
+" \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"
+" \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"
+" \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 ""
+"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"
+" kommandoen.\n"
+" \n"
+" Tilvalg:\n"
+" -c\tryd mappestakken ved at slette alle dens elementer\n"
+" -l\tudskriv ikke mapper relativt til din hjemmemappe med et\n"
+" foranstillet tildetegn\n"
+" -p\tudskriv mappestakken med et element per linje\n"
+" -v\tudskriv mappestakken med et element per linje, med dets\n"
+" \tposition i stakken foranstillet\n"
+" \n"
+" Argumenter:\n"
+" +N\tViser det N'te element, talt fra venstre i listen som den vises\n"
+" af \"dirs\" kørt uden argumenter, talt fra nul.\n"
+" -N\tViser det N'te element, talt fra højre i listen som den vises af\n"
+" \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"
+" opstår en fejl."
+
+#: builtins.c:1863
+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"
+" is set.\n"
+" \n"
+" Options:\n"
+" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n"
+" -p\tprint each shell option with an indication of its status\n"
+" -q\tsuppress output\n"
+" -s\tenable (set) each OPTNAME\n"
+" -u\tdisable (unset) each OPTNAME\n"
+" \n"
+" Exit Status:\n"
+" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
+" given or OPTNAME is disabled."
+msgstr ""
+"Indstil og afindstil (unset) skalvariable.\n"
+" \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"
+" -p\tudskriv alle skalvariable sammen med en indikation af deres\n"
+" \tstatus\n"
+" -q\tundertryk output\n"
+" -s\taktiver (set) hvert INDSTNAVN\n"
+" -u\tdeaktiver (unset) hvert INDSTNAVN\n"
+" \n"
+" Afslutningsstatus:\n"
+" Returnerer succes hvis INDSTNAVN er aktiveret; fejler hvis der angives et\n"
+" ugyldigt tilvalg eller hvis INDSTNAVN er deaktiveret."
+
+#: builtins.c:1884
+#, fuzzy
+msgid ""
+"Formats and prints ARGUMENTS under control of the FORMAT.\n"
+" \n"
+" Options:\n"
+" -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"
+" sequences, which are converted and copied to the standard output; and\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"
+" \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"
+" string for strftime(3)\n"
+" \n"
+" Exit Status:\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"
+" \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"
+" til udskrivningen af det næste argument.\n"
+" \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"
+" \targument\n"
+" %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"
+" der opstår en skrive- eller tildelingsfejl."
+
+#: builtins.c:1913
+#, 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"
+" allows them to be reused as input.\n"
+" \n"
+" Options:\n"
+" -p\tprint existing completion specifications in a reusable format\n"
+" -r\tremove a completion specification for each NAME, or, if no\n"
+" \tNAMEs are supplied, all completion specifications\n"
+" -D\tapply the completions and actions as the default for commands\n"
+" \twithout any specific completion defined\n"
+" -E\tapply the completions and actions to \"empty\" commands --\n"
+" \tcompletion attempted on a blank line\n"
+" \n"
+" When completion is attempted, the actions are applied in the order the\n"
+" uppercase-letter options are listed above. The -D option takes\n"
+" precedence over -E.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Specificer hvordan argumenter fuldføres af Readline.\n"
+" \n"
+" Specificer hvordan argumenter skal fuldføres for hvert NAVN. Hvis der\n"
+" ikke er angivet nogen tilvalg, vil de eksisterende fuldførsels-\n"
+" specifikationer blive udskrevet på en form der tillader dem at blive\n"
+" genbrugt som input.\n"
+" \n"
+" Tilvalg:\n"
+" -p\tudskriv eksisterende fuldførselsspecifikationer i et format\n"
+" \tsom kan genbruges\n"
+" -r\tfjern en fuldførselsspecifikation for hvert NAVN, eller,\n"
+" \thvis der ikke er angivet nogle NAVNe, alle fuldførselsspecifikationer\n"
+" \n"
+" Når fuldførsel forsøges, vil handlinger blive anvendt i den rækkefølge,\n"
+" 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"
+" der opstår en fejl."
+
+#: builtins.c:1941
+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"
+" WORD are generated.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or an error occurs."
+msgstr ""
+"Vis mulige fuldførsler afhængigt af indstillingerne.\n"
+" \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"
+" der opstår en fejl."
+
+# Fejlrapport
+#: builtins.c:1956
+#, 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"
+" \n"
+" Options:\n"
+" \t-o option\tSet completion option OPTION for each NAME\n"
+" \t-D\t\tChange options for the \"default\" command completion\n"
+" \t-E\t\tChange options for the \"empty\" command completion\n"
+" \n"
+" Using `+o' instead of `-o' turns off the specified option.\n"
+" \n"
+" Arguments:\n"
+" \n"
+" Each NAME refers to a command for which a completion specification must\n"
+" have previously been defined using the `complete' builtin. If no NAMEs\n"
+" are supplied, compopt must be called by a function currently generating\n"
+" completions, and the options for that currently-executing completion\n"
+" generator are modified.\n"
+" \n"
+" Exit Status:\n"
+" Returns success unless an invalid option is supplied or NAME does not\n"
+" have a completion specification defined."
+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"
+" 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"
+" 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"
+" 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"
+" der ikke er defineret en fuldførselsspecifikation for NAVN."
+
+#: builtins.c:1986
+#, 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"
+" 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"
+" -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"
+" -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"
+" \n"
+" Arguments:\n"
+" ARRAY\t\tArray variable name to use for file data.\n"
+" \n"
+" If -C is supplied without -c, the default quantum is 5000. When\n"
+" CALLBACK is evaluated, it is supplied the index of the next array\n"
+" 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"
+" assigning to it.\n"
+" \n"
+" Exit Status:\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"
+" 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"
+" \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"
+" -u fd\tLæs linjer fra fildeskriptoren FD i stedet for fra standard-\n"
+" \t\tinput.\n"
+" -C tilbagekald\tEvaluer TILBAGEKALD hver gang KVANTUM linjer er læst.\n"
+" -c kvantum\tSpecificer antallet af linjer imellem hvert kald til\n"
+" \t\t\tTILBAGEKALD\n"
+" \n"
+" Argumenter:\n"
+" 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"
+" 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"
+" ARRAY er skrivebeskyttet."
+
+#: builtins.c:2020
+msgid ""
+"Read lines from a file into an array variable.\n"
+" \n"
+" A synonym for `mapfile'."
+msgstr ""
+"Læs linjer fra en fil ind i en arrayvariabel.\n"
+" \n"
+" Et synonym for \"mapfile\"."
+
+#~ msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
+#~ msgstr "xrealloc: kan ikke allokere %lu bytes (%lu bytes allokeret)"
+
+#~ msgid "xrealloc: cannot allocate %lu bytes"
+#~ 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)"
diff --git a/po/fr.po b/po/fr.po
index e209fb03..53601e1c 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,16 +2,17 @@
# Copyright © 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the bash package.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 2004
-# Christophe Combelles <ccomb@free.fr>, 2008, 2009, 2010
+# Christophe Combelles <ccomb@free.fr>, 2008, 2009, 2010, 2011
#
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-04-10 13:44+0100\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"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -39,8 +40,7 @@ msgstr "%s : impossible d'assigner à un index non numérique"
#: arrayfunc.c:518
#, 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
#, c-format
@@ -49,9 +49,7 @@ msgstr "%s : impossible de créer : %s"
#: bashline.c:3498
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
#, c-format
@@ -202,8 +200,7 @@ 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
#, c-format
@@ -290,15 +287,11 @@ msgstr "%s : pas d'indication de complètement"
#: builtins/complete.def:696
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
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
msgid "not currently executing completion function"
@@ -452,11 +445,8 @@ 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
@@ -474,8 +464,7 @@ 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"
+"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"
@@ -509,8 +498,7 @@ 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"
@@ -564,9 +552,9 @@ msgid "`%s': missing format character"
msgstr "« %s » : caractère de format manquant"
#: builtins/printf.def:448
-#, fuzzy, c-format
+#, c-format
msgid "`%c': invalid time format specification"
-msgstr "%s : spécification de délai d'expiration non valable"
+msgstr "`%c' : spécification de format d'heure incorrecte"
#: builtins/printf.def:635
#, c-format
@@ -583,9 +571,9 @@ msgid "missing hex digit for \\x"
msgstr "chiffre hexadécimal manquant pour \\x"
#: builtins/printf.def:855
-#, fuzzy, c-format
+#, c-format
msgid "missing unicode digit for \\%c"
-msgstr "chiffre hexadécimal manquant pour \\x"
+msgstr "chiffre unicode manquant pour \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
@@ -618,17 +606,14 @@ 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"
@@ -640,12 +625,10 @@ 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
@@ -688,8 +671,7 @@ msgstr ""
" -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"
" \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 »."
@@ -745,15 +727,11 @@ msgstr "Erreur de lecture : %d : %s"
#: builtins/return.def:73
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
#, c-format
@@ -781,9 +759,7 @@ msgstr "nombre de « shift »"
#: builtins/shopt.def:264
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
#, c-format
@@ -932,8 +908,7 @@ msgstr "erreur de tube"
#: execute_cmd.c:4640
#, 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
#, c-format
@@ -941,9 +916,9 @@ msgid "%s: command not found"
msgstr "%s : commande introuvable"
#: execute_cmd.c:4959
-#, fuzzy, c-format
+#, c-format
msgid "%s: %s"
-msgstr "%s est %s\n"
+msgstr "%s : %s"
#: execute_cmd.c:4995
#, c-format
@@ -1033,9 +1008,7 @@ msgstr "Impossible de réinitialiser le mode « nodelay » pour le fd %d"
#: input.c:260
#, 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
#, c-format
@@ -1235,8 +1208,7 @@ 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
@@ -1284,8 +1256,7 @@ msgstr "setlocale : LC_ALL : impossible de changer le paramètre de langue (%s)"
#: locale.c:194
#, 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
#, c-format
@@ -1295,8 +1266,7 @@ msgstr "setlocale : %s : impossible de changer le paramètre de langue (%s)"
#: locale.c:249
#, 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 $_"
@@ -1332,9 +1302,7 @@ msgstr "make_here_document : le type d'instruction %d est incorrect"
#: make_cmd.c:659
#, 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
#, c-format
@@ -1344,21 +1312,16 @@ msgstr "make_redirection : l'instruction de redirection « %d » est hors plage"
#: parse.y:3173 parse.y:3444
#, 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
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
#, 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
msgid "syntax error in conditional expression"
@@ -1440,9 +1403,7 @@ msgstr "Utilisez « %s » pour quitter le shell.\n"
#: parse.y:5818
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
#, c-format
@@ -1500,8 +1461,7 @@ 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
@@ -1514,8 +1474,7 @@ 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
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
msgid "could not find /tmp, please create!"
@@ -1568,14 +1527,12 @@ msgstr "\t-%s ou -o option\n"
#: shell.c:1824
#, 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
#, 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
#, c-format
@@ -1795,8 +1752,7 @@ msgstr "Impossible de fabriquer un tube pour une substitution de commande"
#: subst.c:5322
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
msgid "command_substitute: cannot duplicate pipe as fd 1"
@@ -1823,12 +1779,8 @@ 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"
+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
#, c-format
@@ -1883,11 +1835,8 @@ msgstr "run_pending_traps : mauvaise valeur dans trap_list[%d] : %p"
#: trap.c:341
#, 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
#, c-format
@@ -1906,15 +1855,11 @@ msgstr "niveau de shell trop élevé (%d), initialisation à 1"
#: variables.c:1932
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
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
#, c-format
@@ -1933,9 +1878,7 @@ msgstr "Pas de « = » dans « exportstr » pour %s"
#: variables.c:3891
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
msgid "pop_var_context: no global_variables context"
@@ -1943,9 +1886,7 @@ msgstr "pop_var_context : aucun contexte à « global_variables »"
#: variables.c:3978
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
#, c-format
@@ -1958,17 +1899,12 @@ msgid "%s: %s: invalid value for trace file descriptor"
msgstr "%s : %s : valeur non valable pour un descripteur de fichier de trace"
#: version.c:46
-#, fuzzy
msgid "Copyright (C) 2011 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2009 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
@@ -1978,15 +1914,12 @@ 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
@@ -1995,12 +1928,8 @@ 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
@@ -2031,13 +1960,8 @@ 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]"
+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]"
#: builtins.c:54
msgid "break [n]"
@@ -2056,9 +1980,8 @@ msgid "caller [expr]"
msgstr "caller [expr]"
#: builtins.c:64
-#, fuzzy
msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr "cd [-L|-P] [rép]"
+msgstr "cd [-L|[-P [-e]]] [rép]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -2081,14 +2004,12 @@ msgid "command [-pVv] command [arg ...]"
msgstr "command [-pVv] commande [arg ...]"
#: builtins.c:76
-#, fuzzy
msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFilrtux] [-p] [nom[=valeur] ...]"
+msgstr "declare [-aAfFgilrtux] [-p] [nom[=valeur] ...]"
#: builtins.c:78
-#, fuzzy
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFilrtux] [-p] nom[=valeur] ..."
+msgstr "typeset [-aAfFgilrtux] [-p] nom[=valeur] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
@@ -2128,8 +2049,7 @@ 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]"
@@ -2148,12 +2068,8 @@ 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]"
@@ -2164,33 +2080,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]"
msgstr "return [n]"
#: builtins.c:140
-#, fuzzy
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [--abefhkmnptuvxBCHP] [-o nom-option] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCHP] [-o nom-option] [--] [arg ...]"
#: builtins.c:142
msgid "unset [-f] [-v] [name ...]"
@@ -2201,9 +2108,8 @@ msgid "export [-fn] [name[=value] ...] or export -p"
msgstr "export [-fn] [nom[=valeur] ...] ou export -p"
#: builtins.c:146
-#, fuzzy
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr "readonly [-af] [nom[=valeur] ...] ou readonly -p"
+msgstr "readonly [-aAf] [nom[=valeur] ...] ou readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2278,12 +2184,8 @@ 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"
@@ -2342,43 +2244,24 @@ 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 ""
@@ -2395,27 +2278,23 @@ 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
@@ -2446,24 +2325,20 @@ 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"
@@ -2474,50 +2349,35 @@ msgid ""
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"
+" 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
msgid ""
@@ -2531,8 +2391,7 @@ 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"
@@ -2550,8 +2409,7 @@ 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"
@@ -2563,8 +2421,7 @@ msgid ""
" \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"
@@ -2572,17 +2429,13 @@ 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
@@ -2603,40 +2456,30 @@ 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
-#, 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"
@@ -2649,40 +2492,34 @@ msgid ""
" The default is to follow symbolic links, as if `-L' were specified.\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. La variable « $HOME » est le "
-"répertoire\n"
-" DIR par défaut.\n"
-" \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"
+" 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"
" 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. -P\tutiliser la "
-"structure physique des répertoires sans suivre\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"
" \n"
-" Le comportement par défaut est de suivre les liens symboliques, comme si "
-"« -f » é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é, sinon autre chose que 0."
+" 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
msgid ""
@@ -2702,16 +2539,14 @@ 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
@@ -2759,8 +2594,7 @@ 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"
@@ -2774,26 +2608,20 @@ 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
-#, fuzzy
msgid ""
"Set variable values and attributes.\n"
" \n"
@@ -2823,8 +2651,7 @@ 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"
@@ -2832,16 +2659,14 @@ 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"
" -p\taffiche les attributs et la valeur de chaque NOM\n"
" \n"
" Options qui définissent des attributs :\n"
@@ -2856,18 +2681,14 @@ 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 ».\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
msgid ""
@@ -2895,18 +2716,14 @@ 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
@@ -2945,13 +2762,10 @@ 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"
@@ -2962,8 +2776,7 @@ 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"
@@ -3021,41 +2834,33 @@ 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"
" \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
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"
@@ -3063,13 +2868,11 @@ 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
msgid ""
@@ -3121,49 +2924,32 @@ 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
@@ -3171,8 +2957,7 @@ 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"
@@ -3180,19 +2965,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 ""
"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"
@@ -3200,13 +2982,11 @@ 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
msgid ""
@@ -3224,29 +3004,25 @@ msgstr ""
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
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"
@@ -3260,39 +3036,32 @@ 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
msgid ""
@@ -3312,17 +3081,14 @@ 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
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"
@@ -3330,22 +3096,19 @@ 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
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"
@@ -3365,8 +3128,7 @@ 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"
@@ -3381,8 +3143,7 @@ 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
msgid ""
@@ -3402,14 +3163,12 @@ 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"
@@ -3422,8 +3181,7 @@ 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
msgid ""
@@ -3452,51 +3210,39 @@ 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
msgid ""
@@ -3523,29 +3269,23 @@ 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
@@ -3571,14 +3311,12 @@ 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
msgid ""
@@ -3603,37 +3341,30 @@ 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
-#, fuzzy
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"
@@ -3680,7 +3411,7 @@ msgstr ""
" \n"
" \tid++, id--\tpost-incrément ou post-décrément de variable\n"
" \t++id, --id\tpré-incrément ou pré-décrément de variable\n"
-" \t-, +\t\tmoins, plus\n"
+" \t-, +\t\tmoins unaire, plus unaire\n"
" \t!, ~\t\tnégations logique et binaire\n"
" \t**\t\tmise en exposant\n"
" \t*, /, %\t\tmultiplication, division, reste de la division\n"
@@ -3700,16 +3431,12 @@ 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"
@@ -3720,16 +3447,13 @@ 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"
@@ -3741,15 +3465,13 @@ 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"
@@ -3758,66 +3480,47 @@ msgid ""
" -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"
" 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
msgid ""
@@ -3832,18 +3535,14 @@ 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
-#, fuzzy
msgid ""
"Set or unset values of shell options and positional parameters.\n"
" \n"
@@ -3886,8 +3585,7 @@ 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"
@@ -3927,22 +3625,18 @@ 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"
-" Change la valeur des attributs du shell et des paramètres de position, "
-"ou\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"
" 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"
@@ -3957,11 +3651,9 @@ 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"
@@ -3972,62 +3664,44 @@ 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"
-" - Affecter tous les arguments restants aux paramètres de "
-"position.\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"
" 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
msgid ""
@@ -4039,8 +3713,7 @@ 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"
@@ -4059,20 +3732,17 @@ 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
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"
@@ -4086,10 +3756,8 @@ 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"
@@ -4099,8 +3767,7 @@ 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
msgid ""
@@ -4123,24 +3790,20 @@ 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
msgid ""
@@ -4154,8 +3817,7 @@ 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"
@@ -4176,17 +3838,13 @@ 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
@@ -4204,20 +3862,16 @@ 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
-#, fuzzy
msgid ""
"Evaluate conditional expression.\n"
" \n"
@@ -4251,8 +3905,7 @@ 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"
@@ -4273,8 +3926,7 @@ 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"
@@ -4304,13 +3956,15 @@ msgstr ""
" unaires ou binaires. Les expressions unaires sont souvent utilisées\n"
" 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"
+" 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"
@@ -4326,17 +3980,13 @@ 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"
-" 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"
+" -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"
" \n"
" Opérateurs sur des chaînes :\n"
" \n"
@@ -4349,15 +3999,14 @@ 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"
" -o OPTION Vrai si l'OPTION du shell est activée\n"
+" -v VAR\t Vrai si la variable de shell VAR est définie\n"
" ! EXPR Vrai si l'EXPRession est fausse\n"
" EXPR1 -a EXPR2 Vrai si les deux expressions sont vraies\n"
" EXPR1 -o EXPR2 Vrai si l'une des deux expressions est vraie\n"
@@ -4365,13 +4014,10 @@ 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
@@ -4390,8 +4036,7 @@ msgstr ""
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"
@@ -4406,12 +4051,10 @@ msgstr ""
" Toujours le code de succès."
#: builtins.c:1332
-#, 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"
@@ -4420,54 +4063,46 @@ 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"
-" SIGNAL_SPEC est DEBUG, ARG est exécuté après chaque commande simple.\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"
+" 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"
+" 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"
@@ -4475,14 +4110,12 @@ 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
msgid ""
@@ -4510,8 +4143,7 @@ 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"
@@ -4520,37 +4152,30 @@ 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
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"
@@ -4590,8 +4215,7 @@ 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"
@@ -4616,24 +4240,18 @@ 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"
+" 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
msgid ""
@@ -4654,24 +4272,18 @@ 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
msgid ""
@@ -4680,30 +4292,23 @@ msgid ""
" Waits for the process identified by 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"
+" status is zero. If ID is a a job specification, waits for all processes\n"
" in the job's pipeline.\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'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
msgid ""
@@ -4714,8 +4319,7 @@ 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"
@@ -4725,8 +4329,7 @@ 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
@@ -4743,8 +4346,7 @@ 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"
+" 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"
@@ -4776,8 +4378,7 @@ 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"
@@ -4836,16 +4437,14 @@ 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."
@@ -4862,10 +4461,8 @@ 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."
@@ -4874,17 +4471,12 @@ msgstr ""
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"
@@ -4892,17 +4484,12 @@ 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"
@@ -4921,8 +4508,7 @@ 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"
@@ -4940,8 +4526,7 @@ 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"
@@ -4962,10 +4547,8 @@ 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"
@@ -4977,8 +4560,7 @@ 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"
@@ -4987,12 +4569,9 @@ 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"
@@ -5031,12 +4610,10 @@ 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"
+" 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"
@@ -5064,12 +4641,9 @@ msgstr ""
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"
@@ -5089,23 +4663,18 @@ 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"
@@ -5172,34 +4741,25 @@ 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"
@@ -5207,36 +4767,25 @@ 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
msgid ""
@@ -5286,15 +4835,13 @@ msgstr ""
" -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"
" \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
@@ -5343,8 +4890,7 @@ 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
@@ -5364,12 +4910,10 @@ 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"
@@ -5377,10 +4921,8 @@ 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"
@@ -5392,25 +4934,21 @@ 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
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"
@@ -5426,27 +4964,22 @@ 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
-#, fuzzy
msgid ""
"Formats and prints ARGUMENTS under control of the FORMAT.\n"
" \n"
@@ -5454,67 +4987,53 @@ 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"
+" In addition to the standard format specifications described in printf(1)\n"
" and printf(3), 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 vairable 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"
-" comme entrée du shell.\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"
+" 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
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"
@@ -5535,41 +5054,32 @@ 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
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"
@@ -5582,20 +5092,15 @@ 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
-#, 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"
@@ -5618,62 +5123,45 @@ 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"
-" l'auto-complètement actuellement exécuté. si aucune OPTION n'est "
-"données, 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
-#, 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"
@@ -5683,53 +5171,40 @@ 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"
-" -s nombre\tSaute les NOMBRE premères lignes lues.\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
@@ -5753,15 +5228,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 ""
#~ "; 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 " "
@@ -5771,18 +5244,13 @@ 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."
@@ -5794,115 +5262,82 @@ 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,"
@@ -5931,11 +5366,8 @@ 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."
@@ -5965,8 +5397,7 @@ 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"
@@ -5980,18 +5411,15 @@ 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."
@@ -6001,26 +5429,17 @@ 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 ""
@@ -6032,8 +5451,7 @@ 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"
@@ -6047,40 +5465,32 @@ 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 »."
@@ -6090,15 +5500,11 @@ 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 ""
@@ -6113,39 +5519,25 @@ 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"
@@ -6157,16 +5549,14 @@ 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."
@@ -6177,36 +5567,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 ""
-#~ "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 ""
@@ -6217,120 +5593,75 @@ 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 ""
@@ -6342,12 +5673,9 @@ 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 ""
@@ -6360,38 +5688,27 @@ 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"
+#~ " 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."
+#~ " 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 ""
@@ -6406,10 +5723,8 @@ 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 ""
@@ -6423,83 +5738,60 @@ 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"
+#~ " 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 ""
@@ -6532,38 +5824,23 @@ 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."
diff --git a/po/pl.po b/po/pl.po
index 907924a4..b6c8838f 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@ msgstr ""
"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: 2011-03-14 19:41+0100\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"
"Language: pl\n"
@@ -677,8 +677,8 @@ msgstr ""
" -N\tRotacja stosu czyni±ca jego wierzcho³kiem N-ty katalog (licz±c\n"
" \tod prawej strony listy wypisywanej przez `dirs', pocz±wszy od zera).\n"
" \n"
-" dir\tUmieszczenie DIR na wierzcho³ku stosu i uczynienie go nowym\n"
-" \tbie¿±cym katalogiem roboczym.\n"
+" katalog\tUmieszczenie KATALOGU na wierzcho³ku stosu i uczynienie go\n"
+" \tnowym bie¿±cym katalogiem roboczym.\n"
" \n"
" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'."
@@ -724,7 +724,7 @@ msgstr ""
#: builtins/read.def:252
#, c-format
msgid "%s: invalid timeout specification"
-msgstr "%s: nieprawid³owo okre¶lony timeout"
+msgstr "%s: nieprawid³owo okre¶lony limit czasu"
#: builtins/read.def:588
#, c-format
@@ -1455,7 +1455,7 @@ msgstr "deskryptor pliku poza zakresem"
#: redir.c:178
#, c-format
msgid "%s: ambiguous redirect"
-msgstr "%s: nieojednoznaczne przekierowanie"
+msgstr "%s: niejednoznaczne przekierowanie"
#: redir.c:182
#, c-format
@@ -2100,7 +2100,7 @@ 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 lznaków] [-N lznaków] [-p zachêta] [-t czas] [-u fd] [nazwa ...]"
+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]"
@@ -2380,7 +2380,8 @@ msgstr ""
" 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"
-" dane wej¶ciowe. -V Wypisanie nazw zmiennych i ich warto¶ci.\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"
@@ -2475,7 +2476,8 @@ msgstr ""
" ¶ladu stosu.\n"
" \n"
" Warto¶æ WYRA¯ENIA okre¶la o ile ramek wywo³añ wzglêdem bie¿±cej ramki\n"
-" nale¿y siê cofn±æ; numer najwy¿szej ramki to 0. \n"
+" nale¿y siê cofn±æ; numer najwy¿szej ramki to 0.\n"
+" \n"
" Stan wyj¶ciowy:\n"
" Polecenie zwraca 0, chyba ¿e pow³oka nie wykonuje funkcji lub WYRA¯ENIE\n"
" jest nieprawid³owe."
@@ -2522,7 +2524,7 @@ msgstr ""
" \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"
-" Je¶li zmienna ta ma warto¶æ, to jako KATALOG jest u¿ywana jej wartosæ.\n"
+" Je¶li zmienna ta ma warto¶æ, to jako KATALOG jest u¿ywana jej warto¶æ.\n"
" \n"
" Opcje:\n"
" -L\twymuszenie ¶ledzenia dowi±zañ symbolicznych\n"
@@ -2776,7 +2778,7 @@ msgid ""
msgstr ""
"Wypisanie argumentów na standardowym wyj¶ciu.\n"
" \n"
-" Wypisanie na standardowym wyj¶ciu ARGumentów 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"
@@ -2818,7 +2820,7 @@ msgid ""
msgstr ""
"Wypisanie argumentów na standardowym wyj¶ciu.\n"
" \n"
-" Wypisanie na standardowym wyj¶ciu ARGumentów i znaku koñca linii.\n"
+" Wypisanie na standardowym wyj¶ciu argumentów ARG i znaku koñca linii.\n"
" \n"
" Opcje:\n"
" -n\tniedo³±czanie znaku koñca linii\n"
@@ -2889,7 +2891,7 @@ msgid ""
msgstr ""
"Wykonanie argumentów jako polecenia pow³oki.\n"
" \n"
-" Po³±czenie ARGumentów w pojedynczy ³añcuch, u¿ycie rezultatu jako\n"
+" Po³±czenie argumentów ARG w pojedynczy ³añcuch, u¿ycie rezultatu jako\n"
" wej¶cia dla pow³oki i wykonanie wynikowych poleceñ.\n"
" \n"
" Stan wyj¶ciowy:\n"
@@ -2936,6 +2938,43 @@ msgid ""
" Returns success if an option is found; fails if the end of options is\n"
" encountered or an error occurs."
msgstr ""
+"Analiza opcji z argumentów.\n"
+" \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"
+" $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"
+" skryptu pow³oki. Je¶li opcja wymaga argumentu, getopts umieszcza ten\n"
+" argument w zmiennej pow³oki OPTARG.\n"
+" \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"
+" 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"
+" 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"
+" dwukropek. OPTERR domy¶lnie ma warto¶æ 1.\n"
+" \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"
+" opcji lub b³±d."
#: builtins.c:673
msgid ""
@@ -3026,7 +3065,7 @@ msgid ""
msgstr ""
"Wy¶wietlanie lub wykonywanie poleceñ z listy historii.\n"
" \n"
-" fc s³u¿y do wypisywania, edycji i pomownego 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"
" napisu.\n"
@@ -3035,7 +3074,7 @@ msgstr ""
" -e NAZWA-ED\tokre¶la edytor, który ma byæ u¿ywany. Domy¶lnymi\n"
" \twarto¶ciami s±: najpierw FCEDIT, potem EDITOR, a na koñcu vi\n"
" -l\twypisywanie wierszy zamiast ich edycji\n"
-" -n\tniewypisysanie numerów wierszy\n"
+" -n\tniewypisywanie numerów wierszy\n"
" -r\todwrócenie kolejno¶ci wierszy (czyni±c najnowsze wypisane\n"
" \tpolecenie pierwszym)\n"
" \n"
@@ -3044,7 +3083,8 @@ msgstr ""
" \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"
+" `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."
@@ -3113,6 +3153,26 @@ msgid ""
" Exit Status:\n"
" Returns success unless NAME is not found or an invalid option is given."
msgstr ""
+"Zapamiêtanie lub wypisanie po³o¿enia programów.\n"
+" \n"
+" Okre¶lenie i zapamiêtanie pe³nej ¶cie¿ki ka¿dego polecenia NAZWA. Je¶li\n"
+" nie podano argumentów, wy¶wietlane s± informacje o zapamiêtanych\n"
+" poleceniach.\n"
+" \n"
+" Opcje:\n"
+" -d\t\tzapomnienie po³o¿enia ka¿dej NAZWY\n"
+" -l\t\twypisanie w formacie do wykorzystania jako wej¶cie\n"
+" -p ¶cie¿ka\tu¿ycie ¦CIE¯KI jako pe³nej ¶cie¿ki NAZWY\n"
+" -r\t\tzapomnienie wszystkich pamiêtanych po³o¿eñ\n"
+" -t\t\twypisanie pamiêtanych po³o¿eñ ka¿dej NAZWY poprzedzaj±c\n"
+" \t\tka¿de po³o¿enie odpowiedni± NAZW¡, je¶li podano wiele NAZW\n"
+" Argumenty:\n"
+" NAZWA\t\tKa¿da nazwa jest wyszukiwana w $PATH i dodawana do listy\n"
+" \t\tpamiêtanych poleceñ.\n"
+" \n"
+" Stan wyj¶ciowy:\n"
+" Zwracana jest prawda, chyba ¿e nie znaleziono NAZWY lub podano b³êdn±\n"
+" opcjê."
#: builtins.c:797
msgid ""
@@ -3134,6 +3194,24 @@ msgid ""
" Exit Status:\n"
" 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"
+" WZORCA, w przeciwnym wypadku - lista tematów.\n"
+" \n"
+" Opcje:\n"
+" -d\twypisanie krótkiego opisu ka¿dego tematu\n"
+" -m\twy¶wietlenie sposobu u¿ycia w formacie zbli¿onym do stron man\n"
+" -s\twypisanie tylko krótkiej informacji o sk³adni dla ka¿dego\n"
+" \ttematu pasuj±cego do WZORCA\n"
+" \n"
+" Argumenty:\n"
+" WZORZEC\tWzorzec okre¶laj±cy temat pomocy\n"
+" \n"
+" Stan wyj¶ciowy:\n"
+" Zwracana jest prawda, chyba ¿e WZORCA nie znaleziono lub podano b³êdn±\n"
+" opcjê."
#: builtins.c:821
msgid ""
@@ -3167,6 +3245,38 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or an error occurs."
msgstr ""
+"Wy¶wietlanie i modyfikowanie listy historii.\n"
+" \n"
+" Wy¶wietlanie listy historii z numerami linii z oznaczeniem ka¿dej\n"
+" zmodyfikowanej linii przedrostkiem `*'. Podanie argumentu N wypisuje\n"
+" tylko ostatnich N wpisów.\n"
+" \n"
+" Opcje:\n"
+" -c\twyczyszczenie listy historii poprzez usuniêcie wszystkich wpisów\n"
+" -d offset\tusuniêcie wpisu historii o podanym OFFSECIE\n"
+" \n"
+" -a\tdo³±czenie linii historii z tej sesji do pliku historii\n"
+" -n\todczyt wszystkich jeszcze nie przeczytanych linii z pliku\n"
+" \thistorii\n"
+" -r\todczyt pliku historii i do³±czenie zawarto¶ci do listy historii\n"
+" -w\tzapis bie¿±cej historii do pliku historii\n"
+" \n"
+" -p\trozwiniêcie wg historii ka¿dego ARG i wypisanie wyniku bez\n"
+" \tzapisywania go na li¶cie historii\n"
+" -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"
+" 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"
+" 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"
+" 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
msgid ""
@@ -3205,8 +3315,8 @@ msgstr ""
" -s\tograniczenie wyj¶cia do zadañ zatrzymanych\n"
" \n"
" Przy podaniu -x, uruchamiane jet polecenie podane POLECENIE po zast±pieniu\n"
-" ka¿dej z wystêpuj±cych w ARGumentach specyfikacji zadañ numerem PID procesu\n"
-" wiod±cego danego zadania.\n"
+" ka¿dej z wystêpuj±cych w argumentach ARG specyfikacji zadañ numerem PID\n"
+" procesu wiod±cego danego zadania.\n"
" \n"
" Stan wyj¶ciowy:\n"
" Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d.\n"
@@ -3278,7 +3388,8 @@ msgstr ""
" 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"
" ograniczenia na liczbê procesów, nie powoduje potrzeby uruchamiania\n"
-" dodatkowego procesu, aby jaki¶ zabiæ. \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."
@@ -3327,7 +3438,7 @@ msgid ""
msgstr ""
"Obliczanie wyra¿eñ arytmetycznych.\n"
" \n"
-" Obliczenie ka¿dego ARGumentu 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"
" jako b³±d. Poni¿sza lista operatorów jest pogrupowana na poziomy\n"
@@ -3409,6 +3520,46 @@ msgid ""
" The return code is zero, unless end-of-file is encountered, read times out,\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"
+" 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"
+" \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"
+" \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\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"
+" \t\tprzed prób± odczytu\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\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"
+" \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"
+" -u."
#: builtins.c:1014
msgid ""
@@ -3528,10 +3679,10 @@ msgstr ""
" -f Wy³±czenie generowania nazw plików (globbing).\n"
" -h Pamiêtanie po³o¿enia znalezionych poleceñ.\n"
" -k Umieszczanie w ¶rodowisku polecenia wszystkich argumentów\n"
-" o postaci przypisania, nie tylko tych, które poprzedzaja nazwê\n"
+" o postaci przypisania, nie tylko tych, które poprzedzaj± nazwê\n"
" polecenia.\n"
" -m W³±czenie kontroli zadañ.\n"
-" -n Czytanie poleceñ, lecz niewykonywanie ich.\n"
+" -n Czytanie poleceñ bez wykonywania ich.\n"
" -o nazwa-opcji\n"
" Ustawienie zmiennej odpowiadaj±cej nazwa-opcji:\n"
" allexport to samo, co -a\n"
@@ -3620,6 +3771,22 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or a NAME is read-only."
msgstr ""
+"Anulowanie warto¶ci i atrybutów zmiennych i funkcji pow³oki.\n"
+" \n"
+" Usuniêcie zmiennych i funkcji o podanych NAZWACH.\n"
+" \n"
+" Opcje:\n"
+" -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"
+" 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"
+" odczytu."
#: builtins.c:1132
msgid ""
@@ -3638,6 +3805,21 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
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"
+" przed eksportowaniem.\n"
+" \n"
+" Opcje:\n"
+" -f\tdzia³anie na funkcjach pow³oki\n"
+" -n\tusuniêcie atrybutu eksportowania z ka¿dej NAZWY\n"
+" -p\twy¶wietlenie listy wszystkich eksportowanych zmiennych i funkcji\n"
+" \n"
+" Argument `--' koñczy dalsze przetwarzanie opcji.\n"
+" \n"
+" Stan wyj¶ciowy:\n"
+" Zwracana jest prawda, chyba ¿e podano nieprawid³ow± opcjê lub NAZWÊ."
#: builtins.c:1151
msgid ""
@@ -3658,6 +3840,22 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is given or NAME is invalid."
msgstr ""
+"Oznaczenie zmiennych pow³oki jako niezmiennych.\n"
+" \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"
+" Opcje:\n"
+" -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"
+" \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
msgid ""
@@ -3695,7 +3893,8 @@ msgstr ""
" Odczytanie i uruchomienie poleceñ z PLIKU w bie¿±cej pow³oce. Do\n"
" znalezienia katalogu zawieraj±cego PLIK u¿ywane s± ¶cie¿ki zawarte\n"
" w $PATH. Je¶li podane zostan± jakiekolwiek ARGUMENTY, staj± siê\n"
-" parametrami pozycyjnymi podczas uruchomienia PLIKU. \n"
+" 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"
" PLIKU nie uda³o siê odczytaæ."
@@ -3983,7 +4182,7 @@ msgstr ""
" \"kill -sygna³ $$\".\n"
" \n"
" Stan wyj¶ciowy:\n"
-" Zwracana jest prawda, chyba ¿e podano b³êdny SYGNAL lub b³êdn± opcjê."
+" Zwracana jest prawda, chyba ¿e podano b³êdny SYGNA£ lub b³êdn± opcjê."
#: builtins.c:1368
msgid ""
@@ -4013,6 +4212,32 @@ msgid ""
" Exit Status:\n"
" Returns success if all of the NAMEs are found; fails if any are not found."
msgstr ""
+"Wy¶wietlenie informacji o rodzaju polecenia.\n"
+" \n"
+" Okre¶lenie, w jaki sposób by³aby interpretowana ka¿da NAZWA w przypadku\n"
+" u¿ycia jako polecenie.\n"
+" \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"
+" \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"
+" \taliasem, poleceniem wbudowanym lub funkcj± i zwrócenie nazwy pliku na\n"
+" \tdysku\n"
+" -p\tzwrócenie nazwy pliku na dysku lub niczego, je¶li `type -t NAZWA'\n"
+" \tnie zwróci³oby `file'.\n"
+" -t\tzwrócenie pojedynczego s³owa: `alias', `keyword', `function',\n"
+" \t`builtin', `file' lub `', je¶li nazwa jest odpowiednio: aliasem,\n"
+" \tzarezerwowanym s³owem kluczowym pow³oki, funkcj± pow³oki, poleceniem\n"
+" \twbudowanym pow³oki, plikiem na dysku lub nie zostanie znaleziona\n"
+" \n"
+" Argumenty:\n"
+" 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"
+" którakolwiek nie zostanie znaleziona."
#: builtins.c:1399
msgid ""
@@ -4112,6 +4337,22 @@ msgid ""
" Exit Status:\n"
" Returns success unless MODE is invalid or an invalid option is given."
msgstr ""
+"Wy¶wietlanie i ustawianie maski uprawnieñ plików.\n"
+" \n"
+" Ustawienie maski uprawnieñ tworzonych plików na UPRAWNIENIA. Je¶li\n"
+" pominiêto UPRAWNIENIA, wypisywana jest aktualna warto¶æ maski.\n"
+" \n"
+" Je¶li UPRAWNIENIA zaczynaj± siê od cyfry, s± interpretowane jako liczba\n"
+" ósemkowa; w przeciwnym wypadku jako ³añcuch symbolicznych uprawnieñ,\n"
+" jak w poleceniu chmod(1).\n"
+" \n"
+" Opcje:\n"
+" -p\tje¶li pominiêto UPRAWNIENIA, wypisywanie w formie nadaj±cej siê\n"
+" \tdo ponownego u¿ycia jako wej¶cie\n"
+" -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ê."
#: builtins.c:1464
msgid ""
@@ -4127,6 +4368,17 @@ msgid ""
" Returns the status of ID; fails if ID is invalid or an invalid option is\n"
" given."
msgstr ""
+"Oczekiwanie na zakoñczenie zadania i zwrócenie stanu (kodu) wyj¶cia.\n"
+" \n"
+" Oczekiwanie na proces o identyfikatorze ID, który mo¿e byæ numerem PID\n"
+" lub okre¶leniem zadania i zg³oszenie jego stanu (kodu) zakoñczenia.\n"
+" Je¶li nie podano ID, polecenie oczekuje na wszystkie aktualnie aktywne\n"
+" procesy potomne i zwraca prawdê. Je¶li ID jest okre¶leniem zadania,\n"
+" oczekuje na wszystkie procesy w potoku przetwarzania danego zadania.\n"
+" \n"
+" Stan wyj¶ciowy:\n"
+" Zwracany jest stan zakoñczenia ID; niepowodzenie, je¶li ID jest\n"
+" nieprawid³owe lub podano b³êdn± opcjê."
#: builtins.c:1482
msgid ""
@@ -4551,6 +4803,59 @@ msgid ""
" HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
" \t\tcommands should be saved on the history list.\n"
msgstr ""
+"Popularne zmienne pow³oki i ich zastosowanie.\n"
+" \n"
+" BASH_VERSION\tInformacja o wersji tego Basha.\n"
+" CDPATH\tRozdzielona dwukropkami lista katalogów do wyszukiwania\n"
+" \t\tkatalogów podanych jako argumenty `cd'.\n"
+" GLOBIGNORE\tRozdzielona dwukropkami lista wzorców nazw plików\n"
+" \t\tdo ignorowania przy rozwijaniu ¶cie¿ek.\n"
+" HISTFILE\tNazwa pliku, w którym zapisywana jest historia poleceñ.\n"
+" HISTFILESIZE\tMaksymalna liczba linii w tym pliku.\n"
+" HISTSIZE\tMaksymalna liczba linii historii, do której ma dostêp\n"
+" \t\tdzia³aj±ca pow³oka.\n"
+" HOME\tPe³na ¶cie¿ka do katalogu logowania.\n"
+" HOSTNAME\tNazwa bie¿±cego hosta.\n"
+" HOSTTYPE\tRodzaj procesora, na jakim dzia³a ta wersja Basha.\n"
+" IGNOREEOF\tSterowanie akcj± pow³oki w przypadku odebrania znaku\n"
+" \t\tEOF jako jedynego wej¶cia. Je¶li zmienna jest ustawiona,\n"
+" \t\tjej warto¶ci± jest liczba znaków EOF, które mog± wyst±piæ\n"
+" \t\tw pustym wierszu przed zakoñczeniem pow³oki (domy¶lnie 10).\n"
+" \t\tJe¶li nie jest ustawiona, EOF oznacza koniec wej¶cia.\n"
+" MACHTYPE\t£añcuch opisuj±cy bie¿±cy system, na jakim dzia³a Bash.\n"
+" MAILCHECK\tOkre¶lenie jak czêsto (w sekundach) Bash ma sprawdzaæ\n"
+" \t\tobecno¶æ nowej poczty.\n"
+" MAILPATH\tRozdzielona dwukropkami lista nazw plików, w których\n"
+" \t\tBash ma sprawdzaæ obecno¶æ nowej poczty.\n"
+" OSTYPE\tWersja Uniksa, na której dzia³a ta wersja Basha.\n"
+" PATH\tRozdzielona dwukropkami lista katalogów do przeszukiwania\n"
+" \t\tprzy wyszukiwaniu poleceñ.\n"
+" PROMPT_COMMAND\tPolecenie do wykonania przed wypisaniem ka¿dego\n"
+" \t\tg³ównego napisu zachêty.\n"
+" PS1\t\tG³ówny napis zachêty.\n"
+" PS2\t\tDrugorzêdny napis zachêty.\n"
+" PWD\t\tPe³na ¶cie¿ka do bie¿±cego katalogu.\n"
+" SHELLOPTS\tRozdzielona dwukropkami lista w³±czonych opcji pow³oki.\n"
+" TERM\tNazwa typu bie¿±cego terminala.\n"
+" TIMEFORMAT\tFormat wyj¶ciowy do statystyk czasu wy¶wietlanych przez\n"
+" \t\tpolecenie wbudowane `time'.\n"
+" auto_resume\tWarto¶æ niepusta oznacza, ¿e s³owo polecenia wystêpuj±ce\n"
+" \t\tw linii jako jedyne jest najpierw wyszukiwane na li¶cie aktualnie\n"
+" \t\tzatrzymanych zadañ. Je¶li tam zostanie znalezione, to zadanie\n"
+" \t\tjest wznawiane jako pierwszoplanowe. Warto¶æ `exact' oznacza, ¿e\n"
+" \t\ts³owo polecenia musi dok³adnie pasowaæ do polecenia na li¶cie\n"
+" \t\tzadañ zatrzymanych. Warto¶æ `substring' oznacza, ¿e s³owo\n"
+" \t\tpolecenia musi pasowaæ do podci±gu zadania. Ka¿da inna warto¶æ\n"
+" \t\toznacza, ¿e polecenie musi byæ przedrostkiem zatrzymanego\n"
+" \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\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
msgid ""
@@ -4599,8 +4904,8 @@ msgstr ""
" -N\tRotacja stosu czyni±ca jego wierzcho³kiem N-ty katalog (licz±c\n"
" \tod prawej strony listy wypisywanej przez `dirs', pocz±wszy od zera).\n"
" \n"
-" dir\tUmieszczenie DIR na wierzcho³ku stosu i uczynienie go nowym\n"
-" \tbie¿±cym katalogiem roboczym.\n"
+" KATALOG\tUmieszczenie KATALOGU na wierzcho³ku stosu i uczynienie go\n"
+" \tnowym bie¿±cym katalogiem roboczym.\n"
" \n"
" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'.\n"
" \n"
@@ -4698,7 +5003,7 @@ msgstr ""
" \tkatalogów wzglêdem katalogu domowego\n"
" -p\twypisanie katalogów ze stosu w osobnych wierszach\n"
" -v\twypisanie katalogów ze stosu w osobnych wierszach, poprzedzaj±c\n"
-" \tka¿dy jego pozych± na stosie\n"
+" \tka¿dy jego pozycj± na stosie\n"
" \n"
" Argumenty:\n"
" +N\tWypisanie N-tej pozycji licz±c od lewej strony listy wypisywanej\n"
@@ -4729,6 +5034,21 @@ msgid ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
msgstr ""
+"Ustawianie i anulowanie opcji pow³oki.\n"
+" \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"
+" -o\tograniczenie NAZW-OPCJI do u¿ywanych z `set -o'\n"
+" -p\twypisanie opcji pow³oki z okre¶leniem stanu\n"
+" -q\tpominiêcie wyj¶cia\n"
+" -s\tw³±czenie (ustawienie) ka¿dej NAZWY-OPCJI\n"
+" -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"
+" podano b³êdn± opcjê lub NAZWA-OPCJI jest wy³±czona."
#: builtins.c:1884
msgid ""
@@ -4756,6 +5076,31 @@ msgid ""
" 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"
+" \n"
+" Opcje:\n"
+" -v ZMIENNA\tprzypisanie wyj¶cia do podanej ZMIENNEJ pow³oki zamiast\n"
+" \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"
+" argumentu.\n"
+" \n"
+" Poza standardowymi sekwencjami formatuj±cymi opisanymi w printf(1) oraz\n"
+" printf(3), printf interpretuje:\n"
+" \n"
+" %b\trozwiniêcie sekwencji z odwrotnym uko¶nikiem w odpowiadaj±cym\n"
+" \targumencie\n"
+" %q\tcytowanie argumentu w sposób umo¿liwiaj±cy u¿ycie na wej¶ciu\n"
+" \tpow³oki\n"
+" %(fmt)T wypisanie ³añcucha daty-czasu otrzymanego z u¿ycia FMT jako\n"
+" ³añcucha formatuj±cego dla strftime(3)\n"
+" \n"
+" Stan wyj¶ciowy:\n"
+" Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub zapis albo\n"
+" przypisanie zakoñczy siê niepowodzeniem."
#: builtins.c:1913
msgid ""
@@ -4781,6 +5126,26 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
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"
+" pozwalaj±cy na ich ponowne u¿ycie jako wej¶cie.\n"
+" \n"
+" Opcje:\n"
+" -p\twypisanie istniej±cych dope³nieñ w formacie do ponownego u¿ycia\n"
+" -r\tusuniêcie specyfikacji dope³niania dla ka¿dej NAZWY lub, je¶li\n"
+" \tnie podano NAZW, wszystkich specyfikacji dope³niania\n"
+" -D\tstosowanie dope³niania i akcji domy¶lnie dla poleceñ bez\n"
+" \tokre¶lonych ¿adnych konkretnych regu³ dope³niania\n"
+" -E\tstosowanie dope³niania i akcji dla \"pustych\" poleceñ -\n"
+" \tpróby dope³nienia w pustej linii\n"
+" \n"
+" Przy próbie dope³nienia akcje s± wykonywane w kolejno¶ci takiej, jak\n"
+" wielkie litery wymienione powy¿ej. Opcja -D ma priorytet nad -E.\n"
+" \n"
+" Stan wyj¶ciowy:\n"
+" Zwracana jest prawda, chyba ¿e podano b³êdn± opcjê lub wyst±pi b³±d."
#: builtins.c:1941
msgid ""
@@ -4829,6 +5194,30 @@ msgid ""
" Returns success unless an invalid option is supplied or NAME does not\n"
" have a completion specification defined."
msgstr ""
+"Zmiana lub wy¶wietlenie opcji dope³niania.\n"
+" \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"
+" \n"
+" Opcje:\n"
+" \t-o opcja\tUstawienie podanej OPCJI dope³niania dla ka¿dej NAZWY\n"
+" \t-D\t\tZmiana opcji dla \"domy¶lnego\" dope³niania polecenia\n"
+" \t-E\t\tZmiana opcji dla dope³niania \"pustego\" polecenia\n"
+" \n"
+" U¿ycie `+o' zamiast `-o' wy³±cza podan± opcjê.\n"
+" \n"
+" Argumenty:\n"
+" \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"
+" 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
msgid ""
@@ -4862,6 +5251,36 @@ msgid ""
" 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"
+" \n"
+" Odczyt linii ze standardowego wej¶cia (lub deskryptora FD, je¶li podano\n"
+" opcjê -u) do zmiennej tablicowej indeksowanej TABLICA. Zmienna MAPFILE\n"
+" jest domy¶ln± TABLIC¡.\n"
+" \n"
+" Opcje:\n"
+" -n liczba\tSkopiowanie maksymalnie podanej LICZBY linii. Je¶li LICZBA\n"
+" \twynosi 0, kopiowane s± wszystkie linie.\n"
+" -O pocz±tek\tRozpoczêcie wpisywania do TABLICY od indeksu POCZ¡TKU.\n"
+" \tDomy¶lny indeks wynosi 0.\n"
+" -s liczba\tPominiêcie pierwszych LICZBA odczytanych linii.\n"
+" -t\t\tUsuniêcie koñcowego znaku koñca linii z ka¿dej wczytanej linii.\n"
+" -u fd\t\tOdczyt linii z deskryptora FD zamiast standardowego wej¶cia.\n"
+" -C wywo³anie\tObliczenie WYWO£ANIA po odczycie ka¿dego CO-ILE linii.\n"
+" -c CO-OLE\tLiczba linii do wczytania miêdzy ka¿dym WYWO£ANIEM.\n"
+" \n"
+" Argumenty:\n"
+" 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"
+" 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"
+" do odczytu, lub nie jest tablic± indeksowan±."
#: builtins.c:2020
msgid ""
diff --git a/po/sl.po b/po/sl.po
index cc06f54d..ca88620f 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -3,13 +3,13 @@
# This file is distributed under the same license as the bash package.
# Primož PETERLIN <primozz.peterlin@gmail.com>, 2011.
#
-# $Id: bash-4.2.sl.po,v 1.4 2011/03/16 22:05:29 peterlin Exp $
+# $Id: bash-4.2.sl.po,v 1.5 2011/03/27 20:33:04 peterlin Exp $
msgid ""
msgstr ""
"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: 2011-03-16 23:05+0100\n"
+"PO-Revision-Date: 2011-03-27 22:32+0200\n"
"Last-Translator: Primož PETERLIN <primozz.peterlin@gmail.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
"Language: sl\n"
@@ -20,7 +20,7 @@ msgstr ""
#: arrayfunc.c:50
msgid "bad array subscript"
-msgstr ""
+msgstr "slab indeks polja"
#: arrayfunc.c:313 builtins/declare.def:487
#, c-format
@@ -40,7 +40,7 @@ msgstr "%s: ni mogoÄe dodeliti neÅ¡tevilÄnemu indeksu"
#: arrayfunc.c:518
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
+msgstr "%s: %s: pri dodeljevanju asociativnega polja je treba uporabiti indeks"
#: bashhist.c:387
#, c-format
@@ -49,7 +49,7 @@ msgstr "%s: ni mogoÄe ustvariti: %s"
#: bashline.c:3498
msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
+msgstr "bash_execute_unix_command: bližnjice za ukaz ni mogoÄe najti"
#: bashline.c:3584
#, c-format
@@ -78,7 +78,7 @@ msgstr "urejanje vrstice ni omogoÄeno"
#: builtins/bind.def:206
#, c-format
msgid "`%s': invalid keymap name"
-msgstr ""
+msgstr "»%s«: neveljavno ime preslikave tipkovnice"
#: builtins/bind.def:245
#, c-format
@@ -98,12 +98,12 @@ msgstr "»%s«: neznano ime funkcije"
#: builtins/bind.def:303
#, c-format
msgid "%s is not bound to any keys.\n"
-msgstr ""
+msgstr "%s ni prirejen nobeni tipki.\n"
#: builtins/bind.def:307
#, c-format
msgid "%s can be invoked via "
-msgstr ""
+msgstr "%s je mogoÄe poklicati prek "
#: builtins/break.def:77 builtins/break.def:117
msgid "loop count"
@@ -119,6 +119,9 @@ msgid ""
" \n"
" Without EXPR, returns "
msgstr ""
+"Vrne kontekst trenutnega klica podprograma.\n"
+"\n"
+" ÄŒe IZRAZ ni podan, vrne "
#: builtins/cd.def:235
msgid "HOME not set"
@@ -2351,6 +2354,18 @@ msgid ""
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
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"
+" za sledenje sklada.\n"
+"\n"
+" Vrednost IZRAZA doloÄa, za koliko okvirov klicev glede na trenutnega se\n"
+" vrnemo; vrhnji okvir nosi Å¡tevilko 0.\n"
+"\n"
+" Izhodni status:\n"
+" Vrne se vrednost 0, razen Äe ukazna lupina ne izvaja funkcije ukazne\n"
+" lupine, ali pa Äe je IZRAZ neveljaven."
#: builtins.c:383
msgid ""
@@ -2381,6 +2396,31 @@ msgid ""
" 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"
+" 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"
+"\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"
+" -L\tvedno se sledi simbolnim povezavam\n"
+" -P\tuporabi se fiziÄna struktura imenikov brez sledenja simbolnim\n"
+" povezavam\n"
+" -e\tÄe je podana izbira -P in trenutnega delovnega imenika ni\n"
+"\t\tmogoÄe ugotoviti, zakljuÄi z ne-niÄelnim statusom\n"
+"\n"
+" Izhodni status:\n"
+" Vrne se vrednost 0 Äe je bil imenik zamenjan, ter Äe je bila lupinska\n"
+" spremenljivka $PWD uspeÅ¡no posodobljena pri izbiri -P; sicer ne-niÄelna\n"
+" vrednost."
#: builtins.c:414
msgid ""
@@ -2397,6 +2437,18 @@ msgid ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
msgstr ""
+"Izpiše ime trenutnega delovnega imenika.\n"
+"\n"
+" Izbire:\n"
+" -L\tizpiÅ¡e vrednost lupinske spremenljivke $PWD, Äe ta vsebuje\n"
+"\t\time trenutnega delovnega imenika\n"
+" -P\tizpiÅ¡e fiziÄni imenik brez simbolnih povezav\n"
+"\n"
+" 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"
+" ni mogoÄe prebrati."
#: builtins.c:431
msgid ""
@@ -2407,6 +2459,12 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Prazen ukaz.\n"
+"\n"
+" Brez uÄinka; ta ukaz ne napravi niÄesar.\n"
+"\n"
+" Izhodni status:\n"
+" Vedno uspel."
#: builtins.c:442
msgid ""
@@ -2415,6 +2473,10 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Vrni uspeli status.\n"
+"\n"
+" Izhodni status:\n"
+" Vedno uspel."
#: builtins.c:451
msgid ""
@@ -2423,6 +2485,10 @@ msgid ""
" Exit Status:\n"
" Always fails."
msgstr ""
+"Vrni neuspeli status.\n"
+"\n"
+" Izhodni status:\n"
+" Vedno neuspel."
#: builtins.c:460
msgid ""
@@ -2651,6 +2717,10 @@ msgid ""
" Exits the shell with a status of N. If N is omitted, the exit status\n"
" is that of the last command executed."
msgstr ""
+"Izidi iz ukazne lupine.\n"
+"\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
msgid ""
diff --git a/print_cmd.c b/print_cmd.c
index 9baf5522..f0ef2856 100644
--- a/print_cmd.c
+++ b/print_cmd.c
@@ -131,7 +131,8 @@ static REDIRECT *deferred_heredocs;
static int group_command_nesting;
/* A buffer to indicate the indirection level (PS4) when set -x is enabled. */
-static char indirection_string[100];
+static char *indirection_string = 0;
+static int indirection_stringsiz = 0;
/* Print COMMAND (a command tree) on standard output. */
void
@@ -417,10 +418,12 @@ indirection_level_string ()
register int i, j;
char *ps4;
char ps4_firstc[MB_LEN_MAX+1];
- int ps4_firstc_len, ps4_len;
+ int ps4_firstc_len, ps4_len, ineed;
- indirection_string[0] = '\0';
ps4 = get_string_value ("PS4");
+ if (indirection_string == 0)
+ indirection_string = xmalloc (indirection_stringsiz = 100);
+ indirection_string[0] = '\0';
if (ps4 == 0 || *ps4 == '\0')
return (indirection_string);
@@ -446,8 +449,17 @@ indirection_level_string ()
ps4_firstc[0] = ps4[0];
ps4_firstc[ps4_firstc_len = 1] = '\0';
#endif
-
- for (i = j = 0; ps4_firstc[0] && j < indirection_level && i < 99; i += ps4_firstc_len, j++)
+
+ /* Dynamically resize indirection_string so we have room for everything
+ and we don't have to truncate ps4 */
+ ineed = (ps4_firstc_len * indirection_level) + strlen (ps4);
+ if (ineed > indirection_stringsiz - 1)
+ {
+ indirection_stringsiz = ineed + 1;
+ indirection_string = xrealloc (indirection_string, indirection_stringsiz);
+ }
+
+ for (i = j = 0; ps4_firstc[0] && j < indirection_level && i < indirection_stringsiz - 1; i += ps4_firstc_len, j++)
{
if (ps4_firstc_len == 1)
indirection_string[i] = ps4_firstc[0];
@@ -455,7 +467,7 @@ indirection_level_string ()
memcpy (indirection_string+i, ps4_firstc, ps4_firstc_len);
}
- for (j = ps4_firstc_len; *ps4 && ps4[j] && i < 99; i++, j++)
+ for (j = ps4_firstc_len; *ps4 && ps4[j] && i < indirection_stringsiz - 1; i++, j++)
indirection_string[i] = ps4[j];
indirection_string[i] = '\0';
diff --git a/print_cmd.c~ b/print_cmd.c~
new file mode 100644
index 00000000..19cbcd31
--- /dev/null
+++ b/print_cmd.c~
@@ -0,0 +1,1552 @@
+/* print_command -- A way to make readable commands from a command tree. */
+
+/* Copyright (C) 1989-2010 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 <stdio.h>
+
+#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
+# include <unistd.h>
+#endif
+
+#if defined (PREFER_STDARG)
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+
+#include "bashansi.h"
+#include "bashintl.h"
+
+#include "shell.h"
+#include "flags.h"
+#include <y.tab.h> /* use <...> so we pick it up from the build directory */
+
+#include "shmbutil.h"
+
+#include "builtins/common.h"
+
+#if !HAVE_DECL_PRINTF
+extern int printf __P((const char *, ...)); /* Yuck. Double yuck. */
+#endif
+
+extern int indirection_level;
+
+static int indentation;
+static int indentation_amount = 4;
+
+#if defined (PREFER_STDARG)
+typedef void PFUNC __P((const char *, ...));
+
+static void cprintf __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
+static void xprintf __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
+#else
+#define PFUNC VFunction
+static void cprintf ();
+static void xprintf ();
+#endif
+
+static void reset_locals __P((void));
+static void newline __P((char *));
+static void indent __P((int));
+static void semicolon __P((void));
+static void the_printed_command_resize __P((int));
+
+static void make_command_string_internal __P((COMMAND *));
+static void _print_word_list __P((WORD_LIST *, char *, PFUNC *));
+static void command_print_word_list __P((WORD_LIST *, char *));
+static void print_case_clauses __P((PATTERN_LIST *));
+static void print_redirection_list __P((REDIRECT *));
+static void print_redirection __P((REDIRECT *));
+static void print_heredoc_header __P((REDIRECT *));
+static void print_heredoc_body __P((REDIRECT *));
+static void print_heredocs __P((REDIRECT *));
+static void print_deferred_heredocs __P((const char *));
+
+static void print_for_command __P((FOR_COM *));
+#if defined (ARITH_FOR_COMMAND)
+static void print_arith_for_command __P((ARITH_FOR_COM *));
+#endif
+#if defined (SELECT_COMMAND)
+static void print_select_command __P((SELECT_COM *));
+#endif
+static void print_group_command __P((GROUP_COM *));
+static void print_case_command __P((CASE_COM *));
+static void print_while_command __P((WHILE_COM *));
+static void print_until_command __P((WHILE_COM *));
+static void print_until_or_while __P((WHILE_COM *, char *));
+static void print_if_command __P((IF_COM *));
+#if defined (COND_COMMAND)
+static void print_cond_node __P((COND_COM *));
+#endif
+static void print_function_def __P((FUNCTION_DEF *));
+
+#define PRINTED_COMMAND_INITIAL_SIZE 64
+#define PRINTED_COMMAND_GROW_SIZE 128
+
+char *the_printed_command = (char *)NULL;
+int the_printed_command_size = 0;
+int command_string_index = 0;
+
+int xtrace_fd = -1;
+FILE *xtrace_fp = 0;
+
+#define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
+
+#define PRINT_DEFERRED_HEREDOCS(x) \
+ do { \
+ if (deferred_heredocs) \
+ print_deferred_heredocs (x); \
+ } while (0)
+
+/* Non-zero means the stuff being printed is inside of a function def. */
+static int inside_function_def;
+static int skip_this_indent;
+static int was_heredoc;
+static int printing_connection;
+static REDIRECT *deferred_heredocs;
+
+/* The depth of the group commands that we are currently printing. This
+ includes the group command that is a function body. */
+static int group_command_nesting;
+
+/* A buffer to indicate the indirection level (PS4) when set -x is enabled. */
+static char *indirection_string = 0;
+static int indirection_stringsiz = 0;
+
+/* Print COMMAND (a command tree) on standard output. */
+void
+print_command (command)
+ COMMAND *command;
+{
+ command_string_index = 0;
+ printf ("%s", make_command_string (command));
+}
+
+/* Make a string which is the printed representation of the command
+ tree in COMMAND. We return this string. However, the string is
+ not consed, so you have to do that yourself if you want it to
+ remain around. */
+char *
+make_command_string (command)
+ COMMAND *command;
+{
+ command_string_index = was_heredoc = 0;
+ deferred_heredocs = 0;
+ make_command_string_internal (command);
+ return (the_printed_command);
+}
+
+/* The internal function. This is the real workhorse. */
+static void
+make_command_string_internal (command)
+ COMMAND *command;
+{
+ char s[3];
+
+ if (command == 0)
+ cprintf ("");
+ else
+ {
+ if (skip_this_indent)
+ skip_this_indent--;
+ else
+ indent (indentation);
+
+ if (command->flags & CMD_TIME_PIPELINE)
+ {
+ cprintf ("time ");
+ if (command->flags & CMD_TIME_POSIX)
+ cprintf ("-p ");
+ }
+
+ if (command->flags & CMD_INVERT_RETURN)
+ cprintf ("! ");
+
+ switch (command->type)
+ {
+ case cm_for:
+ print_for_command (command->value.For);
+ break;
+
+#if defined (ARITH_FOR_COMMAND)
+ case cm_arith_for:
+ print_arith_for_command (command->value.ArithFor);
+ break;
+#endif
+
+#if defined (SELECT_COMMAND)
+ case cm_select:
+ print_select_command (command->value.Select);
+ break;
+#endif
+
+ case cm_case:
+ print_case_command (command->value.Case);
+ break;
+
+ case cm_while:
+ print_while_command (command->value.While);
+ break;
+
+ case cm_until:
+ print_until_command (command->value.While);
+ break;
+
+ case cm_if:
+ print_if_command (command->value.If);
+ break;
+
+#if defined (DPAREN_ARITHMETIC)
+ case cm_arith:
+ print_arith_command (command->value.Arith->exp);
+ break;
+#endif
+
+#if defined (COND_COMMAND)
+ case cm_cond:
+ print_cond_command (command->value.Cond);
+ break;
+#endif
+
+ case cm_simple:
+ print_simple_command (command->value.Simple);
+ break;
+
+ case cm_connection:
+
+ skip_this_indent++;
+ printing_connection++;
+ make_command_string_internal (command->value.Connection->first);
+
+ switch (command->value.Connection->connector)
+ {
+ case '&':
+ case '|':
+ {
+ char c = command->value.Connection->connector;
+
+ s[0] = ' ';
+ s[1] = c;
+ s[2] = '\0';
+
+ print_deferred_heredocs (s);
+
+ if (c != '&' || command->value.Connection->second)
+ {
+ cprintf (" ");
+ skip_this_indent++;
+ }
+ }
+ break;
+
+ case AND_AND:
+ print_deferred_heredocs (" && ");
+ if (command->value.Connection->second)
+ skip_this_indent++;
+ break;
+
+ case OR_OR:
+ print_deferred_heredocs (" || ");
+ if (command->value.Connection->second)
+ skip_this_indent++;
+ break;
+
+ case ';':
+ if (deferred_heredocs == 0)
+ {
+ if (was_heredoc == 0)
+ cprintf (";");
+ else
+ was_heredoc = 0;
+ }
+ else
+ print_deferred_heredocs (inside_function_def ? "" : ";");
+
+ if (inside_function_def)
+ cprintf ("\n");
+ else
+ {
+ cprintf (" ");
+ if (command->value.Connection->second)
+ skip_this_indent++;
+ }
+ break;
+
+ default:
+ cprintf (_("print_command: bad connector `%d'"),
+ command->value.Connection->connector);
+ break;
+ }
+
+ make_command_string_internal (command->value.Connection->second);
+ PRINT_DEFERRED_HEREDOCS ("");
+ printing_connection--;
+ break;
+
+ case cm_function_def:
+ print_function_def (command->value.Function_def);
+ break;
+
+ case cm_group:
+ print_group_command (command->value.Group);
+ break;
+
+ case cm_subshell:
+ cprintf ("( ");
+ skip_this_indent++;
+ make_command_string_internal (command->value.Subshell->command);
+ cprintf (" )");
+ break;
+
+ case cm_coproc:
+ cprintf ("coproc %s ", command->value.Coproc->name);
+ skip_this_indent++;
+ make_command_string_internal (command->value.Coproc->command);
+ break;
+
+ default:
+ command_error ("print_command", CMDERR_BADTYPE, command->type, 0);
+ break;
+ }
+
+
+ if (command->redirects)
+ {
+ cprintf (" ");
+ print_redirection_list (command->redirects);
+ }
+ }
+}
+
+static void
+_print_word_list (list, separator, pfunc)
+ WORD_LIST *list;
+ char *separator;
+ PFUNC *pfunc;
+{
+ WORD_LIST *w;
+
+ for (w = list; w; w = w->next)
+ (*pfunc) ("%s%s", w->word->word, w->next ? separator : "");
+}
+
+void
+print_word_list (list, separator)
+ WORD_LIST *list;
+ char *separator;
+{
+ _print_word_list (list, separator, xprintf);
+}
+
+void
+xtrace_set (fd, fp)
+ int fd;
+ FILE *fp;
+{
+ if (fd >= 0 && sh_validfd (fd) == 0)
+ {
+ internal_error (_("xtrace_set: %d: invalid file descriptor"), fd);
+ return;
+ }
+ if (fp == 0)
+ {
+ internal_error (_("xtrace_set: NULL file pointer"));
+ return;
+ }
+ if (fd >= 0 && fileno (fp) != fd)
+ internal_warning (_("xtrace fd (%d) != fileno xtrace fp (%d)"), fd, fileno (fp));
+
+ xtrace_fd = fd;
+ xtrace_fp = fp;
+}
+
+void
+xtrace_init ()
+{
+ xtrace_set (-1, stderr);
+}
+
+void
+xtrace_reset ()
+{
+ if (xtrace_fd >= 0 && xtrace_fp)
+ {
+ fflush (xtrace_fp);
+ fclose (xtrace_fp);
+ }
+ else if (xtrace_fd >= 0)
+ close (xtrace_fd);
+
+ xtrace_fd = -1;
+ xtrace_fp = stderr;
+}
+
+void
+xtrace_fdchk (fd)
+ int fd;
+{
+ if (fd == xtrace_fd)
+ xtrace_reset ();
+}
+
+/* Return a string denoting what our indirection level is. */
+
+char *
+indirection_level_string ()
+{
+ register int i, j;
+ char *ps4;
+ char ps4_firstc[MB_LEN_MAX+1];
+ int ps4_firstc_len, ps4_len, ineed;
+
+ ps4 = get_string_value ("PS4");
+ if (indirection_string == 0)
+ indirection_string = xmalloc (indirection_stringsiz = 100);
+ indirection_string[0] = '\0';
+
+ if (ps4 == 0 || *ps4 == '\0')
+ return (indirection_string);
+
+ change_flag ('x', FLAG_OFF);
+ ps4 = decode_prompt_string (ps4);
+ change_flag ('x', FLAG_ON);
+
+ if (ps4 == 0 || *ps4 == '\0')
+ return (indirection_string);
+
+#if defined (HANDLE_MULTIBYTE)
+ ps4_len = strnlen (ps4, MB_CUR_MAX);
+ ps4_firstc_len = MBLEN (ps4, ps4_len);
+ if (ps4_firstc_len == 1 || ps4_firstc_len == 0 || ps4_firstc_len < 0)
+ {
+ ps4_firstc[0] = ps4[0];
+ ps4_firstc[ps4_firstc_len = 1] = '\0';
+ }
+ else
+ memcpy (ps4_firstc, ps4, ps4_firstc_len);
+#else
+ ps4_firstc[0] = ps4[0];
+ ps4_firstc[ps4_firstc_len = 1] = '\0';
+#endif
+
+ for (i = j = 0; ps4_firstc[0] && j < indirection_level && i < indirection_stringsiz - 1; i += ps4_firstc_len, j++)
+ {
+ if (ps4_firstc_len == 1)
+ indirection_string[i] = ps4_firstc[0];
+ else
+ memcpy (indirection_string+i, ps4_firstc, ps4_firstc_len);
+ }
+
+ for (j = ps4_firstc_len; *ps4 && ps4[j] && i < indirection_stringsiz - 1; i++, j++)
+ indirection_string[i] = ps4[j];
+
+ indirection_string[i] = '\0';
+ free (ps4);
+ return (indirection_string);
+}
+
+void
+xtrace_print_assignment (name, value, assign_list, xflags)
+ char *name, *value;
+ int assign_list, xflags;
+{
+ char *nval;
+
+ CHECK_XTRACE_FP;
+
+ if (xflags)
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+
+ /* VALUE should not be NULL when this is called. */
+ if (*value == '\0' || assign_list)
+ nval = value;
+ else if (sh_contains_shell_metas (value))
+ nval = sh_single_quote (value);
+ else if (ansic_shouldquote (value))
+ nval = ansic_quote (value, 0, (int *)0);
+ else
+ nval = value;
+
+ if (assign_list)
+ fprintf (xtrace_fp, "%s=(%s)\n", name, nval);
+ else
+ fprintf (xtrace_fp, "%s=%s\n", name, nval);
+
+ if (nval != value)
+ FREE (nval);
+
+ fflush (xtrace_fp);
+}
+
+/* A function to print the words of a simple command when set -x is on. */
+void
+xtrace_print_word_list (list, xtflags)
+ WORD_LIST *list;
+ int xtflags;
+{
+ WORD_LIST *w;
+ char *t, *x;
+
+ CHECK_XTRACE_FP;
+
+ if (xtflags)
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+
+ for (w = list; w; w = w->next)
+ {
+ t = w->word->word;
+ if (t == 0 || *t == '\0')
+ fprintf (xtrace_fp, "''%s", w->next ? " " : "");
+ else if (sh_contains_shell_metas (t))
+ {
+ x = sh_single_quote (t);
+ fprintf (xtrace_fp, "%s%s", x, w->next ? " " : "");
+ free (x);
+ }
+ else if (ansic_shouldquote (t))
+ {
+ x = ansic_quote (t, 0, (int *)0);
+ fprintf (xtrace_fp, "%s%s", x, w->next ? " " : "");
+ free (x);
+ }
+ else
+ fprintf (xtrace_fp, "%s%s", t, w->next ? " " : "");
+ }
+ fprintf (xtrace_fp, "\n");
+ fflush (xtrace_fp);
+}
+
+static void
+command_print_word_list (list, separator)
+ WORD_LIST *list;
+ char *separator;
+{
+ _print_word_list (list, separator, cprintf);
+}
+
+void
+print_for_command_head (for_command)
+ FOR_COM *for_command;
+{
+ cprintf ("for %s in ", for_command->name->word);
+ command_print_word_list (for_command->map_list, " ");
+}
+
+void
+xtrace_print_for_command_head (for_command)
+ FOR_COM *for_command;
+{
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "for %s in ", for_command->name->word);
+ xtrace_print_word_list (for_command->map_list, 0);
+}
+
+static void
+print_for_command (for_command)
+ FOR_COM *for_command;
+{
+ print_for_command_head (for_command);
+ cprintf (";");
+ newline ("do\n");
+
+ indentation += indentation_amount;
+ make_command_string_internal (for_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ indentation -= indentation_amount;
+
+ newline ("done");
+}
+
+#if defined (ARITH_FOR_COMMAND)
+static void
+print_arith_for_command (arith_for_command)
+ ARITH_FOR_COM *arith_for_command;
+{
+ cprintf ("for ((");
+ command_print_word_list (arith_for_command->init, " ");
+ cprintf ("; ");
+ command_print_word_list (arith_for_command->test, " ");
+ cprintf ("; ");
+ command_print_word_list (arith_for_command->step, " ");
+ cprintf ("))");
+ newline ("do\n");
+ indentation += indentation_amount;
+ make_command_string_internal (arith_for_command->action);
+ semicolon ();
+ indentation -= indentation_amount;
+ newline ("done");
+}
+#endif /* ARITH_FOR_COMMAND */
+
+#if defined (SELECT_COMMAND)
+void
+print_select_command_head (select_command)
+ SELECT_COM *select_command;
+{
+ cprintf ("select %s in ", select_command->name->word);
+ command_print_word_list (select_command->map_list, " ");
+}
+
+void
+xtrace_print_select_command_head (select_command)
+ SELECT_COM *select_command;
+{
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "select %s in ", select_command->name->word);
+ xtrace_print_word_list (select_command->map_list, 0);
+}
+
+static void
+print_select_command (select_command)
+ SELECT_COM *select_command;
+{
+ print_select_command_head (select_command);
+
+ cprintf (";");
+ newline ("do\n");
+ indentation += indentation_amount;
+ make_command_string_internal (select_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ indentation -= indentation_amount;
+ newline ("done");
+}
+#endif /* SELECT_COMMAND */
+
+static void
+print_group_command (group_command)
+ GROUP_COM *group_command;
+{
+ group_command_nesting++;
+ cprintf ("{ ");
+
+ if (inside_function_def == 0)
+ skip_this_indent++;
+ else
+ {
+ /* This is a group command { ... } inside of a function
+ definition, and should be printed as a multiline group
+ command, using the current indentation. */
+ cprintf ("\n");
+ indentation += indentation_amount;
+ }
+
+ make_command_string_internal (group_command->command);
+
+ if (inside_function_def)
+ {
+ cprintf ("\n");
+ indentation -= indentation_amount;
+ indent (indentation);
+ }
+ else
+ {
+ semicolon ();
+ cprintf (" ");
+ }
+
+ cprintf ("}");
+
+ group_command_nesting--;
+}
+
+void
+print_case_command_head (case_command)
+ CASE_COM *case_command;
+{
+ cprintf ("case %s in ", case_command->word->word);
+}
+
+void
+xtrace_print_case_command_head (case_command)
+ CASE_COM *case_command;
+{
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "case %s in\n", case_command->word->word);
+}
+
+static void
+print_case_command (case_command)
+ CASE_COM *case_command;
+{
+ print_case_command_head (case_command);
+
+ if (case_command->clauses)
+ print_case_clauses (case_command->clauses);
+ newline ("esac");
+}
+
+static void
+print_case_clauses (clauses)
+ PATTERN_LIST *clauses;
+{
+ indentation += indentation_amount;
+ while (clauses)
+ {
+ newline ("");
+ command_print_word_list (clauses->patterns, " | ");
+ cprintf (")\n");
+ indentation += indentation_amount;
+ make_command_string_internal (clauses->action);
+ indentation -= indentation_amount;
+ PRINT_DEFERRED_HEREDOCS ("");
+ if (clauses->flags & CASEPAT_FALLTHROUGH)
+ newline (";&");
+ else if (clauses->flags & CASEPAT_TESTNEXT)
+ newline (";;&");
+ else
+ newline (";;");
+ clauses = clauses->next;
+ }
+ indentation -= indentation_amount;
+}
+
+static void
+print_while_command (while_command)
+ WHILE_COM *while_command;
+{
+ print_until_or_while (while_command, "while");
+}
+
+static void
+print_until_command (while_command)
+ WHILE_COM *while_command;
+{
+ print_until_or_while (while_command, "until");
+}
+
+static void
+print_until_or_while (while_command, which)
+ WHILE_COM *while_command;
+ char *which;
+{
+ cprintf ("%s ", which);
+ skip_this_indent++;
+ make_command_string_internal (while_command->test);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ cprintf (" do\n"); /* was newline ("do\n"); */
+ indentation += indentation_amount;
+ make_command_string_internal (while_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ indentation -= indentation_amount;
+ semicolon ();
+ newline ("done");
+}
+
+static void
+print_if_command (if_command)
+ IF_COM *if_command;
+{
+ cprintf ("if ");
+ skip_this_indent++;
+ make_command_string_internal (if_command->test);
+ semicolon ();
+ cprintf (" then\n");
+ indentation += indentation_amount;
+ make_command_string_internal (if_command->true_case);
+ PRINT_DEFERRED_HEREDOCS ("");
+ indentation -= indentation_amount;
+
+ if (if_command->false_case)
+ {
+ semicolon ();
+ newline ("else\n");
+ indentation += indentation_amount;
+ make_command_string_internal (if_command->false_case);
+ PRINT_DEFERRED_HEREDOCS ("");
+ indentation -= indentation_amount;
+ }
+ semicolon ();
+ newline ("fi");
+}
+
+#if defined (DPAREN_ARITHMETIC)
+void
+print_arith_command (arith_cmd_list)
+ WORD_LIST *arith_cmd_list;
+{
+ cprintf ("((");
+ command_print_word_list (arith_cmd_list, " ");
+ cprintf ("))");
+}
+#endif
+
+#if defined (COND_COMMAND)
+static void
+print_cond_node (cond)
+ COND_COM *cond;
+{
+ if (cond->flags & CMD_INVERT_RETURN)
+ cprintf ("! ");
+
+ if (cond->type == COND_EXPR)
+ {
+ cprintf ("( ");
+ print_cond_node (cond->left);
+ cprintf (" )");
+ }
+ else if (cond->type == COND_AND)
+ {
+ print_cond_node (cond->left);
+ cprintf (" && ");
+ print_cond_node (cond->right);
+ }
+ else if (cond->type == COND_OR)
+ {
+ print_cond_node (cond->left);
+ cprintf (" || ");
+ print_cond_node (cond->right);
+ }
+ else if (cond->type == COND_UNARY)
+ {
+ cprintf ("%s", cond->op->word);
+ cprintf (" ");
+ print_cond_node (cond->left);
+ }
+ else if (cond->type == COND_BINARY)
+ {
+ print_cond_node (cond->left);
+ cprintf (" ");
+ cprintf ("%s", cond->op->word);
+ cprintf (" ");
+ print_cond_node (cond->right);
+ }
+ else if (cond->type == COND_TERM)
+ {
+ cprintf ("%s", cond->op->word); /* need to add quoting here */
+ }
+}
+
+void
+print_cond_command (cond)
+ COND_COM *cond;
+{
+ cprintf ("[[ ");
+ print_cond_node (cond);
+ cprintf (" ]]");
+}
+
+#ifdef DEBUG
+void
+debug_print_cond_command (cond)
+ COND_COM *cond;
+{
+ fprintf (stderr, "DEBUG: ");
+ command_string_index = 0;
+ print_cond_command (cond);
+ fprintf (stderr, "%s\n", the_printed_command);
+}
+#endif
+
+void
+xtrace_print_cond_term (type, invert, op, arg1, arg2)
+ int type, invert;
+ WORD_DESC *op;
+ char *arg1, *arg2;
+{
+ CHECK_XTRACE_FP;
+ command_string_index = 0;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "[[ ");
+ if (invert)
+ fprintf (xtrace_fp, "! ");
+
+ if (type == COND_UNARY)
+ {
+ fprintf (xtrace_fp, "%s ", op->word);
+ fprintf (xtrace_fp, "%s", (arg1 && *arg1) ? arg1 : "''");
+ }
+ else if (type == COND_BINARY)
+ {
+ fprintf (xtrace_fp, "%s", (arg1 && *arg1) ? arg1 : "''");
+ fprintf (xtrace_fp, " %s ", op->word);
+ fprintf (xtrace_fp, "%s", (arg2 && *arg2) ? arg2 : "''");
+ }
+
+ fprintf (xtrace_fp, " ]]\n");
+
+ fflush (xtrace_fp);
+}
+#endif /* COND_COMMAND */
+
+#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND)
+/* A function to print the words of an arithmetic command when set -x is on. */
+void
+xtrace_print_arith_cmd (list)
+ WORD_LIST *list;
+{
+ WORD_LIST *w;
+
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "(( ");
+ for (w = list; w; w = w->next)
+ fprintf (xtrace_fp, "%s%s", w->word->word, w->next ? " " : "");
+ fprintf (xtrace_fp, " ))\n");
+
+ fflush (xtrace_fp);
+}
+#endif
+
+void
+print_simple_command (simple_command)
+ SIMPLE_COM *simple_command;
+{
+ command_print_word_list (simple_command->words, " ");
+
+ if (simple_command->redirects)
+ {
+ cprintf (" ");
+ print_redirection_list (simple_command->redirects);
+ }
+}
+
+static void
+print_heredocs (heredocs)
+ REDIRECT *heredocs;
+{
+ REDIRECT *hdtail;
+
+ cprintf (" ");
+ for (hdtail = heredocs; hdtail; hdtail = hdtail->next)
+ {
+ print_redirection (hdtail);
+ cprintf ("\n");
+ }
+ was_heredoc = 1;
+}
+
+/* Print heredocs that are attached to the command before the connector
+ represented by CSTRING. The parsing semantics require us to print the
+ here-doc delimiters, then the connector (CSTRING), then the here-doc
+ bodies. We don't print the connector if it's a `;', but we use it to
+ note not to print an extra space after the last heredoc body and
+ newline. */
+static void
+print_deferred_heredocs (cstring)
+ const char *cstring;
+{
+ REDIRECT *hdtail;
+
+ for (hdtail = deferred_heredocs; hdtail; hdtail = hdtail->next)
+ {
+ cprintf (" ");
+ print_heredoc_header (hdtail);
+ }
+ if (cstring[0] && (cstring[0] != ';' || cstring[1]))
+ cprintf ("%s", cstring);
+ if (deferred_heredocs)
+ cprintf ("\n");
+ for (hdtail = deferred_heredocs; hdtail; hdtail = hdtail->next)
+ {
+ print_heredoc_body (hdtail);
+ cprintf ("\n");
+ }
+ if (deferred_heredocs)
+ {
+ if (cstring && cstring[0] && (cstring[0] != ';' || cstring[1]))
+ cprintf (" "); /* make sure there's at least one space */
+ dispose_redirects (deferred_heredocs);
+ was_heredoc = 1;
+ }
+ deferred_heredocs = (REDIRECT *)NULL;
+}
+
+static void
+print_redirection_list (redirects)
+ REDIRECT *redirects;
+{
+ REDIRECT *heredocs, *hdtail, *newredir;
+
+ heredocs = (REDIRECT *)NULL;
+ hdtail = heredocs;
+
+ was_heredoc = 0;
+ while (redirects)
+ {
+ /* Defer printing the here documents until we've printed the
+ rest of the redirections. */
+ if (redirects->instruction == r_reading_until || redirects->instruction == r_deblank_reading_until)
+ {
+ newredir = copy_redirect (redirects);
+ newredir->next = (REDIRECT *)NULL;
+ if (heredocs)
+ {
+ hdtail->next = newredir;
+ hdtail = newredir;
+ }
+ else
+ hdtail = heredocs = newredir;
+ }
+ else if (redirects->instruction == r_duplicating_output_word && redirects->redirector.dest == 1)
+ {
+ /* Temporarily translate it as the execution code does. */
+ redirects->instruction = r_err_and_out;
+ print_redirection (redirects);
+ redirects->instruction = r_duplicating_output_word;
+ }
+ else
+ print_redirection (redirects);
+
+ redirects = redirects->next;
+ if (redirects)
+ cprintf (" ");
+ }
+
+ /* Now that we've printed all the other redirections (on one line),
+ print the here documents. */
+ if (heredocs && printing_connection)
+ deferred_heredocs = heredocs;
+ else if (heredocs)
+ {
+ print_heredocs (heredocs);
+ dispose_redirects (heredocs);
+ }
+}
+
+static void
+print_heredoc_header (redirect)
+ REDIRECT *redirect;
+{
+ int kill_leading;
+ char *x;
+
+ kill_leading = redirect->instruction == r_deblank_reading_until;
+
+ /* Here doc header */
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redirect->redirector.filename->word);
+ else if (redirect->redirector.dest != 0)
+ cprintf ("%d", redirect->redirector.dest);
+
+ /* If the here document delimiter is quoted, single-quote it. */
+ if (redirect->redirectee.filename->flags & W_QUOTED)
+ {
+ x = sh_single_quote (redirect->here_doc_eof);
+ cprintf ("<<%s%s", kill_leading ? "-" : "", x);
+ free (x);
+ }
+ else
+ cprintf ("<<%s%s", kill_leading ? "-" : "", redirect->here_doc_eof);
+}
+
+static void
+print_heredoc_body (redirect)
+ REDIRECT *redirect;
+{
+ /* Here doc body */
+ cprintf ("%s%s", redirect->redirectee.filename->word, redirect->here_doc_eof);
+}
+
+static void
+print_redirection (redirect)
+ REDIRECT *redirect;
+{
+ int redirector, redir_fd;
+ WORD_DESC *redirectee, *redir_word;
+
+ redirectee = redirect->redirectee.filename;
+ redir_fd = redirect->redirectee.dest;
+
+ redir_word = redirect->redirector.filename;
+ redirector = redirect->redirector.dest;
+
+ switch (redirect->instruction)
+ {
+ case r_input_direction:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 0)
+ cprintf ("%d", redirector);
+ cprintf ("< %s", redirectee->word);
+ break;
+
+ case r_output_direction:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf ("> %s", redirectee->word);
+ break;
+
+ case r_inputa_direction: /* Redirection created by the shell. */
+ cprintf ("&");
+ break;
+
+ case r_output_force:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf (">|%s", redirectee->word);
+ break;
+
+ case r_appending_to:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf (">> %s", redirectee->word);
+ break;
+
+ case r_input_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf ("<> %s", redirectee->word);
+ break;
+
+ case r_deblank_reading_until:
+ case r_reading_until:
+ print_heredoc_header (redirect);
+ cprintf ("\n");
+ print_heredoc_body (redirect);
+ break;
+
+ case r_reading_string:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 0)
+ cprintf ("%d", redirector);
+#if 0
+ /* Don't need to check whether or not to requote, since original quotes
+ are still intact. The only thing that has happened is that $'...'
+ has been replaced with 'expanded ...'. */
+ if (ansic_shouldquote (redirect->redirectee.filename->word))
+ {
+ char *x;
+ x = ansic_quote (redirect->redirectee.filename->word, 0, (int *)0);
+ cprintf ("<<< %s", x);
+ free (x);
+ }
+ else
+#endif
+ cprintf ("<<< %s", redirect->redirectee.filename->word);
+ break;
+
+ case r_duplicating_input:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%d", redir_word->word, redir_fd);
+ else
+ cprintf ("%d<&%d", redirector, redir_fd);
+ break;
+
+ case r_duplicating_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%d", redir_word->word, redir_fd);
+ else
+ cprintf ("%d>&%d", redirector, redir_fd);
+ break;
+
+ case r_duplicating_input_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%s", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d<&%s", redirector, redirectee->word);
+ break;
+
+ case r_duplicating_output_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%s", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d>&%s", redirector, redirectee->word);
+ break;
+
+ case r_move_input:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%d-", redir_word->word, redir_fd);
+ else
+ cprintf ("%d<&%d-", redirector, redir_fd);
+ break;
+
+ case r_move_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%d-", redir_word->word, redir_fd);
+ else
+ cprintf ("%d>&%d-", redirector, redir_fd);
+ break;
+
+ case r_move_input_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%s-", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d<&%s-", redirector, redirectee->word);
+ break;
+
+ case r_move_output_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%s-", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d>&%s-", redirector, redirectee->word);
+ break;
+
+ case r_close_this:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&-", redir_word->word);
+ else
+ cprintf ("%d>&-", redirector);
+ break;
+
+ case r_err_and_out:
+ cprintf ("&>%s", redirectee->word);
+ break;
+
+ case r_append_err_and_out:
+ cprintf ("&>>%s", redirectee->word);
+ break;
+ }
+}
+
+static void
+reset_locals ()
+{
+ inside_function_def = 0;
+ indentation = 0;
+ printing_connection = 0;
+ deferred_heredocs = 0;
+}
+
+static void
+print_function_def (func)
+ FUNCTION_DEF *func;
+{
+ COMMAND *cmdcopy;
+ REDIRECT *func_redirects;
+
+ func_redirects = NULL;
+ cprintf ("function %s () \n", func->name->word);
+ add_unwind_protect (reset_locals, 0);
+
+ indent (indentation);
+ cprintf ("{ \n");
+
+ inside_function_def++;
+ indentation += indentation_amount;
+
+ cmdcopy = copy_command (func->command);
+ if (cmdcopy->type == cm_group)
+ {
+ func_redirects = cmdcopy->redirects;
+ cmdcopy->redirects = (REDIRECT *)NULL;
+ }
+ make_command_string_internal (cmdcopy->type == cm_group
+ ? cmdcopy->value.Group->command
+ : cmdcopy);
+
+ remove_unwind_protect ();
+ indentation -= indentation_amount;
+ inside_function_def--;
+
+ if (func_redirects)
+ { /* { */
+ newline ("} ");
+ print_redirection_list (func_redirects);
+ cmdcopy->redirects = func_redirects;
+ }
+ else
+ newline ("}");
+
+ dispose_command (cmdcopy);
+}
+
+/* Return the string representation of the named function.
+ NAME is the name of the function.
+ COMMAND is the function body. It should be a GROUP_COM.
+ flags&FUNC_MULTILINE is non-zero to pretty-print, or zero for all on one line.
+ flags&FUNC_EXTERNAL means convert from internal to external form
+ */
+char *
+named_function_string (name, command, flags)
+ char *name;
+ COMMAND *command;
+ int flags;
+{
+ char *result;
+ int old_indent, old_amount;
+ COMMAND *cmdcopy;
+ REDIRECT *func_redirects;
+
+ old_indent = indentation;
+ old_amount = indentation_amount;
+ command_string_index = was_heredoc = 0;
+ deferred_heredocs = 0;
+
+ if (name && *name)
+ cprintf ("%s ", name);
+
+ cprintf ("() ");
+
+ if ((flags & FUNC_MULTILINE) == 0)
+ {
+ indentation = 1;
+ indentation_amount = 0;
+ }
+ else
+ {
+ cprintf ("\n");
+ indentation += indentation_amount;
+ }
+
+ inside_function_def++;
+
+ cprintf ((flags & FUNC_MULTILINE) ? "{ \n" : "{ ");
+
+ cmdcopy = copy_command (command);
+ /* Take any redirections specified in the function definition (which should
+ apply to the function as a whole) and save them for printing later. */
+ func_redirects = (REDIRECT *)NULL;
+ if (cmdcopy->type == cm_group)
+ {
+ func_redirects = cmdcopy->redirects;
+ cmdcopy->redirects = (REDIRECT *)NULL;
+ }
+ make_command_string_internal (cmdcopy->type == cm_group
+ ? cmdcopy->value.Group->command
+ : cmdcopy);
+
+ indentation = old_indent;
+ indentation_amount = old_amount;
+ inside_function_def--;
+
+ if (func_redirects)
+ { /* { */
+ newline ("} ");
+ print_redirection_list (func_redirects);
+ cmdcopy->redirects = func_redirects;
+ }
+ else
+ newline ("}");
+
+ result = the_printed_command;
+
+ if ((flags & FUNC_MULTILINE) == 0)
+ {
+#if 0
+ register int i;
+ for (i = 0; result[i]; i++)
+ if (result[i] == '\n')
+ {
+ strcpy (result + i, result + i + 1);
+ --i;
+ }
+#else
+ if (result[2] == '\n') /* XXX -- experimental */
+ strcpy (result + 2, result + 3);
+#endif
+ }
+
+ dispose_command (cmdcopy);
+
+ if (flags & FUNC_EXTERNAL)
+ result = remove_quoted_escapes (result);
+
+ return (result);
+}
+
+static void
+newline (string)
+ char *string;
+{
+ cprintf ("\n");
+ indent (indentation);
+ if (string && *string)
+ cprintf ("%s", string);
+}
+
+static char *indentation_string;
+static int indentation_size;
+
+static void
+indent (amount)
+ int amount;
+{
+ register int i;
+
+ RESIZE_MALLOCED_BUFFER (indentation_string, 0, amount, indentation_size, 16);
+
+ for (i = 0; amount > 0; amount--)
+ indentation_string[i++] = ' ';
+ indentation_string[i] = '\0';
+ cprintf (indentation_string);
+}
+
+static void
+semicolon ()
+{
+ if (command_string_index > 0 &&
+ (the_printed_command[command_string_index - 1] == '&' ||
+ the_printed_command[command_string_index - 1] == '\n'))
+ return;
+ cprintf (";");
+}
+
+/* How to make the string. */
+static void
+#if defined (PREFER_STDARG)
+cprintf (const char *control, ...)
+#else
+cprintf (control, va_alist)
+ const char *control;
+ va_dcl
+#endif
+{
+ register const char *s;
+ char char_arg[2], *argp, intbuf[INT_STRLEN_BOUND (int) + 1];
+ int digit_arg, arg_len, c;
+ va_list args;
+
+ SH_VA_START (args, control);
+
+ arg_len = strlen (control);
+ the_printed_command_resize (arg_len + 1);
+
+ char_arg[1] = '\0';
+ s = control;
+ while (s && *s)
+ {
+ c = *s++;
+ argp = (char *)NULL;
+ if (c != '%' || !*s)
+ {
+ char_arg[0] = c;
+ argp = char_arg;
+ arg_len = 1;
+ }
+ else
+ {
+ c = *s++;
+ switch (c)
+ {
+ case '%':
+ char_arg[0] = c;
+ argp = char_arg;
+ arg_len = 1;
+ break;
+
+ case 's':
+ argp = va_arg (args, char *);
+ arg_len = strlen (argp);
+ break;
+
+ case 'd':
+ /* Represent an out-of-range file descriptor with an out-of-range
+ integer value. We can do this because the only use of `%d' in
+ the calls to cprintf is to output a file descriptor number for
+ a redirection. */
+ digit_arg = va_arg (args, int);
+ if (digit_arg < 0)
+ {
+ sprintf (intbuf, "%u", (unsigned)-1);
+ argp = intbuf;
+ }
+ else
+ argp = inttostr (digit_arg, intbuf, sizeof (intbuf));
+ arg_len = strlen (argp);
+ break;
+
+ case 'c':
+ char_arg[0] = va_arg (args, int);
+ argp = char_arg;
+ arg_len = 1;
+ break;
+
+ default:
+ programming_error (_("cprintf: `%c': invalid format character"), c);
+ /*NOTREACHED*/
+ }
+ }
+
+ if (argp && arg_len)
+ {
+ the_printed_command_resize (arg_len + 1);
+ FASTCOPY (argp, the_printed_command + command_string_index, arg_len);
+ command_string_index += arg_len;
+ }
+ }
+
+ the_printed_command[command_string_index] = '\0';
+}
+
+/* Ensure that there is enough space to stuff LENGTH characters into
+ THE_PRINTED_COMMAND. */
+static void
+the_printed_command_resize (length)
+ int length;
+{
+ if (the_printed_command == 0)
+ {
+ the_printed_command_size = (length + PRINTED_COMMAND_INITIAL_SIZE - 1) & ~(PRINTED_COMMAND_INITIAL_SIZE - 1);
+ the_printed_command = (char *)xmalloc (the_printed_command_size);
+ command_string_index = 0;
+ }
+ else if ((command_string_index + length) >= the_printed_command_size)
+ {
+ int new;
+ new = command_string_index + length + 1;
+
+ /* Round up to the next multiple of PRINTED_COMMAND_GROW_SIZE. */
+ new = (new + PRINTED_COMMAND_GROW_SIZE - 1) & ~(PRINTED_COMMAND_GROW_SIZE - 1);
+ the_printed_command_size = new;
+
+ the_printed_command = (char *)xrealloc (the_printed_command, the_printed_command_size);
+ }
+}
+
+#if defined (HAVE_VPRINTF)
+/* ``If vprintf is available, you may assume that vfprintf and vsprintf are
+ also available.'' */
+
+static void
+#if defined (PREFER_STDARG)
+xprintf (const char *format, ...)
+#else
+xprintf (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ SH_VA_START (args, format);
+
+ vfprintf (stdout, format, args);
+ va_end (args);
+}
+
+#else
+
+static void
+xprintf (format, arg1, arg2, arg3, arg4, arg5)
+ const char *format;
+{
+ printf (format, arg1, arg2, arg3, arg4, arg5);
+}
+
+#endif /* !HAVE_VPRINTF */
diff --git a/trap.c b/trap.c
index 86665e7a..8ccccd1b 100644
--- a/trap.c
+++ b/trap.c
@@ -1,7 +1,7 @@
/* trap.c -- Not the trap command, but useful functions for manipulating
those objects. The trap command is in builtins/trap.def. */
-/* Copyright (C) 1987-2010 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2011 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -176,7 +176,7 @@ initialize_traps ()
}
}
-#ifdef INCLUDE_UNUSED
+#ifdef DEBUG
/* Return a printable representation of the trap handler for SIG. */
static char *
trap_handler_string (sig)
@@ -276,6 +276,8 @@ run_pending_traps ()
if (catch_flag == 0) /* simple optimization */
return;
+itrace("run_pending_traps: ");
+
catch_flag = 0;
/* Preserve $? when running trap. */
@@ -387,6 +389,8 @@ trap_handler (sig)
SIGRETURN (0);
}
+itrace("trap_handler: sig = %d", sig);
+
if ((sig >= NSIG) ||
(trap_list[sig] == (char *)DEFAULT_SIG) ||
(trap_list[sig] == (char *)IGNORE_SIG))
@@ -940,14 +944,20 @@ run_interrupt_trap ()
/* Free all the allocated strings in the list of traps and reset the trap
values to the default. Intended to be called from subshells that want
to complete work done by reset_signal_handlers upon execution of a
- subsequent `trap' command that changes a signal's disposition. */
+ subsequent `trap' command that changes a signal's disposition. We need
+ to make sure that we duplicate the behavior of
+ reset_or_restore_signal_handlers and not change the disposition of signals
+ that are set to be ignored. */
void
free_trap_strings ()
{
register int i;
for (i = 0; i < BASH_NSIG; i++)
- free_trap_string (i);
+ {
+ if (trap_list[i] != (char *)IGNORE_SIG)
+ free_trap_string (i);
+ }
trap_list[DEBUG_TRAP] = trap_list[EXIT_TRAP] = trap_list[ERROR_TRAP] = trap_list[RETURN_TRAP] = (char *)NULL;
}
diff --git a/trap.c~ b/trap.c~
new file mode 100644
index 00000000..08333714
--- /dev/null
+++ b/trap.c~
@@ -0,0 +1,1129 @@
+/* trap.c -- Not the trap command, but useful functions for manipulating
+ those objects. The trap command is in builtins/trap.def. */
+
+/* Copyright (C) 1987-2011 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)
+# include <unistd.h>
+#endif
+
+#include "bashtypes.h"
+#include "bashansi.h"
+
+#include <stdio.h>
+#include <errno.h>
+
+#include "bashintl.h"
+
+#include "trap.h"
+
+#include "shell.h"
+#include "flags.h"
+#include "input.h" /* for save_token_state, restore_token_state */
+#include "jobs.h"
+#include "signames.h"
+#include "builtins.h"
+#include "builtins/common.h"
+#include "builtins/builtext.h"
+
+#ifndef errno
+extern int errno;
+#endif
+
+/* Flags which describe the current handling state of a signal. */
+#define SIG_INHERITED 0x0 /* Value inherited from parent. */
+#define SIG_TRAPPED 0x1 /* Currently trapped. */
+#define SIG_HARD_IGNORE 0x2 /* Signal was ignored on shell entry. */
+#define SIG_SPECIAL 0x4 /* Treat this signal specially. */
+#define SIG_NO_TRAP 0x8 /* Signal cannot be trapped. */
+#define SIG_INPROGRESS 0x10 /* Signal handler currently executing. */
+#define SIG_CHANGED 0x20 /* Trap value changed in trap handler. */
+#define SIG_IGNORED 0x40 /* The signal is currently being ignored. */
+
+#define SPECIAL_TRAP(s) ((s) == EXIT_TRAP || (s) == DEBUG_TRAP || (s) == ERROR_TRAP || (s) == RETURN_TRAP)
+
+/* An array of such flags, one for each signal, describing what the
+ shell will do with a signal. DEBUG_TRAP == NSIG; some code below
+ assumes this. */
+static int sigmodes[BASH_NSIG];
+
+static void free_trap_command __P((int));
+static void change_signal __P((int, char *));
+
+static void get_original_signal __P((int));
+
+static int _run_trap_internal __P((int, char *));
+
+static void free_trap_string __P((int));
+static void reset_signal __P((int));
+static void restore_signal __P((int));
+static void reset_or_restore_signal_handlers __P((sh_resetsig_func_t *));
+
+/* Variables used here but defined in other files. */
+extern int last_command_exit_value;
+extern int line_number;
+
+extern char *this_command_name;
+extern sh_builtin_func_t *this_shell_builtin;
+extern procenv_t wait_intr_buf;
+extern int return_catch_flag, return_catch_value;
+extern int subshell_level;
+extern WORD_LIST *subst_assign_varlist;
+
+/* The list of things to do originally, before we started trapping. */
+SigHandler *original_signals[NSIG];
+
+/* For each signal, a slot for a string, which is a command to be
+ executed when that signal is recieved. The slot can also contain
+ DEFAULT_SIG, which means do whatever you were going to do before
+ you were so rudely interrupted, or IGNORE_SIG, which says ignore
+ this signal. */
+char *trap_list[BASH_NSIG];
+
+/* A bitmap of signals received for which we have trap handlers. */
+int pending_traps[NSIG];
+
+/* Set to the number of the signal we're running the trap for + 1.
+ Used in execute_cmd.c and builtins/common.c to clean up when
+ parse_and_execute does not return normally after executing the
+ trap command (e.g., when `return' is executed in the trap command). */
+int running_trap;
+
+/* Set to last_command_exit_value before running a trap. */
+int trap_saved_exit_value;
+
+/* The (trapped) signal received while executing in the `wait' builtin */
+int wait_signal_received;
+
+#define GETORIGSIG(sig) \
+ do { \
+ original_signals[sig] = (SigHandler *)set_signal_handler (sig, SIG_DFL); \
+ set_signal_handler (sig, original_signals[sig]); \
+ if (original_signals[sig] == SIG_IGN) \
+ sigmodes[sig] |= SIG_HARD_IGNORE; \
+ } while (0)
+
+#define SETORIGSIG(sig,handler) \
+ do { \
+ original_signals[sig] = handler; \
+ if (original_signals[sig] == SIG_IGN) \
+ sigmodes[sig] |= SIG_HARD_IGNORE; \
+ } while (0)
+
+#define GET_ORIGINAL_SIGNAL(sig) \
+ if (sig && sig < NSIG && original_signals[sig] == IMPOSSIBLE_TRAP_HANDLER) \
+ GETORIGSIG(sig)
+
+void
+initialize_traps ()
+{
+ register int i;
+
+ initialize_signames();
+
+ trap_list[EXIT_TRAP] = trap_list[DEBUG_TRAP] = trap_list[ERROR_TRAP] = trap_list[RETURN_TRAP] = (char *)NULL;
+ sigmodes[EXIT_TRAP] = sigmodes[DEBUG_TRAP] = sigmodes[ERROR_TRAP] = sigmodes[RETURN_TRAP] = SIG_INHERITED;
+ original_signals[EXIT_TRAP] = IMPOSSIBLE_TRAP_HANDLER;
+
+ for (i = 1; i < NSIG; i++)
+ {
+ pending_traps[i] = 0;
+ trap_list[i] = (char *)DEFAULT_SIG;
+ sigmodes[i] = SIG_INHERITED; /* XXX - only set, not used */
+ original_signals[i] = IMPOSSIBLE_TRAP_HANDLER;
+ }
+
+ /* Show which signals are treated specially by the shell. */
+#if defined (SIGCHLD)
+ GETORIGSIG (SIGCHLD);
+ sigmodes[SIGCHLD] |= (SIG_SPECIAL | SIG_NO_TRAP);
+#endif /* SIGCHLD */
+
+ GETORIGSIG (SIGINT);
+ sigmodes[SIGINT] |= SIG_SPECIAL;
+
+#if defined (__BEOS__)
+ /* BeOS sets SIGINT to SIG_IGN! */
+ original_signals[SIGINT] = SIG_DFL;
+ sigmodes[SIGINT] &= ~SIG_HARD_IGNORE;
+#endif
+
+ GETORIGSIG (SIGQUIT);
+ sigmodes[SIGQUIT] |= SIG_SPECIAL;
+
+ if (interactive)
+ {
+ GETORIGSIG (SIGTERM);
+ sigmodes[SIGTERM] |= SIG_SPECIAL;
+ }
+}
+
+#ifdef DEBUG
+/* Return a printable representation of the trap handler for SIG. */
+static char *
+trap_handler_string (sig)
+ int sig;
+{
+ if (trap_list[sig] == (char *)DEFAULT_SIG)
+ return "DEFAULT_SIG";
+ else if (trap_list[sig] == (char *)IGNORE_SIG)
+ return "IGNORE_SIG";
+ else if (trap_list[sig] == (char *)IMPOSSIBLE_TRAP_HANDLER)
+ return "IMPOSSIBLE_TRAP_HANDLER";
+ else if (trap_list[sig])
+ return trap_list[sig];
+ else
+ return "NULL";
+}
+#endif
+
+/* Return the print name of this signal. */
+char *
+signal_name (sig)
+ int sig;
+{
+ char *ret;
+
+ /* on cygwin32, signal_names[sig] could be null */
+ ret = (sig >= BASH_NSIG || sig < 0 || signal_names[sig] == NULL)
+ ? _("invalid signal number")
+ : signal_names[sig];
+
+ return ret;
+}
+
+/* Turn a string into a signal number, or a number into
+ a signal number. If STRING is "2", "SIGINT", or "INT",
+ then (int)2 is returned. Return NO_SIG if STRING doesn't
+ contain a valid signal descriptor. */
+int
+decode_signal (string, flags)
+ char *string;
+ int flags;
+{
+ intmax_t sig;
+ char *name;
+
+ if (legal_number (string, &sig))
+ return ((sig >= 0 && sig < NSIG) ? (int)sig : NO_SIG);
+
+ /* A leading `SIG' may be omitted. */
+ for (sig = 0; sig < BASH_NSIG; sig++)
+ {
+ name = signal_names[sig];
+ if (name == 0 || name[0] == '\0')
+ continue;
+
+ /* Check name without the SIG prefix first case sensitivly or
+ insensitively depending on whether flags includes DSIG_NOCASE */
+ if (STREQN (name, "SIG", 3))
+ {
+ name += 3;
+
+ if ((flags & DSIG_NOCASE) && strcasecmp (string, name) == 0)
+ return ((int)sig);
+ else if ((flags & DSIG_NOCASE) == 0 && strcmp (string, name) == 0)
+ return ((int)sig);
+ /* If we can't use the `SIG' prefix to match, punt on this
+ name now. */
+ else if ((flags & DSIG_SIGPREFIX) == 0)
+ continue;
+ }
+
+ /* Check name with SIG prefix case sensitively or insensitively
+ depending on whether flags includes DSIG_NOCASE */
+ name = signal_names[sig];
+ if ((flags & DSIG_NOCASE) && strcasecmp (string, name) == 0)
+ return ((int)sig);
+ else if ((flags & DSIG_NOCASE) == 0 && strcmp (string, name) == 0)
+ return ((int)sig);
+ }
+
+ return (NO_SIG);
+}
+
+/* Non-zero when we catch a trapped signal. */
+static int catch_flag;
+
+void
+run_pending_traps ()
+{
+ register int sig;
+ int old_exit_value, *token_state;
+ WORD_LIST *save_subst_varlist;
+#if defined (ARRAY_VARS)
+ ARRAY *ps;
+#endif
+
+ if (catch_flag == 0) /* simple optimization */
+ return;
+
+itrace("run_pending_traps: ");
+
+ catch_flag = 0;
+
+ /* Preserve $? when running trap. */
+ old_exit_value = last_command_exit_value;
+#if defined (ARRAY_VARS)
+ ps = save_pipestatus_array ();
+#endif
+
+ for (sig = 1; sig < NSIG; sig++)
+ {
+ /* XXX this could be made into a counter by using
+ while (pending_traps[sig]--) instead of the if statement. */
+ if (pending_traps[sig])
+ {
+#if defined (HAVE_POSIX_SIGNALS)
+ sigset_t set, oset;
+
+ sigemptyset (&set);
+ sigemptyset (&oset);
+
+ sigaddset (&set, sig);
+ sigprocmask (SIG_BLOCK, &set, &oset);
+#else
+# if defined (HAVE_BSD_SIGNALS)
+ int oldmask = sigblock (sigmask (sig));
+# endif
+#endif /* HAVE_POSIX_SIGNALS */
+
+ if (sig == SIGINT)
+ {
+ run_interrupt_trap ();
+ CLRINTERRUPT;
+ }
+#if defined (JOB_CONTROL) && defined (SIGCHLD)
+ else if (sig == SIGCHLD &&
+ trap_list[SIGCHLD] != (char *)IMPOSSIBLE_TRAP_HANDLER &&
+ (sigmodes[SIGCHLD] & SIG_INPROGRESS) == 0)
+ {
+ run_sigchld_trap (pending_traps[sig]); /* use as counter */
+ }
+#endif
+ else if (trap_list[sig] == (char *)DEFAULT_SIG ||
+ trap_list[sig] == (char *)IGNORE_SIG ||
+ trap_list[sig] == (char *)IMPOSSIBLE_TRAP_HANDLER)
+ {
+ /* This is possible due to a race condition. Say a bash
+ process has SIGTERM trapped. A subshell is spawned
+ using { list; } & and the parent does something and kills
+ the subshell with SIGTERM. It's possible for the subshell
+ to set pending_traps[SIGTERM] to 1 before the code in
+ execute_cmd.c eventually calls restore_original_signals
+ to reset the SIGTERM signal handler in the subshell. The
+ next time run_pending_traps is called, pending_traps[SIGTERM]
+ will be 1, but the trap handler in trap_list[SIGTERM] will
+ be invalid (probably DEFAULT_SIG, but it could be IGNORE_SIG).
+ Unless we catch this, the subshell will dump core when
+ trap_list[SIGTERM] == DEFAULT_SIG, because DEFAULT_SIG is
+ usually 0x0. */
+ internal_warning (_("run_pending_traps: bad value in trap_list[%d]: %p"),
+ sig, trap_list[sig]);
+ if (trap_list[sig] == (char *)DEFAULT_SIG)
+ {
+ internal_warning (_("run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"), sig, signal_name (sig));
+ kill (getpid (), sig);
+ }
+ }
+ else
+ {
+ token_state = save_token_state ();
+ save_subst_varlist = subst_assign_varlist;
+ subst_assign_varlist = 0;
+
+ parse_and_execute (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
+ restore_token_state (token_state);
+ free (token_state);
+
+ subst_assign_varlist = save_subst_varlist;
+ }
+
+ pending_traps[sig] = 0;
+
+#if defined (HAVE_POSIX_SIGNALS)
+ sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL);
+#else
+# if defined (HAVE_BSD_SIGNALS)
+ sigsetmask (oldmask);
+# endif
+#endif /* POSIX_VERSION */
+ }
+ }
+
+#if defined (ARRAY_VARS)
+ restore_pipestatus_array (ps);
+#endif
+ last_command_exit_value = old_exit_value;
+}
+
+sighandler
+trap_handler (sig)
+ int sig;
+{
+ int oerrno;
+
+ if ((sigmodes[sig] & SIG_TRAPPED) == 0)
+ {
+#if defined (DEBUG)
+ internal_warning ("trap_handler: signal %d: signal not trapped", sig);
+#endif
+ SIGRETURN (0);
+ }
+
+ if ((sig >= NSIG) ||
+ (trap_list[sig] == (char *)DEFAULT_SIG) ||
+ (trap_list[sig] == (char *)IGNORE_SIG))
+ programming_error (_("trap_handler: bad signal %d"), sig);
+ else
+ {
+ oerrno = errno;
+#if defined (MUST_REINSTALL_SIGHANDLERS)
+# if defined (JOB_CONTROL) && defined (SIGCHLD)
+ if (sig != SIGCHLD)
+# endif /* JOB_CONTROL && SIGCHLD */
+ set_signal_handler (sig, trap_handler);
+#endif /* MUST_REINSTALL_SIGHANDLERS */
+
+ catch_flag = 1;
+ pending_traps[sig]++;
+
+ if (interrupt_immediately && this_shell_builtin && (this_shell_builtin == wait_builtin))
+ {
+ wait_signal_received = sig;
+ longjmp (wait_intr_buf, 1);
+ }
+
+ if (interrupt_immediately)
+ run_pending_traps ();
+
+ errno = oerrno;
+ }
+
+ SIGRETURN (0);
+}
+
+#if defined (JOB_CONTROL) && defined (SIGCHLD)
+
+#ifdef INCLUDE_UNUSED
+/* Make COMMAND_STRING be executed when SIGCHLD is caught. */
+void
+set_sigchld_trap (command_string)
+ char *command_string;
+{
+ set_signal (SIGCHLD, command_string);
+}
+#endif
+
+/* Make COMMAND_STRING be executed when SIGCHLD is caught iff SIGCHLD
+ is not already trapped. IMPOSSIBLE_TRAP_HANDLER is used as a sentinel
+ to make sure that a SIGCHLD trap handler run via run_sigchld_trap can
+ reset the disposition to the default and not have the original signal
+ accidentally restored, undoing the user's command. */
+void
+maybe_set_sigchld_trap (command_string)
+ char *command_string;
+{
+ if ((sigmodes[SIGCHLD] & SIG_TRAPPED) == 0 && trap_list[SIGCHLD] == (char *)IMPOSSIBLE_TRAP_HANDLER)
+ set_signal (SIGCHLD, command_string);
+}
+
+/* Temporarily set the SIGCHLD trap string to IMPOSSIBLE_TRAP_HANDLER. Used
+ as a sentinel in run_sigchld_trap and maybe_set_sigchld_trap to see whether
+ or not a SIGCHLD trap handler reset SIGCHLD disposition to the default. */
+void
+set_impossible_sigchld_trap ()
+{
+ restore_default_signal (SIGCHLD);
+ change_signal (SIGCHLD, (char *)IMPOSSIBLE_TRAP_HANDLER);
+ sigmodes[SIGCHLD] &= ~SIG_TRAPPED; /* maybe_set_sigchld_trap checks this */
+}
+#endif /* JOB_CONTROL && SIGCHLD */
+
+void
+set_debug_trap (command)
+ char *command;
+{
+ set_signal (DEBUG_TRAP, command);
+}
+
+void
+set_error_trap (command)
+ char *command;
+{
+ set_signal (ERROR_TRAP, command);
+}
+
+void
+set_return_trap (command)
+ char *command;
+{
+ set_signal (RETURN_TRAP, command);
+}
+
+#ifdef INCLUDE_UNUSED
+void
+set_sigint_trap (command)
+ char *command;
+{
+ set_signal (SIGINT, command);
+}
+#endif
+
+/* Reset the SIGINT handler so that subshells that are doing `shellsy'
+ things, like waiting for command substitution or executing commands
+ in explicit subshells ( ( cmd ) ), can catch interrupts properly. */
+SigHandler *
+set_sigint_handler ()
+{
+ if (sigmodes[SIGINT] & SIG_HARD_IGNORE)
+ return ((SigHandler *)SIG_IGN);
+
+ else if (sigmodes[SIGINT] & SIG_IGNORED)
+ return ((SigHandler *)set_signal_handler (SIGINT, SIG_IGN)); /* XXX */
+
+ else if (sigmodes[SIGINT] & SIG_TRAPPED)
+ return ((SigHandler *)set_signal_handler (SIGINT, trap_handler));
+
+ /* The signal is not trapped, so set the handler to the shell's special
+ interrupt handler. */
+ else if (interactive) /* XXX - was interactive_shell */
+ return (set_signal_handler (SIGINT, sigint_sighandler));
+ else
+ return (set_signal_handler (SIGINT, termsig_sighandler));
+}
+
+/* Return the correct handler for signal SIG according to the values in
+ sigmodes[SIG]. */
+SigHandler *
+trap_to_sighandler (sig)
+ int sig;
+{
+ if (sigmodes[sig] & (SIG_IGNORED|SIG_HARD_IGNORE))
+ return (SIG_IGN);
+ else if (sigmodes[sig] & SIG_TRAPPED)
+ return (trap_handler);
+ else
+ return (SIG_DFL);
+}
+
+/* Set SIG to call STRING as a command. */
+void
+set_signal (sig, string)
+ int sig;
+ char *string;
+{
+ if (SPECIAL_TRAP (sig))
+ {
+ change_signal (sig, savestring (string));
+ if (sig == EXIT_TRAP && interactive == 0)
+ initialize_terminating_signals ();
+ return;
+ }
+
+ /* A signal ignored on entry to the shell cannot be trapped or reset, but
+ no error is reported when attempting to do so. -- Posix.2 */
+ if (sigmodes[sig] & SIG_HARD_IGNORE)
+ return;
+
+ /* Make sure we have original_signals[sig] if the signal has not yet
+ been trapped. */
+ if ((sigmodes[sig] & SIG_TRAPPED) == 0)
+ {
+ /* If we aren't sure of the original value, check it. */
+ if (original_signals[sig] == IMPOSSIBLE_TRAP_HANDLER)
+ GETORIGSIG (sig);
+ if (original_signals[sig] == SIG_IGN)
+ return;
+ }
+
+ /* Only change the system signal handler if SIG_NO_TRAP is not set.
+ The trap command string is changed in either case. The shell signal
+ handlers for SIGINT and SIGCHLD run the user specified traps in an
+ environment in which it is safe to do so. */
+ if ((sigmodes[sig] & SIG_NO_TRAP) == 0)
+ {
+ set_signal_handler (sig, SIG_IGN);
+ change_signal (sig, savestring (string));
+ set_signal_handler (sig, trap_handler);
+ }
+ else
+ change_signal (sig, savestring (string));
+}
+
+static void
+free_trap_command (sig)
+ int sig;
+{
+ if ((sigmodes[sig] & SIG_TRAPPED) && trap_list[sig] &&
+ (trap_list[sig] != (char *)IGNORE_SIG) &&
+ (trap_list[sig] != (char *)DEFAULT_SIG) &&
+ (trap_list[sig] != (char *)IMPOSSIBLE_TRAP_HANDLER))
+ free (trap_list[sig]);
+}
+
+/* If SIG has a string assigned to it, get rid of it. Then give it
+ VALUE. */
+static void
+change_signal (sig, value)
+ int sig;
+ char *value;
+{
+ if ((sigmodes[sig] & SIG_INPROGRESS) == 0)
+ free_trap_command (sig);
+ trap_list[sig] = value;
+
+ sigmodes[sig] |= SIG_TRAPPED;
+ if (value == (char *)IGNORE_SIG)
+ sigmodes[sig] |= SIG_IGNORED;
+ else
+ sigmodes[sig] &= ~SIG_IGNORED;
+ if (sigmodes[sig] & SIG_INPROGRESS)
+ sigmodes[sig] |= SIG_CHANGED;
+}
+
+static void
+get_original_signal (sig)
+ int sig;
+{
+ /* If we aren't sure the of the original value, then get it. */
+ if (sig > 0 && sig < NSIG && original_signals[sig] == (SigHandler *)IMPOSSIBLE_TRAP_HANDLER)
+ GETORIGSIG (sig);
+}
+
+void
+get_all_original_signals ()
+{
+ register int i;
+
+ for (i = 1; i < NSIG; i++)
+ GET_ORIGINAL_SIGNAL (i);
+}
+
+void
+set_original_signal (sig, handler)
+ int sig;
+ SigHandler *handler;
+{
+ if (sig > 0 && sig < NSIG && original_signals[sig] == (SigHandler *)IMPOSSIBLE_TRAP_HANDLER)
+ SETORIGSIG (sig, handler);
+}
+
+/* Restore the default action for SIG; i.e., the action the shell
+ would have taken before you used the trap command. This is called
+ from trap_builtin (), which takes care to restore the handlers for
+ the signals the shell treats specially. */
+void
+restore_default_signal (sig)
+ int sig;
+{
+ if (SPECIAL_TRAP (sig))
+ {
+ if ((sig != DEBUG_TRAP && sig != ERROR_TRAP && sig != RETURN_TRAP) ||
+ (sigmodes[sig] & SIG_INPROGRESS) == 0)
+ free_trap_command (sig);
+ trap_list[sig] = (char *)NULL;
+ sigmodes[sig] &= ~SIG_TRAPPED;
+ if (sigmodes[sig] & SIG_INPROGRESS)
+ sigmodes[sig] |= SIG_CHANGED;
+ return;
+ }
+
+ GET_ORIGINAL_SIGNAL (sig);
+
+ /* A signal ignored on entry to the shell cannot be trapped or reset, but
+ no error is reported when attempting to do so. Thanks Posix.2. */
+ if (sigmodes[sig] & SIG_HARD_IGNORE)
+ return;
+
+ /* If we aren't trapping this signal, don't bother doing anything else. */
+ if ((sigmodes[sig] & SIG_TRAPPED) == 0)
+ return;
+
+ /* Only change the signal handler for SIG if it allows it. */
+ if ((sigmodes[sig] & SIG_NO_TRAP) == 0)
+ set_signal_handler (sig, original_signals[sig]);
+
+ /* Change the trap command in either case. */
+ change_signal (sig, (char *)DEFAULT_SIG);
+
+ /* Mark the signal as no longer trapped. */
+ sigmodes[sig] &= ~SIG_TRAPPED;
+}
+
+/* Make this signal be ignored. */
+void
+ignore_signal (sig)
+ int sig;
+{
+ if (SPECIAL_TRAP (sig) && ((sigmodes[sig] & SIG_IGNORED) == 0))
+ {
+ change_signal (sig, (char *)IGNORE_SIG);
+ return;
+ }
+
+ GET_ORIGINAL_SIGNAL (sig);
+
+ /* A signal ignored on entry to the shell cannot be trapped or reset.
+ No error is reported when the user attempts to do so. */
+ if (sigmodes[sig] & SIG_HARD_IGNORE)
+ return;
+
+ /* If already trapped and ignored, no change necessary. */
+ if (sigmodes[sig] & SIG_IGNORED)
+ return;
+
+ /* Only change the signal handler for SIG if it allows it. */
+ if ((sigmodes[sig] & SIG_NO_TRAP) == 0)
+ set_signal_handler (sig, SIG_IGN);
+
+ /* Change the trap command in either case. */
+ change_signal (sig, (char *)IGNORE_SIG);
+}
+
+/* Handle the calling of "trap 0". The only sticky situation is when
+ the command to be executed includes an "exit". This is why we have
+ to provide our own place for top_level to jump to. */
+int
+run_exit_trap ()
+{
+ char *trap_command;
+ int code, function_code, retval;
+#if defined (ARRAY_VARS)
+ ARRAY *ps;
+#endif
+
+ trap_saved_exit_value = last_command_exit_value;
+#if defined (ARRAY_VARS)
+ ps = save_pipestatus_array ();
+#endif
+ function_code = 0;
+
+ /* Run the trap only if signal 0 is trapped and not ignored, and we are not
+ currently running in the trap handler (call to exit in the list of
+ commands given to trap 0). */
+ if ((sigmodes[EXIT_TRAP] & SIG_TRAPPED) &&
+ (sigmodes[EXIT_TRAP] & (SIG_IGNORED|SIG_INPROGRESS)) == 0)
+ {
+ trap_command = savestring (trap_list[EXIT_TRAP]);
+ sigmodes[EXIT_TRAP] &= ~SIG_TRAPPED;
+ sigmodes[EXIT_TRAP] |= SIG_INPROGRESS;
+
+ retval = trap_saved_exit_value;
+ running_trap = 1;
+
+ code = setjmp (top_level);
+
+ /* If we're in a function, make sure return longjmps come here, too. */
+ if (return_catch_flag)
+ function_code = setjmp (return_catch);
+
+ if (code == 0 && function_code == 0)
+ {
+ reset_parser ();
+ parse_and_execute (trap_command, "exit trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
+ }
+ else if (code == ERREXIT)
+ retval = last_command_exit_value;
+ else if (code == EXITPROG)
+ retval = last_command_exit_value;
+ else if (function_code != 0)
+ retval = return_catch_value;
+ else
+ retval = trap_saved_exit_value;
+
+ running_trap = 0;
+ return retval;
+ }
+
+#if defined (ARRAY_VARS)
+ restore_pipestatus_array (ps);
+#endif
+ return (trap_saved_exit_value);
+}
+
+void
+run_trap_cleanup (sig)
+ int sig;
+{
+ sigmodes[sig] &= ~(SIG_INPROGRESS|SIG_CHANGED);
+}
+
+/* Run a trap command for SIG. SIG is one of the signals the shell treats
+ specially. Returns the exit status of the executed trap command list. */
+static int
+_run_trap_internal (sig, tag)
+ int sig;
+ char *tag;
+{
+ char *trap_command, *old_trap;
+ int trap_exit_value, *token_state;
+ int save_return_catch_flag, function_code, flags;
+ procenv_t save_return_catch;
+ WORD_LIST *save_subst_varlist;
+#if defined (ARRAY_VARS)
+ ARRAY *ps;
+#endif
+
+ trap_exit_value = function_code = 0;
+ /* Run the trap only if SIG is trapped and not ignored, and we are not
+ currently executing in the trap handler. */
+ if ((sigmodes[sig] & SIG_TRAPPED) && ((sigmodes[sig] & SIG_IGNORED) == 0) &&
+ (trap_list[sig] != (char *)IMPOSSIBLE_TRAP_HANDLER) &&
+ ((sigmodes[sig] & SIG_INPROGRESS) == 0))
+ {
+ old_trap = trap_list[sig];
+ sigmodes[sig] |= SIG_INPROGRESS;
+ sigmodes[sig] &= ~SIG_CHANGED; /* just to be sure */
+ trap_command = savestring (old_trap);
+
+ running_trap = sig + 1;
+ trap_saved_exit_value = last_command_exit_value;
+#if defined (ARRAY_VARS)
+ ps = save_pipestatus_array ();
+#endif
+
+ token_state = save_token_state ();
+ save_subst_varlist = subst_assign_varlist;
+ subst_assign_varlist = 0;
+
+ /* If we're in a function, make sure return longjmps come here, too. */
+ save_return_catch_flag = return_catch_flag;
+ if (return_catch_flag)
+ {
+ COPY_PROCENV (return_catch, save_return_catch);
+ function_code = setjmp (return_catch);
+ }
+
+ flags = SEVAL_NONINT|SEVAL_NOHIST;
+ if (sig != DEBUG_TRAP && sig != RETURN_TRAP && sig != ERROR_TRAP)
+ flags |= SEVAL_RESETLINE;
+ if (function_code == 0)
+ parse_and_execute (trap_command, tag, flags);
+
+ restore_token_state (token_state);
+ free (token_state);
+
+ subst_assign_varlist = save_subst_varlist;
+
+ trap_exit_value = last_command_exit_value;
+ last_command_exit_value = trap_saved_exit_value;
+#if defined (ARRAY_VARS)
+ restore_pipestatus_array (ps);
+#endif
+ running_trap = 0;
+
+ sigmodes[sig] &= ~SIG_INPROGRESS;
+
+ if (sigmodes[sig] & SIG_CHANGED)
+ {
+#if 0
+ /* Special traps like EXIT, DEBUG, RETURN are handled explicitly in
+ the places where they can be changed using unwind-protects. For
+ example, look at execute_cmd.c:execute_function(). */
+ if (SPECIAL_TRAP (sig) == 0)
+#endif
+ free (old_trap);
+ sigmodes[sig] &= ~SIG_CHANGED;
+ }
+
+ if (save_return_catch_flag)
+ {
+ return_catch_flag = save_return_catch_flag;
+ return_catch_value = trap_exit_value;
+ COPY_PROCENV (save_return_catch, return_catch);
+ if (function_code)
+ longjmp (return_catch, 1);
+ }
+ }
+
+ return trap_exit_value;
+}
+
+int
+run_debug_trap ()
+{
+ int trap_exit_value;
+ pid_t save_pgrp;
+ int save_pipe[2];
+
+ /* XXX - question: should the DEBUG trap inherit the RETURN trap? */
+ trap_exit_value = 0;
+ if ((sigmodes[DEBUG_TRAP] & SIG_TRAPPED) && ((sigmodes[DEBUG_TRAP] & SIG_IGNORED) == 0) && ((sigmodes[DEBUG_TRAP] & SIG_INPROGRESS) == 0))
+ {
+#if defined (JOB_CONTROL)
+ save_pgrp = pipeline_pgrp;
+ pipeline_pgrp = 0;
+ save_pipeline (1);
+# if defined (PGRP_PIPE)
+ save_pgrp_pipe (save_pipe, 1);
+# endif
+ stop_making_children ();
+#endif
+
+ trap_exit_value = _run_trap_internal (DEBUG_TRAP, "debug trap");
+
+#if defined (JOB_CONTROL)
+ pipeline_pgrp = save_pgrp;
+ restore_pipeline (1);
+# if defined (PGRP_PIPE)
+ close_pgrp_pipe ();
+ restore_pgrp_pipe (save_pipe);
+# endif
+ if (pipeline_pgrp > 0)
+ give_terminal_to (pipeline_pgrp, 1);
+ notify_and_cleanup ();
+#endif
+
+#if defined (DEBUGGER)
+ /* If we're in the debugger and the DEBUG trap returns 2 while we're in
+ a function or sourced script, we force a `return'. */
+ if (debugging_mode && trap_exit_value == 2 && return_catch_flag)
+ {
+ return_catch_value = trap_exit_value;
+ longjmp (return_catch, 1);
+ }
+#endif
+ }
+ return trap_exit_value;
+}
+
+void
+run_error_trap ()
+{
+ if ((sigmodes[ERROR_TRAP] & SIG_TRAPPED) && ((sigmodes[ERROR_TRAP] & SIG_IGNORED) == 0) && (sigmodes[ERROR_TRAP] & SIG_INPROGRESS) == 0)
+ _run_trap_internal (ERROR_TRAP, "error trap");
+}
+
+void
+run_return_trap ()
+{
+ int old_exit_value;
+
+#if 0
+ if ((sigmodes[DEBUG_TRAP] & SIG_TRAPPED) && (sigmodes[DEBUG_TRAP] & SIG_INPROGRESS))
+ return;
+#endif
+
+ if ((sigmodes[RETURN_TRAP] & SIG_TRAPPED) && ((sigmodes[RETURN_TRAP] & SIG_IGNORED) == 0) && (sigmodes[RETURN_TRAP] & SIG_INPROGRESS) == 0)
+ {
+ old_exit_value = last_command_exit_value;
+ _run_trap_internal (RETURN_TRAP, "return trap");
+ last_command_exit_value = old_exit_value;
+ }
+}
+
+/* Run a trap set on SIGINT. This is called from throw_to_top_level (), and
+ declared here to localize the trap functions. */
+void
+run_interrupt_trap ()
+{
+ _run_trap_internal (SIGINT, "interrupt trap");
+}
+
+/* Free all the allocated strings in the list of traps and reset the trap
+ values to the default. Intended to be called from subshells that want
+ to complete work done by reset_signal_handlers upon execution of a
+ subsequent `trap' command that changes a signal's disposition. We need
+ to make sure that we duplicate the behavior of
+ reset_or_restore_signal_handlers and not change the disposition of signals
+ that are set to be ignored. */
+void
+free_trap_strings ()
+{
+ register int i;
+
+ for (i = 0; i < BASH_NSIG; i++)
+ {
+ if (trap_list[i] != (char *)IGNORE_SIG)
+ free_trap_string (i);
+ }
+ trap_list[DEBUG_TRAP] = trap_list[EXIT_TRAP] = trap_list[ERROR_TRAP] = trap_list[RETURN_TRAP] = (char *)NULL;
+}
+
+/* Free a trap command string associated with SIG without changing signal
+ disposition. Intended to be called from free_trap_strings() */
+static void
+free_trap_string (sig)
+ int sig;
+{
+ change_signal (sig, (char *)DEFAULT_SIG);
+ sigmodes[sig] &= ~SIG_TRAPPED;
+}
+
+/* Reset the handler for SIG to the original value but leave the trap string
+ in place. */
+static void
+reset_signal (sig)
+ int sig;
+{
+ set_signal_handler (sig, original_signals[sig]);
+ sigmodes[sig] &= ~SIG_TRAPPED;
+}
+
+/* Set the handler signal SIG to the original and free any trap
+ command associated with it. */
+static void
+restore_signal (sig)
+ int sig;
+{
+ set_signal_handler (sig, original_signals[sig]);
+ change_signal (sig, (char *)DEFAULT_SIG);
+ sigmodes[sig] &= ~SIG_TRAPPED;
+}
+
+static void
+reset_or_restore_signal_handlers (reset)
+ sh_resetsig_func_t *reset;
+{
+ register int i;
+
+ /* Take care of the exit trap first */
+ if (sigmodes[EXIT_TRAP] & SIG_TRAPPED)
+ {
+ sigmodes[EXIT_TRAP] &= ~SIG_TRAPPED;
+ if (reset != reset_signal)
+ {
+ free_trap_command (EXIT_TRAP);
+ trap_list[EXIT_TRAP] = (char *)NULL;
+ }
+ }
+
+ for (i = 1; i < NSIG; i++)
+ {
+ if (sigmodes[i] & SIG_TRAPPED)
+ {
+ if (trap_list[i] == (char *)IGNORE_SIG)
+ set_signal_handler (i, SIG_IGN);
+ else
+ (*reset) (i);
+ }
+ else if (sigmodes[i] & SIG_SPECIAL)
+ (*reset) (i);
+ }
+
+ /* Command substitution and other child processes don't inherit the
+ debug, error, or return traps. If we're in the debugger, and the
+ `functrace' or `errtrace' options have been set, then let command
+ substitutions inherit them. Let command substitution inherit the
+ RETURN trap if we're in the debugger and tracing functions. */
+ if (function_trace_mode == 0)
+ {
+ sigmodes[DEBUG_TRAP] &= ~SIG_TRAPPED;
+ sigmodes[RETURN_TRAP] &= ~SIG_TRAPPED;
+ }
+ if (error_trace_mode == 0)
+ sigmodes[ERROR_TRAP] &= ~SIG_TRAPPED;
+}
+
+/* Reset trapped signals to their original values, but don't free the
+ trap strings. Called by the command substitution code and other places
+ that create a "subshell environment". */
+void
+reset_signal_handlers ()
+{
+ reset_or_restore_signal_handlers (reset_signal);
+}
+
+/* Reset all trapped signals to their original values. Signals set to be
+ ignored with trap '' SIGNAL should be ignored, so we make sure that they
+ are. Called by child processes after they are forked. */
+void
+restore_original_signals ()
+{
+ reset_or_restore_signal_handlers (restore_signal);
+}
+
+/* If a trap handler exists for signal SIG, then call it; otherwise just
+ return failure. */
+int
+maybe_call_trap_handler (sig)
+ int sig;
+{
+ /* Call the trap handler for SIG if the signal is trapped and not ignored. */
+ if ((sigmodes[sig] & SIG_TRAPPED) && ((sigmodes[sig] & SIG_IGNORED) == 0))
+ {
+ switch (sig)
+ {
+ case SIGINT:
+ run_interrupt_trap ();
+ break;
+ case EXIT_TRAP:
+ run_exit_trap ();
+ break;
+ case DEBUG_TRAP:
+ run_debug_trap ();
+ break;
+ case ERROR_TRAP:
+ run_error_trap ();
+ break;
+ default:
+ trap_handler (sig);
+ break;
+ }
+ return (1);
+ }
+ else
+ return (0);
+}
+
+int
+signal_is_trapped (sig)
+ int sig;
+{
+ return (sigmodes[sig] & SIG_TRAPPED);
+}
+
+int
+signal_is_special (sig)
+ int sig;
+{
+ return (sigmodes[sig] & SIG_SPECIAL);
+}
+
+int
+signal_is_ignored (sig)
+ int sig;
+{
+ return (sigmodes[sig] & SIG_IGNORED);
+}
+
+int
+signal_is_hard_ignored (sig)
+ int sig;
+{
+ return (sigmodes[sig] & SIG_HARD_IGNORE);
+}
+
+void
+set_signal_ignored (sig)
+ int sig;
+{
+ sigmodes[sig] |= SIG_HARD_IGNORE;
+ original_signals[sig] = SIG_IGN;
+}
+
+int
+signal_in_progress (sig)
+ int sig;
+{
+ return (sigmodes[sig] & SIG_INPROGRESS);
+}