summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2012-03-05 21:17:40 -0500
committerChet Ramey <chet.ramey@case.edu>2012-03-05 21:17:40 -0500
commit863d31ae775d56b785dc5b0105b6d251515d81d5 (patch)
tree39a88cdbca5b1b49381a4e917bcab352014c0983
parent1f6ec1a86f688bb09a79232b6fb4a30a19ae71b2 (diff)
downloadbash-863d31ae775d56b785dc5b0105b6d251515d81d5.tar.gz
commit bash-20120224 snapshot
-rw-r--r--CWRU/CWRU.chlog66
-rw-r--r--CWRU/CWRU.chlog~67
-rw-r--r--CWRU/misc/endian.c21
-rw-r--r--CWRU/misc/endian2.c13
-rw-r--r--CWRU/misc/endian3.c21
-rw-r--r--MANIFEST4
-rw-r--r--doc/bash.12
-rw-r--r--doc/builtins.19
-rw-r--r--error.c6
-rw-r--r--error.c~455
-rw-r--r--execute_cmd.c2
-rw-r--r--lib/sh/shquote.c4
-rw-r--r--lib/sh/strtrans.c5
-rw-r--r--lib/sh/unicode.c95
-rw-r--r--lib/sh/unicode.c~319
-rw-r--r--locale.c2
-rw-r--r--po/gl.po1175
-rw-r--r--variables.c10
18 files changed, 1811 insertions, 465 deletions
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog
index 8ae4f8e..ff5b2f9 100644
--- a/CWRU/CWRU.chlog
+++ b/CWRU/CWRU.chlog
@@ -13196,6 +13196,16 @@ trap.c
- use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
HAVE_POSIX_SIGNALS and BSD signals
+ 1/24
+ ----
+
+print_cmd.c
+ - print_redirection_list: change the conditions under which
+ r_duplicating_output_word is mapped to r_err_and_out to more or
+ less match those used in redir.c. Fixes bug pointed out by
+ Dan Douglas <ormaaj@gmail.com>
+
+
1/29
----
lib/readline/signals.c
@@ -13386,12 +13396,58 @@ lib/sh/unicode.c
- u32reset: new function, resets local static state to uninitialized
(locale information, currently)
-lib/sh/strtrans.c
- - ansicstr: allocate a new string 6 times longer than the original
- if the \U escape sequence appears, to accommodate UTF-8 chars
- of maximum theoretical length
-
locale.c
- call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
cached locale information used by u32cconv. From a report from
John Kearney <dethrophes@web.de>
+
+ 2/21
+ ----
+doc/{bash,builtins}.1
+ - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+lib/sh/unicode.c
+ - u32cconv: only assume you can directly call wctomb on the passed
+ value if __STDC_ISO_10646__ is defined and the value is <=
+ 0x7fffffff
+ - stub_charset: return locale as default instead of "ASCII", let
+ rest of code decide what to do with it
+
+lib/readline/parens.c
+ - _rl_enable_paren_matching: make paren matching work in vi insert
+ mode. Bug report from <derflob@derflob.de>
+
+ 2/22
+ ----
+lib/sh/shquote.c
+ - sh_backslash_quote: quote tilde in places where it would be
+ expanded. From a report from John Kearney <dethrophes@web.de>
+
+ 2/23
+ ----
+execute_cmd.c
+ - execute_pipeline: wrap the discard_unwind_frame call in #ifdef
+ JOB_CONTROL, since the frame is only created if JOB_CONTROL is
+ defined. Bug and fix from Doug Kehn <rdkehn@yahoo.com>
+
+ 2/25
+ ----
+error.c
+ - report_error: make sure last_command_exit_value is non-zero before
+ we call exit_shell, since the exit trap may reference it. Call
+ exit_shell with last_command_exit_value to allow exit statuses
+ other than 1
+
+unicode.c
+ - stub_charset: use local static buffer to hold charset, don't change
+ value returned by get_locale_var. Based on idea and code from
+ John Kearney <dethrophes@web.de>
+ - u32toutf16: function to convert unsigned 32-bit value (unicode) to
+ UTF-16. From John Kearney <dethrophes@web.de>
+ - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
+ is two bytes, send result to wcstombs, return if not encoding error.
+ From John Kearney <dethrophes@web.de>
+ - u32cconv: return UTF-8 conversion if iconv conversion to local
+ charset is unsupported
+
+
diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~
index 76b1268..8e6bd15 100644
--- a/CWRU/CWRU.chlog~
+++ b/CWRU/CWRU.chlog~
@@ -13196,6 +13196,16 @@ trap.c
- use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on
HAVE_POSIX_SIGNALS and BSD signals
+ 1/24
+ ----
+
+print_cmd.c
+ - print_redirection_list: change the conditions under which
+ r_duplicating_output_word is mapped to r_err_and_out to more or
+ less match those used in redir.c. Fixes bug pointed out by
+ Dan Douglas <ormaaj@gmail.com>
+
+
1/29
----
lib/readline/signals.c
@@ -13386,11 +13396,56 @@ lib/sh/unicode.c
- u32reset: new function, resets local static state to uninitialized
(locale information, currently)
-lib/sh/strtrans.c
- - ansicstr: allocate a new string 6 times longer than the original
- if the \U escape sequence appears, to accommodate UTF-8 chars
- of maximum theoretical length
-
locale.c
- call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the
- cached locale information used by u32cconv
+ cached locale information used by u32cconv. From a report from
+ John Kearney <dethrophes@web.de>
+
+ 2/21
+ ----
+doc/{bash,builtins}.1
+ - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+lib/sh/unicode.c
+ - u32cconv: only assume you can directly call wctomb on the passed
+ value if __STDC_ISO_10646__ is defined and the value is <=
+ 0x7fffffff
+ - stub_charset: return locale as default instead of "ASCII", let
+ rest of code decide what to do with it
+
+lib/readline/parens.c
+ - _rl_enable_paren_matching: make paren matching work in vi insert
+ mode. Bug report from <derflob@derflob.de>
+
+ 2/22
+ ----
+lib/sh/shquote.c
+ - sh_backslash_quote: quote tilde in places where it would be
+ expanded. From a report from John Kearney <dethrophes@web.de>
+
+ 2/23
+ ----
+execute_cmd.c
+ - execute_pipeline: wrap the discard_unwind_frame call in #ifdef
+ JOB_CONTROL, since the frame is only created if JOB_CONTROL is
+ defined. Bug and fix from Doug Kehn <rdkehn@yahoo.com>
+
+ 2/25
+ ----
+error.c
+ - report_error: make sure last_command_exit_value is non-zero before
+ we call exit_shell, since the exit trap may reference it. Call
+ exit_shell with last_command_exit_value to allow exit statuses
+ other than 1
+
+unicode.c
+ - stub_charset: use local static buffer to hold charset, don't change
+ value returned by get_locale_var. Based on idea and code from
+ John Kearney <dethrophes@web.de>
+ - u32toutf16: function to convert unsigned 32-bit value (unicode) to
+ UTF-16. From John Kearney <dethrophes@web.de>
+ - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t
+ is two bytes, send result to wcstombs, return if not encoding error.
+ From John Kearney <dethrophes@web.de>
+
+
diff --git a/CWRU/misc/endian.c b/CWRU/misc/endian.c
new file mode 100644
index 0000000..3dd30b3
--- /dev/null
+++ b/CWRU/misc/endian.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+main()
+{
+
+union {
+ long int l;
+ char c[sizeof(long int)];
+} u;
+ int x0, x1, x2, x3;
+
+ u.l = 1;
+ x0 = u.c[0];
+ x3 = u.c[sizeof (long int) - 1];
+ printf ("x0 = %d x3 = %d (%s)\n", x0, x3, x3 == 1 ? "bigendian" : "littleendian");
+ x0 = u.l >> 24;
+ x1 = u.l >> 16;
+ x2 = u.l >> 8;
+ x3 = u.l & 0xff;
+ printf ("x0:x3: %d %d %d %d\n", x0, x1, x2, x3);
+}
diff --git a/CWRU/misc/endian2.c b/CWRU/misc/endian2.c
new file mode 100644
index 0000000..b84754b
--- /dev/null
+++ b/CWRU/misc/endian2.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+int
+main()
+{
+ int i = 0x12345678;
+ char *x;
+
+ x = (char *)&i;
+ printf ("0x%x\n", *x);
+ printf ((*x == 0x78) ? "little endian\n" : "big endian\n");
+ return 0;
+}
diff --git a/CWRU/misc/endian3.c b/CWRU/misc/endian3.c
new file mode 100644
index 0000000..86b478b
--- /dev/null
+++ b/CWRU/misc/endian3.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+
+main()
+{
+
+ union {
+ int l;
+ char c[sizeof(int)];
+ } u;
+ int x0, x1, x2, x3;
+
+ u.l = 0x012345678;
+ x0 = u.c[0];
+ x3 = u.c[sizeof (int) - 1];
+ printf ("x0 = 0x%x x3 = 0x%x (%s)\n", x0, x3, x3 == 0x78 ? "bigendian" : "littleendian");
+ x0 = (u.l >> 24) & 0xff;
+ x1 = (u.l >> 16) & 0xff;
+ x2 = (u.l >> 8) & 0xff;
+ x3 = u.l & 0xff;
+ printf ("big endian x0:x3: %x %x %x %x\n", x0, x1, x2, x3);
+}
diff --git a/MANIFEST b/MANIFEST
index 376966d..c422694 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -505,10 +505,14 @@ po/fr.gmo f
po/fr.po f
po/ga.gmo f
po/ga.po f
+po/gl.gmo f
+po/gl.po f
po/hu.gmo f
po/hu.po f
po/id.gmo f
po/id.po f
+po/it.gmo f
+po/it.po f
po/ja.gmo f
po/ja.po f
po/lt.gmo f
diff --git a/doc/bash.1 b/doc/bash.1
index 7df378b..77adfaf 100644
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -6377,7 +6377,7 @@ is similar to the history expansion in
This section describes what syntax features are available. This
feature is enabled by default for interactive shells, and can be
disabled using the
-.B \+H
+.B +H
option to the
.B set
builtin command (see
diff --git a/doc/builtins.1 b/doc/builtins.1
index bf8bfec..829a49c 100644
--- a/doc/builtins.1
+++ b/doc/builtins.1
@@ -1,6 +1,13 @@
.\" This is a hack to force bash builtins into the whatis database
.\" and to get the list of builtins to come up with the man command.
-.TH BASH_BUILTINS 1 "2004 Apr 20" "GNU Bash-4.0"
+.\"
+.\" File Name macro. This used to be `.PN', for Path Name,
+.\" but Sun doesn't seem to like that very much.
+.\"
+.de FN
+\fI\|\\$1\|\fP
+..
+.TH BASH_BUILTINS 1 "2004 Apr 20" "GNU Bash-4.2"
.SH NAME
bash, :, ., [, alias, bg, bind, break, builtin, caller,
cd, command, compgen, complete,
diff --git a/error.c b/error.c
index 72da9f5..1eac01c 100644
--- a/error.c
+++ b/error.c
@@ -200,7 +200,11 @@ report_error (format, va_alist)
va_end (args);
if (exit_immediately_on_error)
- exit_shell (1);
+ {
+ if (last_command_exit_value == 0)
+ last_command_exit_value = 1;
+ exit_shell (last_command_exit_value);
+ }
}
void
diff --git a/error.c~ b/error.c~
new file mode 100644
index 0000000..72da9f5
--- /dev/null
+++ b/error.c~
@@ -0,0 +1,455 @@
+/* error.c -- Functions for handling errors. */
+
+/* Copyright (C) 1993-2009 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "config.h"
+
+#include "bashtypes.h"
+#include <fcntl.h>
+
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif
+
+#if defined (PREFER_STDARG)
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+
+#include <stdio.h>
+
+#include <errno.h>
+#if !defined (errno)
+extern int errno;
+#endif /* !errno */
+
+#include "bashansi.h"
+#include "bashintl.h"
+
+#include "shell.h"
+#include "flags.h"
+#include "input.h"
+
+#if defined (HISTORY)
+# include "bashhist.h"
+#endif
+
+extern int executing_line_number __P((void));
+
+extern int last_command_exit_value;
+extern char *shell_name;
+#if defined (JOB_CONTROL)
+extern pid_t shell_pgrp;
+extern int give_terminal_to __P((pid_t, int));
+#endif /* JOB_CONTROL */
+
+#if defined (ARRAY_VARS)
+extern const char * const bash_badsub_errmsg;
+#endif
+
+static void error_prolog __P((int));
+
+/* The current maintainer of the shell. You change this in the
+ Makefile. */
+#if !defined (MAINTAINER)
+#define MAINTAINER "bash-maintainers@gnu.org"
+#endif
+
+const char * const the_current_maintainer = MAINTAINER;
+
+int gnu_error_format = 0;
+
+static void
+error_prolog (print_lineno)
+ int print_lineno;
+{
+ char *ename;
+ int line;
+
+ ename = get_name_for_error ();
+ line = (print_lineno && interactive_shell == 0) ? executing_line_number () : -1;
+
+ if (line > 0)
+ fprintf (stderr, "%s:%s%d: ", ename, gnu_error_format ? "" : _(" line "), line);
+ else
+ fprintf (stderr, "%s: ", ename);
+}
+
+/* Return the name of the shell or the shell script for error reporting. */
+char *
+get_name_for_error ()
+{
+ char *name;
+#if defined (ARRAY_VARS)
+ SHELL_VAR *bash_source_v;
+ ARRAY *bash_source_a;
+#endif
+
+ name = (char *)NULL;
+ if (interactive_shell == 0)
+ {
+#if defined (ARRAY_VARS)
+ bash_source_v = find_variable ("BASH_SOURCE");
+ if (bash_source_v && array_p (bash_source_v) &&
+ (bash_source_a = array_cell (bash_source_v)))
+ name = array_reference (bash_source_a, 0);
+ if (name == 0 || *name == '\0') /* XXX - was just name == 0 */
+#endif
+ name = dollar_vars[0];
+ }
+ if (name == 0 && shell_name && *shell_name)
+ name = base_pathname (shell_name);
+ if (name == 0)
+#if defined (PROGRAM)
+ name = PROGRAM;
+#else
+ name = "bash";
+#endif
+
+ return (name);
+}
+
+/* Report an error having to do with FILENAME. This does not use
+ sys_error so the filename is not interpreted as a printf-style
+ format string. */
+void
+file_error (filename)
+ const char *filename;
+{
+ report_error ("%s: %s", filename, strerror (errno));
+}
+
+void
+#if defined (PREFER_STDARG)
+programming_error (const char *format, ...)
+#else
+programming_error (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+ char *h;
+
+#if defined (JOB_CONTROL)
+ give_terminal_to (shell_pgrp, 0);
+#endif /* JOB_CONTROL */
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+ va_end (args);
+
+#if defined (HISTORY)
+ if (remember_on_history)
+ {
+ h = last_history_line ();
+ fprintf (stderr, _("last command: %s\n"), h ? h : "(null)");
+ }
+#endif
+
+#if 0
+ fprintf (stderr, "Report this to %s\n", the_current_maintainer);
+#endif
+
+ fprintf (stderr, _("Aborting..."));
+ fflush (stderr);
+
+ abort ();
+}
+
+/* Print an error message and, if `set -e' has been executed, exit the
+ shell. Used in this file by file_error and programming_error. Used
+ outside this file mostly to report substitution and expansion errors,
+ and for bad invocation options. */
+void
+#if defined (PREFER_STDARG)
+report_error (const char *format, ...)
+#else
+report_error (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ error_prolog (1);
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+
+ va_end (args);
+ if (exit_immediately_on_error)
+ exit_shell (1);
+}
+
+void
+#if defined (PREFER_STDARG)
+fatal_error (const char *format, ...)
+#else
+fatal_error (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ error_prolog (0);
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+
+ va_end (args);
+ sh_exit (2);
+}
+
+void
+#if defined (PREFER_STDARG)
+internal_error (const char *format, ...)
+#else
+internal_error (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ error_prolog (1);
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+
+ va_end (args);
+}
+
+void
+#if defined (PREFER_STDARG)
+internal_warning (const char *format, ...)
+#else
+internal_warning (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ error_prolog (1);
+ fprintf (stderr, _("warning: "));
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+
+ va_end (args);
+}
+
+void
+#if defined (PREFER_STDARG)
+sys_error (const char *format, ...)
+#else
+sys_error (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ int e;
+ va_list args;
+
+ e = errno;
+ error_prolog (0);
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, ": %s\n", strerror (e));
+
+ va_end (args);
+}
+
+/* An error from the parser takes the general form
+
+ shell_name: input file name: line number: message
+
+ The input file name and line number are omitted if the shell is
+ currently interactive. If the shell is not currently interactive,
+ the input file name is inserted only if it is different from the
+ shell name. */
+void
+#if defined (PREFER_STDARG)
+parser_error (int lineno, const char *format, ...)
+#else
+parser_error (lineno, format, va_alist)
+ int lineno;
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+ char *ename, *iname;
+
+ ename = get_name_for_error ();
+ iname = yy_input_name ();
+
+ if (interactive)
+ fprintf (stderr, "%s: ", ename);
+ else if (interactive_shell)
+ fprintf (stderr, "%s: %s:%s%d: ", ename, iname, gnu_error_format ? "" : _(" line "), lineno);
+ else if (STREQ (ename, iname))
+ fprintf (stderr, "%s:%s%d: ", ename, gnu_error_format ? "" : _(" line "), lineno);
+ else
+ fprintf (stderr, "%s: %s:%s%d: ", ename, iname, gnu_error_format ? "" : _(" line "), lineno);
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+
+ va_end (args);
+
+ if (exit_immediately_on_error)
+ exit_shell (last_command_exit_value = 2);
+}
+
+#ifdef DEBUG
+void
+#if defined (PREFER_STDARG)
+itrace (const char *format, ...)
+#else
+itrace (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ fprintf(stderr, "TRACE: pid %ld: ", (long)getpid());
+
+ SH_VA_START (args, format);
+
+ vfprintf (stderr, format, args);
+ fprintf (stderr, "\n");
+
+ va_end (args);
+
+ fflush(stderr);
+}
+
+/* A trace function for silent debugging -- doesn't require a control
+ terminal. */
+void
+#if defined (PREFER_STDARG)
+trace (const char *format, ...)
+#else
+trace (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+ static FILE *tracefp = (FILE *)NULL;
+
+ if (tracefp == NULL)
+ tracefp = fopen("/tmp/bash-trace.log", "a+");
+
+ if (tracefp == NULL)
+ tracefp = stderr;
+ else
+ fcntl (fileno (tracefp), F_SETFD, 1); /* close-on-exec */
+
+ fprintf(tracefp, "TRACE: pid %ld: ", (long)getpid());
+
+ SH_VA_START (args, format);
+
+ vfprintf (tracefp, format, args);
+ fprintf (tracefp, "\n");
+
+ va_end (args);
+
+ fflush(tracefp);
+}
+
+#endif /* DEBUG */
+
+/* **************************************************************** */
+/* */
+/* Common error reporting */
+/* */
+/* **************************************************************** */
+
+
+static const char * const cmd_error_table[] = {
+ N_("unknown command error"), /* CMDERR_DEFAULT */
+ N_("bad command type"), /* CMDERR_BADTYPE */
+ N_("bad connector"), /* CMDERR_BADCONN */
+ N_("bad jump"), /* CMDERR_BADJUMP */
+ 0
+};
+
+void
+command_error (func, code, e, flags)
+ const char *func;
+ int code, e, flags; /* flags currently unused */
+{
+ if (code > CMDERR_LAST)
+ code = CMDERR_DEFAULT;
+
+ programming_error ("%s: %s: %d", func, _(cmd_error_table[code]), e);
+}
+
+char *
+command_errstr (code)
+ int code;
+{
+ if (code > CMDERR_LAST)
+ code = CMDERR_DEFAULT;
+
+ return (_(cmd_error_table[code]));
+}
+
+#ifdef ARRAY_VARS
+void
+err_badarraysub (s)
+ const char *s;
+{
+ report_error ("%s: %s", s, _(bash_badsub_errmsg));
+}
+#endif
+
+void
+err_unboundvar (s)
+ const char *s;
+{
+ report_error (_("%s: unbound variable"), s);
+}
+
+void
+err_readonly (s)
+ const char *s;
+{
+ report_error (_("%s: readonly variable"), s);
+}
diff --git a/execute_cmd.c b/execute_cmd.c
index 19a685d..5def9b0 100644
--- a/execute_cmd.c
+++ b/execute_cmd.c
@@ -2370,7 +2370,9 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close)
unfreeze_jobs_list ();
}
+#if defined (JOB_CONTROL)
discard_unwind_frame ("lastpipe-exec");
+#endif
return (exec_result);
}
diff --git a/lib/sh/shquote.c b/lib/sh/shquote.c
index 602ce9b..9f48511 100644
--- a/lib/sh/shquote.c
+++ b/lib/sh/shquote.c
@@ -226,6 +226,10 @@ sh_backslash_quote (string, table)
*r++ = '\\';
else if (c == '#' && s == string) /* comment char */
*r++ = '\\';
+ else if (c == '~' && (s == string || s[-1] == ':' || s[-1] == '='))
+ /* Tildes are special at the start of a word or after a `:' or `='
+ (technically unquoted, but it doesn't make a difference in practice) */
+ *r++ = '\\';
*r++ = c;
}
diff --git a/lib/sh/strtrans.c b/lib/sh/strtrans.c
index 8691c05..6b1f13e 100644
--- a/lib/sh/strtrans.c
+++ b/lib/sh/strtrans.c
@@ -60,10 +60,7 @@ ansicstr (string, len, flags, sawc, rlen)
return ((char *)NULL);
#if defined (HANDLE_MULTIBYTE)
- if (strstr (string, "\\U") != 0)
- ret = (char *)xmalloc (6*len + 1);
- else
- ret = (char *)xmalloc (4*len + 1);
+ ret = (char *)xmalloc (4*len + 1);
#else
ret = (char *)xmalloc (2*len + 1); /* 2*len for possible CTLESC */
#endif
diff --git a/lib/sh/unicode.c b/lib/sh/unicode.c
index 5bb4702..df2da01 100644
--- a/lib/sh/unicode.c
+++ b/lib/sh/unicode.c
@@ -1,6 +1,6 @@
/* unicode.c - functions to convert unicode characters */
-/* Copyright (C) 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
@@ -61,6 +61,8 @@ static iconv_t localconv;
#endif
#ifndef HAVE_LOCALE_CHARSET
+static char charsetbuf[40];
+
static char *
stub_charset ()
{
@@ -68,19 +70,21 @@ stub_charset ()
locale = get_locale_var ("LC_CTYPE");
if (locale == 0 || *locale == 0)
- return "ASCII";
+ {
+ strcpy (charsetbuf, "ASCII");
+ return charsetbuf;
+ }
s = strrchr (locale, '.');
if (s)
{
- t = strchr (s, '@');
+ strcpy (charsetbuf, s+1);
+ t = strchr (charsetbuf, '@');
if (t)
*t = 0;
- return ++s;
+ return charsetbuf;
}
- else if (STREQ (locale, "UTF-8"))
- return "UTF-8";
- else
- return "ASCII";
+ strcpy (charsetbuf, locale);
+ return charsetbuf;
}
#endif
@@ -93,14 +97,12 @@ u32reset ()
/* u32toascii ? */
int
-u32tochar (wc, s)
- wchar_t wc;
+u32tochar (x, s)
+ unsigned long x;
char *s;
{
- unsigned long x;
int l;
- x = wc;
l = (x <= UCHAR_MAX) ? 1 : ((x <= USHORT_MAX) ? 2 : 4);
if (x <= UCHAR_MAX)
@@ -165,7 +167,7 @@ u32toutf8 (wc, s)
s[4] = (wc & 0x3f) | 0x80;
l = 5;
}
- else
+ else if (wc < 0x080000000)
{
s[0] = (wc >> 30) | 0xf8;
s[1] = ((wc >> 24) & 0x3f) | 0x80;
@@ -175,11 +177,39 @@ u32toutf8 (wc, s)
s[5] = (wc & 0x3f) | 0x80;
l = 6;
}
+ else
+ l = 0;
s[l] = '\0';
return l;
}
+/* Convert a 32-bit unsigned int (unicode) to a UTF-16 string. Rarely used,
+ only if sizeof(wchar_t) == 2. */
+int
+u32toutf16 (c, s)
+ u_bits32_t c;
+ unsigned short *s;
+{
+ int l;
+
+ l = 0;
+ if (c < 0x0d800)
+ {
+ s[0] = (unsigned short) (c & 0xFFFF);
+ l = 1;
+ }
+ else if (c >= 0x0e000 && c <= 0x010ffff)
+ {
+ c -= 0x010000;
+ s[0] = (unsigned short)((c >> 10) + 0xd800);
+ s[1] = (unsigned short)((c & 0x3ff) + 0xdc00);
+ l = 2;
+ }
+ s[l] = 0;
+ return l;
+}
+
/* convert a single unicode-32 character into a multibyte string and put the
result in S, which must be large enough (at least MB_LEN_MAX bytes) */
int
@@ -188,6 +218,7 @@ u32cconv (c, s)
char *s;
{
wchar_t wc;
+ wchar_t ws[3];
int n;
#if HAVE_ICONV
const char *charset;
@@ -197,14 +228,16 @@ u32cconv (c, s)
size_t sn;
#endif
- wc = c;
-
#if __STDC_ISO_10646__
- if (sizeof (wchar_t) == 4)
- {
- n = wctomb (s, wc);
- return n;
- }
+ wc = c;
+ if (sizeof (wchar_t) == 4 && c <= 0x7fffffff)
+ n = wctomb (s, wc);
+ else if (sizeof (wchar_t) == 2 && c <= 0x10ffff && u32toutf16 (c, ws))
+ n = wcstombs (s, ws, MB_LEN_MAX);
+ else
+ n = -1;
+ if (n != -1)
+ return n;
#endif
#if HAVE_NL_LANGINFO
@@ -236,19 +269,9 @@ u32cconv (c, s)
u32init = 1;
}
- if (utf8locale)
- {
- n = u32toutf8 (c, s);
- return n;
- }
-
- if (localconv == (iconv_t)-1)
- {
- n = u32tochar (wc, s);
- return n;
- }
-
n = u32toutf8 (c, s);
+ if (utf8locale || localconv == (iconv_t)-1)
+ return n;
optr = obuf;
obytesleft = sizeof (obuf);
@@ -268,8 +291,12 @@ u32cconv (c, s)
return (optr - obuf);
#endif
- n = u32tochar (wc, s); /* fallback */
+ n = u32tochar (c, s); /* fallback */
return n;
}
-
+#else
+void
+u32reset ()
+{
+}
#endif /* HANDLE_MULTIBYTE */
diff --git a/lib/sh/unicode.c~ b/lib/sh/unicode.c~
new file mode 100644
index 0000000..ba24dd4
--- /dev/null
+++ b/lib/sh/unicode.c~
@@ -0,0 +1,319 @@
+/* unicode.c - functions to convert unicode characters */
+
+/* Copyright (C) 2010-2012 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <config.h>
+
+#if defined (HANDLE_MULTIBYTE)
+
+#include <stdc.h>
+#include <wchar.h>
+#include <bashansi.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <limits.h>
+
+#if HAVE_ICONV
+# include <iconv.h>
+#endif
+
+#include <xmalloc.h>
+
+#ifndef USHORT_MAX
+# ifdef USHRT_MAX
+# define USHORT_MAX USHRT_MAX
+# else
+# define USHORT_MAX ((unsigned short) ~(unsigned short)0)
+# endif
+#endif
+
+#if !defined (STREQ)
+# define STREQ(a, b) ((a)[0] == (b)[0] && strcmp ((a), (b)) == 0)
+#endif /* !STREQ */
+
+#if defined (HAVE_LOCALE_CHARSET)
+extern const char *locale_charset __P((void));
+#else
+extern char *get_locale_var __P((char *));
+#endif
+
+static int u32init = 0;
+static int utf8locale = 0;
+#if defined (HAVE_ICONV)
+static iconv_t localconv;
+#endif
+
+#ifndef HAVE_LOCALE_CHARSET
+static char charsetbuf[40];
+
+static char *
+stub_charset ()
+{
+ char *locale, *s, *t;
+
+ locale = get_locale_var ("LC_CTYPE");
+ if (locale == 0 || *locale == 0)
+ {
+ strcpy (charsetbuf, "ASCII");
+ return charsetbuf;
+ }
+ s = strrchr (locale, '.');
+ if (s)
+ {
+ strcpy (charsetbuf, s+1);
+ t = strchr (charsetbuf, '@');
+ if (t)
+ *t = 0;
+ return charsetbuf;
+ }
+ strcpy (charsetbuf, locale);
+ return charsetbuf;
+}
+#endif
+
+void
+u32reset ()
+{
+ u32init = 0;
+ utf8locale = 0;
+}
+
+/* u32toascii ? */
+int
+u32tochar (x, s)
+ unsigned long x;
+ char *s;
+{
+ int l;
+
+ l = (x <= UCHAR_MAX) ? 1 : ((x <= USHORT_MAX) ? 2 : 4);
+
+ if (x <= UCHAR_MAX)
+ s[0] = x & 0xFF;
+ else if (x <= USHORT_MAX) /* assume unsigned short = 16 bits */
+ {
+ s[0] = (x >> 8) & 0xFF;
+ s[1] = x & 0xFF;
+ }
+ else
+ {
+ s[0] = (x >> 24) & 0xFF;
+ s[1] = (x >> 16) & 0xFF;
+ s[2] = (x >> 8) & 0xFF;
+ s[3] = x & 0xFF;
+ }
+ s[l] = '\0';
+ return l;
+}
+
+/* Convert unsigned 32-bit int to utf-8 character string */
+int
+u32toutf8 (wc, s)
+ u_bits32_t wc;
+ char *s;
+{
+ int l;
+
+ if (wc < 0x0080)
+ {
+ s[0] = (char)wc;
+ l = 1;
+ }
+ else if (wc < 0x0800)
+ {
+ s[0] = (wc >> 6) | 0xc0;
+ s[1] = (wc & 0x3f) | 0x80;
+ l = 2;
+ }
+ else if (wc < 0x10000)
+ {
+ s[0] = (wc >> 12) | 0xe0;
+ s[1] = ((wc >> 6) & 0x3f) | 0x80;
+ s[2] = (wc & 0x3f) | 0x80;
+ l = 3;
+ }
+ else if (wc < 0x200000)
+ {
+ s[0] = (wc >> 18) | 0xf0;
+ s[1] = ((wc >> 12) & 0x3f) | 0x80;
+ s[2] = ((wc >> 6) & 0x3f) | 0x80;
+ s[3] = (wc & 0x3f) | 0x80;
+ l = 4;
+ }
+ /* Strictly speaking, UTF-8 doesn't have characters longer than 4 bytes */
+ else if (wc < 0x04000000)
+ {
+ s[0] = (wc >> 24) | 0xf8;
+ s[1] = ((wc >> 18) & 0x3f) | 0x80;
+ s[2] = ((wc >> 12) & 0x3f) | 0x80;
+ s[3] = ((wc >> 6) & 0x3f) | 0x80;
+ s[4] = (wc & 0x3f) | 0x80;
+ l = 5;
+ }
+ else if (wc < 0x080000000)
+ {
+ s[0] = (wc >> 30) | 0xf8;
+ s[1] = ((wc >> 24) & 0x3f) | 0x80;
+ s[2] = ((wc >> 18) & 0x3f) | 0x80;
+ s[3] = ((wc >> 12) & 0x3f) | 0x80;
+ s[4] = ((wc >> 6) & 0x3f) | 0x80;
+ s[5] = (wc & 0x3f) | 0x80;
+ l = 6;
+ }
+ else
+ l = 0;
+
+ s[l] = '\0';
+ return l;
+}
+
+/* Convert a 32-bit unsigned int (unicode) to a UTF-16 string. Rarely used,
+ only if sizeof(wchar_t) == 2. */
+int
+u32toutf16 (c, s)
+ u_bits32_t c;
+ unsigned short *s;
+{
+ int l;
+
+ l = 0;
+ if (c < 0x0d800)
+ {
+ s[0] = (unsigned short) (c & 0xFFFF);
+ l = 1;
+ }
+ else if (c >= 0x0e000 && c <= 0x010ffff)
+ {
+ c -= 0x010000;
+ s[0] = (unsigned short)((c >> 10) + 0xd800);
+ s[1] = (unsigned short)((c & 0x3ff) + 0xdc00);
+ l = 2;
+ }
+ s[l] = 0;
+ return l;
+}
+
+/* convert a single unicode-32 character into a multibyte string and put the
+ result in S, which must be large enough (at least MB_LEN_MAX bytes) */
+int
+u32cconv (c, s)
+ unsigned long c;
+ char *s;
+{
+ wchar_t wc;
+ wchar_t ws[3];
+ int n;
+#if HAVE_ICONV
+ const char *charset;
+ char obuf[25], *optr;
+ size_t obytesleft;
+ const char *iptr;
+ size_t sn;
+#endif
+
+#if __STDC_ISO_10646__
+ wc = c;
+ if (sizeof (wchar_t) == 4 && c <= 0x7fffffff)
+ {
+ n = wctomb (s, wc);
+ if (n != -1)
+ return n;
+ }
+ else if (sizeof (wchar_t) == 2)
+ {
+ if (u32toutf16 (c, ws))
+ {
+ n = wcstombs (s, ws, MB_LEN_MAX);
+ if (n != -1)
+ return n;
+ }
+ }
+#endif
+
+#if HAVE_NL_LANGINFO
+ codeset = nl_langinfo (CODESET);
+ if (STREQ (codeset, "UTF-8"))
+ {
+ n = u32toutf8 (c, s);
+ return n;
+ }
+#endif
+
+#if HAVE_ICONV
+ /* this is mostly from coreutils-8.5/lib/unicodeio.c */
+ if (u32init == 0)
+ {
+# if HAVE_LOCALE_CHARSET
+ charset = locale_charset (); /* XXX - fix later */
+# else
+ charset = stub_charset ();
+# endif
+ if (STREQ (charset, "UTF-8"))
+ utf8locale = 1;
+ else
+ {
+ localconv = iconv_open (charset, "UTF-8");
+ if (localconv == (iconv_t)-1)
+ localconv = iconv_open (charset, "ASCII");
+ }
+ u32init = 1;
+ }
+
+ if (utf8locale)
+ {
+ n = u32toutf8 (c, s);
+ return n;
+ }
+
+ if (localconv == (iconv_t)-1)
+ {
+ n = u32tochar (c, s);
+ return n;
+ }
+
+ n = u32toutf8 (c, s);
+
+ optr = obuf;
+ obytesleft = sizeof (obuf);
+ iptr = s;
+ sn = n;
+
+ iconv (localconv, NULL, NULL, NULL, NULL);
+
+ if (iconv (localconv, (ICONV_CONST char **)&iptr, &sn, &optr, &obytesleft) == (size_t)-1)
+ return n; /* You get utf-8 if iconv fails */
+
+ *optr = '\0';
+
+ /* number of chars to be copied is optr - obuf if we want to do bounds
+ checking */
+ strcpy (s, obuf);
+ return (optr - obuf);
+#endif
+
+ n = u32tochar (c, s); /* fallback */
+ return n;
+}
+#else
+void
+u32reset ()
+{
+}
+#endif /* HANDLE_MULTIBYTE */
diff --git a/locale.c b/locale.c
index a452ac5..d56f179 100644
--- a/locale.c
+++ b/locale.c
@@ -1,6 +1,6 @@
/* locale.c - Miscellaneous internationalization functions. */
-/* Copyright (C) 1996-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2009,2012 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
diff --git a/po/gl.po b/po/gl.po
index 9321c67..46ade7c 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -3,6 +3,8 @@
# This file is distributed under the same license as the bash package.
#
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2011.
+# Francisco Diéguez <frandieguez@ubuntu.com>, 2012.
+# Fran Dieguez <frandieguez@gnome.org>, 2012.
#
# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas
# colaborar connosco, podes atopar máis información en <http://trasno.net>
@@ -12,7 +14,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-09-26 13:38+0100\n"
+"PO-Revision-Date: 2012-02-23 14:38+0100\n"
"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
"Language: gl\n"
@@ -23,27 +25,27 @@ msgstr ""
#: arrayfunc.c:50
msgid "bad array subscript"
-msgstr ""
+msgstr "subíndice de matriz incorrecto"
#: arrayfunc.c:313 builtins/declare.def:487
#, c-format
msgid "%s: cannot convert indexed to associative array"
-msgstr ""
+msgstr "%s: non é posíbel converter a matriz de indizada a asociativa"
#: arrayfunc.c:480
#, c-format
msgid "%s: invalid associative array key"
-msgstr ""
+msgstr "%s: índice de matriz asociativa non válido"
#: arrayfunc.c:482
#, c-format
msgid "%s: cannot assign to non-numeric index"
-msgstr ""
+msgstr "%s: non é posíbel asignar a un índice que non é numérico"
#: arrayfunc.c:518
#, c-format
msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
+msgstr "%s: %s: se debe usar un subíndice ao asignar a unha matriz asociativa"
#: bashhist.c:387
#, c-format
@@ -52,69 +54,69 @@ msgstr "%s: non foi posíbel crear: %s"
#: bashline.c:3498
msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
+msgstr "bash_execute_unix_command: non foi posíbel atopar a combinación de teclas para a orde"
#: bashline.c:3584
#, c-format
msgid "%s: first non-whitespace character is not `\"'"
-msgstr ""
+msgstr "%s: o primeiro carácter que non é espazo en branco non é `\"'"
#: bashline.c:3613
#, c-format
msgid "no closing `%c' in %s"
-msgstr ""
+msgstr "no hai un `%c' que peche en %s"
#: bashline.c:3647
#, c-format
msgid "%s: missing colon separator"
-msgstr ""
+msgstr "%s: falta un `:' separador"
#: builtins/alias.def:132
#, c-format
msgid "`%s': invalid alias name"
-msgstr ""
+msgstr "`%s': nome de alias non válido"
#: builtins/bind.def:120 builtins/bind.def:123
msgid "line editing not enabled"
-msgstr ""
+msgstr "no se activó a edición de liña"
#: builtins/bind.def:206
#, c-format
msgid "`%s': invalid keymap name"
-msgstr ""
+msgstr "`%s': nome de combinación de teclas non válido"
#: builtins/bind.def:245
#, c-format
msgid "%s: cannot read: %s"
-msgstr "%s: non foi posíbel ler: %s"
+msgstr "%s: non se pode leer: %s"
#: builtins/bind.def:260
#, c-format
msgid "`%s': cannot unbind"
-msgstr ""
+msgstr "%s: non se pode borrar a asignación"
#: builtins/bind.def:295 builtins/bind.def:325
#, c-format
msgid "`%s': unknown function name"
-msgstr ""
+msgstr "`%s': nome de función descoñecido"
#: builtins/bind.def:303
#, c-format
msgid "%s is not bound to any keys.\n"
-msgstr ""
+msgstr "%s non está asignado a ningunha tecla.\n"
#: builtins/bind.def:307
#, c-format
msgid "%s can be invoked via "
-msgstr ""
+msgstr "%s pódese invocar a través de "
#: builtins/break.def:77 builtins/break.def:117
msgid "loop count"
-msgstr ""
+msgstr "contía de ciclo"
#: builtins/break.def:137
msgid "only meaningful in a `for', `while', or `until' loop"
-msgstr ""
+msgstr "só ten significado nun ciclo `for', `while' ou `until'"
#: builtins/caller.def:133
msgid ""
@@ -122,14 +124,17 @@ msgid ""
" \n"
" Without EXPR, returns "
msgstr ""
+"Devolve o contexto da chamada a subrutina actual.\n"
+" \n"
+" Sen EXPR, devovle "
#: builtins/cd.def:235
msgid "HOME not set"
-msgstr ""
+msgstr "HOME non está definido"
#: builtins/cd.def:247
msgid "OLDPWD not set"
-msgstr ""
+msgstr "OLDPWD non está definido"
#: builtins/common.c:101
#, c-format
@@ -137,14 +142,14 @@ msgid "line %d: "
msgstr "liña %d: "
#: builtins/common.c:139 error.c:261
-#, fuzzy, c-format
+#, c-format
msgid "warning: "
-msgstr "Aviso"
+msgstr "aviso: "
#: builtins/common.c:153
#, c-format
msgid "%s: usage: "
-msgstr "%s: modo de uso: "
+msgstr "%s: uso: "
#: builtins/common.c:166 test.c:832
msgid "too many arguments"
@@ -153,12 +158,12 @@ msgstr "demasiados argumentos"
#: builtins/common.c:191 shell.c:500 shell.c:782
#, c-format
msgid "%s: option requires an argument"
-msgstr ""
+msgstr "%s: a opción require un argumento"
#: builtins/common.c:198
#, c-format
msgid "%s: numeric argument required"
-msgstr ""
+msgstr "%s: requírese un argumento numérico"
#: builtins/common.c:205
#, c-format
@@ -173,7 +178,7 @@ msgstr "%s: opción non válida"
#: builtins/common.c:221
#, c-format
msgid "%s: invalid option name"
-msgstr ""
+msgstr "%s: nome de opción non válido"
#: builtins/common.c:228 general.c:231 general.c:236
#, c-format
@@ -195,22 +200,22 @@ msgstr "número non válido"
#: builtins/common.c:250
#, c-format
msgid "%s: invalid signal specification"
-msgstr ""
+msgstr "%s: especificación de sinal non válida"
#: builtins/common.c:257
#, c-format
msgid "`%s': not a pid or valid job spec"
-msgstr ""
+msgstr "`%s': no é un pid ou unha especificación válida de traballo"
#: builtins/common.c:264 error.c:454
#, c-format
msgid "%s: readonly variable"
-msgstr ""
+msgstr "%s: variábel de só lectura"
#: builtins/common.c:272
#, c-format
msgid "%s: %s out of range"
-msgstr ""
+msgstr "%s: %s fóra de rango"
#: builtins/common.c:272 builtins/common.c:274
msgid "argument"
@@ -219,35 +224,35 @@ msgstr "argumento"
#: builtins/common.c:274
#, c-format
msgid "%s out of range"
-msgstr ""
+msgstr "%s fóra de rango"
#: builtins/common.c:282
#, c-format
msgid "%s: no such job"
-msgstr ""
+msgstr "%s: non existe ese traballo"
#: builtins/common.c:290
#, c-format
msgid "%s: no job control"
-msgstr ""
+msgstr "%s: no hai control de traballos"
#: builtins/common.c:292
msgid "no job control"
-msgstr ""
+msgstr "no ha control de traballos"
#: builtins/common.c:302
#, c-format
msgid "%s: restricted"
-msgstr ""
+msgstr "%s: restrinxido"
#: builtins/common.c:304
msgid "restricted"
-msgstr ""
+msgstr "restrinxido"
#: builtins/common.c:312
#, c-format
msgid "%s: not a shell builtin"
-msgstr ""
+msgstr "%s: no é una orde interna do shell"
#: builtins/common.c:321
#, c-format
@@ -257,87 +262,87 @@ msgstr "erro de escritura: %s"
#: builtins/common.c:329
#, c-format
msgid "error setting terminal attributes: %s"
-msgstr ""
+msgstr "erro ao estabelecer os atributos da terminal: %s"
#: builtins/common.c:331
#, c-format
msgid "error getting terminal attributes: %s"
-msgstr ""
+msgstr "erro ao obtener os atributos da terminal: %s"
#: builtins/common.c:563
#, c-format
msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr ""
+msgstr "%s: erro ao obtener o directorio actual: %s: %s\n"
#: builtins/common.c:629 builtins/common.c:631
#, c-format
msgid "%s: ambiguous job spec"
-msgstr ""
+msgstr "%s: especificación de traballo ambigüa"
#: builtins/complete.def:276
#, c-format
msgid "%s: invalid action name"
-msgstr ""
+msgstr "%s: nome de acción non válido"
#: builtins/complete.def:449 builtins/complete.def:644
#: builtins/complete.def:853
#, c-format
msgid "%s: no completion specification"
-msgstr ""
+msgstr "%s: non hai completado de especificación"
#: builtins/complete.def:696
msgid "warning: -F option may not work as you expect"
-msgstr ""
+msgstr "aviso: é posíbel que a opción -F non funcione como se espera"
#: builtins/complete.def:698
msgid "warning: -C option may not work as you expect"
-msgstr ""
+msgstr "aviso: é posíbel que a opción -C non funcione como se espera"
#: builtins/complete.def:826
msgid "not currently executing completion function"
-msgstr ""
+msgstr "non se está executando a función de completado"
#: builtins/declare.def:124
msgid "can only be used in a function"
-msgstr ""
+msgstr "só se pode usar dentro dunha función"
#: builtins/declare.def:366
msgid "cannot use `-f' to make functions"
-msgstr ""
+msgstr "non se pode use `-f' para facer funcións"
#: builtins/declare.def:378 execute_cmd.c:5105
#, c-format
msgid "%s: readonly function"
-msgstr ""
+msgstr "%s: función de só lectura"
#: builtins/declare.def:474
#, c-format
msgid "%s: cannot destroy array variables in this way"
-msgstr ""
+msgstr "%s: non é posíbel destruír variábeis de matriz desta forma"
#: builtins/declare.def:481
#, c-format
msgid "%s: cannot convert associative to indexed array"
-msgstr ""
+msgstr "%s: non é posíbel converter unha matriz asociativa a indizada"
#: builtins/enable.def:137 builtins/enable.def:145
msgid "dynamic loading not available"
-msgstr ""
+msgstr "a carga dinámica non está dispoñíbel"
#: builtins/enable.def:312
#, c-format
msgid "cannot open shared object %s: %s"
-msgstr ""
+msgstr "non é posíbel abrir o obxecto compartido %s: %s"
#: builtins/enable.def:335
#, c-format
msgid "cannot find %s in shared object %s: %s"
-msgstr ""
+msgstr "non é posíbel atopar %s no obxecto compartido %s: %s"
#: builtins/enable.def:459
#, c-format
msgid "%s: not dynamically loaded"
-msgstr ""
+msgstr "%s: non foi cargado dinamicamente"
#: builtins/enable.def:474
#, c-format
@@ -351,9 +356,9 @@ msgid "%s: is a directory"
msgstr "%s: é un directorio"
#: builtins/evalfile.c:140
-#, fuzzy, c-format
+#, c-format
msgid "%s: not a regular file"
-msgstr "Non é un ficheiro regular"
+msgstr "%s: non é un ficheiro regular"
#: builtins/evalfile.c:148
#, c-format
@@ -364,7 +369,7 @@ msgstr "%s: o ficheiro é demasiado grande"
#: shell.c:1467
#, c-format
msgid "%s: cannot execute binary file"
-msgstr ""
+msgstr "%s: non é posíbel executar o ficheiro binario"
#: builtins/exec.def:154 builtins/exec.def:156 builtins/exec.def:228
#, c-format
@@ -374,80 +379,79 @@ msgstr "%s: non foi posíbel executar: %s"
#: builtins/exit.def:65
#, c-format
msgid "logout\n"
-msgstr ""
+msgstr "logout\n"
#: builtins/exit.def:88
msgid "not login shell: use `exit'"
-msgstr ""
+msgstr "non é un shell de entrada: use `exit'"
#: builtins/exit.def:120
#, c-format
msgid "There are stopped jobs.\n"
-msgstr ""
+msgstr "Hai traballos pendentes.\n"
#: builtins/exit.def:122
#, c-format
msgid "There are running jobs.\n"
-msgstr ""
+msgstr "Hay traballos en execución.\n"
#: builtins/fc.def:262
msgid "no command found"
-msgstr ""
+msgstr "non foi posíbel atopar a orde"
#: builtins/fc.def:312 builtins/fc.def:359
msgid "history specification"
-msgstr ""
+msgstr "especificación de historial"
#: builtins/fc.def:380
#, c-format
msgid "%s: cannot open temp file: %s"
-msgstr ""
+msgstr "%s: non é posíbel abrir o ficheiro temporal: %s"
#: builtins/fg_bg.def:149 builtins/jobs.def:282
-#, fuzzy
msgid "current"
-msgstr "Actual"
+msgstr "actual"
#: builtins/fg_bg.def:158
#, c-format
msgid "job %d started without job control"
-msgstr ""
+msgstr "o traballo %d iniciou sen control de traballo"
#: builtins/getopt.c:110
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr ""
+msgstr "%s: opción ilegal -- %c\n"
#: builtins/getopt.c:111
#, c-format
msgid "%s: option requires an argument -- %c\n"
-msgstr ""
+msgstr "%s: a opción require un argumento -- %c\n"
#: builtins/hash.def:92
msgid "hashing disabled"
-msgstr ""
+msgstr "asociación desactivada"
#: builtins/hash.def:138
#, c-format
msgid "%s: hash table empty\n"
-msgstr ""
+msgstr "%s: táboa de asociación baleira\n"
#: builtins/hash.def:245
#, c-format
msgid "hits\tcommand\n"
-msgstr ""
+msgstr "coinc\torde\n"
#: builtins/help.def:130
#, c-format
msgid "Shell commands matching keyword `"
msgid_plural "Shell commands matching keywords `"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Orde do shell que coincide coa palabra `"
+msgstr[1] "Orde do shell que coincide coas palabras `"
#: builtins/help.def:168
#, c-format
msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
+msgstr "non hai temas de axuda que coincidan con «%s». Probe «help help» ou «man -k %s» ou «info %s»"
#: builtins/help.def:185
#, c-format
@@ -465,33 +469,41 @@ msgid ""
"A star (*) next to a name means that the command is disabled.\n"
"\n"
msgstr ""
+"Estas ordes do shell están definidas internamente. Teclee `help' para\n"
+"ver esta lista.\n"
+"Teclee `help nome' para saber máis sobre a función `nome'.\n"
+"Use `info bash' para saber máis sobre o shell en xeral.\n"
+"Use `man -k' o `info' para saber máis sobre as órdenes que non están nesta lista.\n"
+"\n"
+"Un asterisco (*) xunto a un nome significa que a orde está desactivada.\n"
+"\n"
#: builtins/history.def:154
msgid "cannot use more than one of -anrw"
-msgstr ""
+msgstr "non foi posíbel usar máis dun de -anrw"
#: builtins/history.def:186
msgid "history position"
-msgstr ""
+msgstr "posición no historial"
#: builtins/history.def:365
#, c-format
msgid "%s: history expansion failed"
-msgstr ""
+msgstr "%s: fallou a expansión do historial"
#: builtins/inlib.def:71
#, c-format
msgid "%s: inlib failed"
-msgstr ""
+msgstr "%s: fallou inlib"
#: builtins/jobs.def:109
msgid "no other options allowed with `-x'"
-msgstr ""
+msgstr "non se permiten outras opcións con «-x»"
#: builtins/kill.def:198
#, c-format
msgid "%s: arguments must be process or job IDs"
-msgstr ""
+msgstr "%s: os argumentos deben ser procesos ou IDs de traballos"
#: builtins/kill.def:261
msgid "Unknown error"
@@ -499,90 +511,90 @@ msgstr "Erro descoñecido"
#: builtins/let.def:95 builtins/let.def:120 expr.c:552 expr.c:567
msgid "expression expected"
-msgstr ""
+msgstr "agardábase unha expresión"
#: builtins/mapfile.def:172
#, c-format
msgid "%s: not an indexed array"
-msgstr ""
+msgstr "%s: non é unha matriz indizada"
#: builtins/mapfile.def:256 builtins/read.def:279
#, c-format
msgid "%s: invalid file descriptor specification"
-msgstr ""
+msgstr "%s: especificación de descritor de ficheiro non válida"
#: builtins/mapfile.def:264 builtins/read.def:286
#, c-format
msgid "%d: invalid file descriptor: %s"
-msgstr ""
+msgstr "%d: descritor de ficheiro non válido: %s"
#: builtins/mapfile.def:273 builtins/mapfile.def:311
#, c-format
msgid "%s: invalid line count"
-msgstr ""
+msgstr "%s: conta de liñas non válida"
#: builtins/mapfile.def:284
#, c-format
msgid "%s: invalid array origin"
-msgstr ""
+msgstr "%s: orixe de matriz non válido"
#: builtins/mapfile.def:301
#, c-format
msgid "%s: invalid callback quantum"
-msgstr ""
+msgstr "%s: quantum de chamada non válido"
#: builtins/mapfile.def:333
msgid "empty array variable name"
-msgstr ""
+msgstr "nome de variábel de matriz baleiro"
#: builtins/mapfile.def:354
msgid "array variable support required"
-msgstr ""
+msgstr "requírese a compatibilidade de variábel de matriz"
#: builtins/printf.def:394
#, c-format
msgid "`%s': missing format character"
-msgstr ""
+msgstr "`%s': falta o carácter de formato"
#: builtins/printf.def:448
#, c-format
msgid "`%c': invalid time format specification"
-msgstr ""
+msgstr "`%c': especificación de formato de tempo non válida"
#: builtins/printf.def:635
#, c-format
msgid "`%c': invalid format character"
-msgstr ""
+msgstr "`%c': carácter de formato non válido"
#: builtins/printf.def:662
-#, fuzzy, c-format
+#, c-format
msgid "warning: %s: %s"
-msgstr "Aviso"
+msgstr "aviso: %s: %s"
#: builtins/printf.def:840
msgid "missing hex digit for \\x"
-msgstr ""
+msgstr "falta o díxito hexadecimal para \\x"
#: builtins/printf.def:855
#, c-format
msgid "missing unicode digit for \\%c"
-msgstr ""
+msgstr "falta o díxito unicode para \\%c"
#: builtins/pushd.def:195
msgid "no other directory"
-msgstr ""
+msgstr "non hai outro directorio"
#: builtins/pushd.def:462
msgid "<no current directory>"
-msgstr ""
+msgstr "<non hai directorio actual>"
#: builtins/pushd.def:506
msgid "directory stack empty"
-msgstr ""
+msgstr "a pila de directorios está baleira"
#: builtins/pushd.def:508
msgid "directory stack index"
-msgstr ""
+msgstr "índice da pila de directorios"
#: builtins/pushd.def:683
msgid ""
@@ -605,6 +617,26 @@ msgid ""
" -N\tDisplays the Nth entry counting from the right of the list shown by\n"
"\tdirs when invoked without options, starting with zero."
msgstr ""
+"Mostra a lista de directorios actualmente gravados. Os directorios\n"
+" gárdanse na lista coa orde `pushd'; pode ir saíndo da\n"
+" lista coa orde `popd'.\n"
+" \n"
+" Opcións:\n"
+" -c\tlimpa a pila de directorios, eliminando todos os elementos\n"
+" -l\tnon mostra as versións con prefixo de til dos directorios\n"
+" \trelativos ao seu directorio inicial\n"
+" -p\tmostra a pila de directorios cunha entrada por liña\n"
+" -v\tmuestra a pila de directorios cunha entrada por liña coa\n"
+" \tsúa posición na pila como prefixo\n"
+" \n"
+" Argumentos:\n"
+" +N\tMostra a N-ésima entrada contando desde a esquerda da\n"
+" \tlista mostrada por dirs cando se chama sen opcións,\n"
+" \tcomezando desde cero.\n"
+" \n"
+" -N\tMostra a N-ésima entrada contando desde a dereita da\n"
+"\tlista mostrada por dirs cando se chama sen opcións,\n"
+"\tcomezando desde cero."
#: builtins/pushd.def:705
msgid ""
@@ -630,6 +662,23 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
+"Engade un directorio ao tope da rima de directorios, ou rota\n"
+" a pila, facendo que o novo tope da rima sexa o\n"
+" directorio de trabajo actual. Sen argumentos, intercambia\n"
+" os dous directorios do tope.\n"
+" \n"
+" Argumentos:\n"
+" +N\tRota a pila para que o N-ésimo directorio (contando\n"
+" \tda izquierda da lista mostrada por `dirs',\n"
+" \tcomezando desde cero) estea no tope.\n"
+" -N\tRota a pila para que o N-ésimo directorio (contando\n"
+" \tda derecha da lista mostrada por `dirs',\n"
+" \tcomezando desde cero) estea no tope.\n"
+" \n"
+" dir\tagrega DIR á rima de directorios no tope,\n"
+" \tfacéndoo o novo directorio de traballo actual.\n"
+" \n"
+" A orde interna `dirs' mostra a rima de directorios."
#: builtins/pushd.def:730
msgid ""
@@ -651,11 +700,30 @@ msgid ""
" \n"
" The `dirs' builtin displays the directory stack."
msgstr ""
+"Borra entradas da pila de directorios. Sen argumentos, borra\n"
+" directorio do tope da pila, e cambia ao novo directorio tope.\n"
+" \n"
+" Opcións:\n"
+" -n\tsuprime o cambio normal de directorio cando se borra\n"
+" \tdirectorios da pila, así só se manipula a pila.\n"
+" \n"
+" Argumentos:\n"
+" +N\tBorra a N-ésima entrada contando da esquerda da\n"
+" \tlista mostrada por `dirs', comenzando desde cero.\n"
+" \tPor exemplo: `popd +0' borra o primeiro directorio, `popd +1'\n"
+" \to segundo.\n"
+" \n"
+" -N\tBorra a N-ésima entrada contando da derecha da\n"
+" \tlista mostrada por `dirs', comezando desde cero.\n"
+" \tPor exemplo: `popd -0' borra o último directorio, `popd -1'\n"
+" \to penúltimo.\n"
+" \n"
+" A orde interna `dirs' mostra a pila de directorios."
#: builtins/read.def:252
#, c-format
msgid "%s: invalid timeout specification"
-msgstr ""
+msgstr "%s: especificación de tempo de expiración non válida"
#: builtins/read.def:588
#, c-format
@@ -664,26 +732,26 @@ msgstr "erro de lectura: %d: %s"
#: builtins/return.def:73
msgid "can only `return' from a function or sourced script"
-msgstr ""
+msgstr "só se pode usar «return» nunha función ou guión lido con «source»"
#: builtins/set.def:771
msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
+msgstr "non é posíbel borrar ao mesmo tempo unha función e unha variábel"
#: builtins/set.def:808
#, c-format
msgid "%s: cannot unset"
-msgstr ""
+msgstr "%s: non é posíbel borrar"
#: builtins/set.def:815
#, c-format
msgid "%s: cannot unset: readonly %s"
-msgstr ""
+msgstr "%s: non é posíbel borrar: %s é de só lectura"
#: builtins/set.def:826
#, c-format
msgid "%s: not an array variable"
-msgstr ""
+msgstr "%s: non é unha variábel de matriz"
#: builtins/setattr.def:186
#, c-format
@@ -692,20 +760,20 @@ msgstr "%s: non é unha función"
#: builtins/shift.def:71 builtins/shift.def:77
msgid "shift count"
-msgstr ""
+msgstr "conta de shift"
#: builtins/shopt.def:264
msgid "cannot set and unset shell options simultaneously"
-msgstr ""
+msgstr "non é posíbel activar e desactivar opcións do shell simultaneamente"
#: builtins/shopt.def:329
#, c-format
msgid "%s: invalid shell option name"
-msgstr ""
+msgstr "%s: nome de opción do shell non válido"
#: builtins/source.def:130
msgid "filename argument required"
-msgstr ""
+msgstr "requírese un argumento de nome de ficheiro"
#: builtins/source.def:155
#, c-format
@@ -714,21 +782,21 @@ msgstr "%s: non se atopou o ficheiro"
#: builtins/suspend.def:101
msgid "cannot suspend"
-msgstr ""
+msgstr "non é posíbel suspender"
#: builtins/suspend.def:111
msgid "cannot suspend a login shell"
-msgstr ""
+msgstr "non é posíbel suspender un shell de entrada"
#: builtins/type.def:234
#, c-format
msgid "%s is aliased to `%s'\n"
-msgstr ""
+msgstr "%s é un alias de `%s'\n"
#: builtins/type.def:255
#, c-format
msgid "%s is a shell keyword\n"
-msgstr ""
+msgstr "%s é unha palabra chave do shell\n"
#: builtins/type.def:274
#, c-format
@@ -738,7 +806,7 @@ msgstr "%s é unha función\n"
#: builtins/type.def:296
#, c-format
msgid "%s is a shell builtin\n"
-msgstr ""
+msgstr "%s é unha orde interna do shell\n"
#: builtins/type.def:317 builtins/type.def:391
#, c-format
@@ -748,31 +816,31 @@ msgstr "%s é %s\n"
#: builtins/type.def:337
#, c-format
msgid "%s is hashed (%s)\n"
-msgstr ""
+msgstr "%s está asociado (%s)\n"
#: builtins/ulimit.def:376
#, c-format
msgid "%s: invalid limit argument"
-msgstr ""
+msgstr "%s: límite de argumento non válido"
#: builtins/ulimit.def:402
#, c-format
msgid "`%c': bad command"
-msgstr ""
+msgstr "`%c': orde errónea"
#: builtins/ulimit.def:431
#, c-format
msgid "%s: cannot get limit: %s"
-msgstr ""
+msgstr "%s: non é posíbel obter o límite: %s"
#: builtins/ulimit.def:457
msgid "limit"
-msgstr ""
+msgstr "límite"
#: builtins/ulimit.def:469 builtins/ulimit.def:769
#, c-format
msgid "%s: cannot modify limit: %s"
-msgstr ""
+msgstr "%s: non é posíbel modificar o límite: %s"
#: builtins/umask.def:118
msgid "octal number"
@@ -781,12 +849,12 @@ msgstr "número octal"
#: builtins/umask.def:231
#, c-format
msgid "`%c': invalid symbolic mode operator"
-msgstr ""
+msgstr "`%c': operador de modo simbólico non válido"
#: builtins/umask.def:286
#, c-format
msgid "`%c': invalid symbolic mode character"
-msgstr ""
+msgstr "`%c': carácter de modo simbólico non válido"
#: error.c:90 error.c:321 error.c:323 error.c:325
msgid " line "
@@ -800,43 +868,43 @@ msgstr "última orde: %s\n"
#: error.c:173
#, c-format
msgid "Aborting..."
-msgstr ""
+msgstr "Abortando…"
#: error.c:406
msgid "unknown command error"
-msgstr ""
+msgstr "erro de orde descoñecido"
#: error.c:407
msgid "bad command type"
-msgstr ""
+msgstr "tipo de orde erróneo"
#: error.c:408
msgid "bad connector"
-msgstr ""
+msgstr "conector erróneo"
#: error.c:409
msgid "bad jump"
-msgstr ""
+msgstr "salto erróneo"
#: error.c:447
#, c-format
msgid "%s: unbound variable"
-msgstr ""
+msgstr "%s: variable sen asignar"
#: eval.c:181
#, c-format
msgid "\atimed out waiting for input: auto-logout\n"
-msgstr ""
+msgstr "\aexpirou mentres agardaba algunha entrada: auto-logout\n"
#: execute_cmd.c:504
#, c-format
msgid "cannot redirect standard input from /dev/null: %s"
-msgstr ""
+msgstr "non é posíbel redirixir a saída estándar desde /dev/null: %s"
#: execute_cmd.c:1168
#, c-format
msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr ""
+msgstr "TIMEFORMAT: `%c': carácter de formato non válido"
#: execute_cmd.c:2121
msgid "pipe error"
@@ -845,7 +913,7 @@ msgstr "erro de canalización"
#: execute_cmd.c:4640
#, c-format
msgid "%s: restricted: cannot specify `/' in command names"
-msgstr ""
+msgstr "%s: restrinxido: non se pode especificar `/' en nomes de ordes"
#: execute_cmd.c:4735
#, c-format
@@ -860,20 +928,20 @@ msgstr "%s: %s"
#: execute_cmd.c:4995
#, c-format
msgid "%s: %s: bad interpreter"
-msgstr ""
+msgstr "%s: %s: intérprete erróneo"
#: execute_cmd.c:5144
-#, fuzzy, c-format
+#, c-format
msgid "cannot duplicate fd %d to fd %d"
-msgstr "Seleccione un ou máis <b>obxectos</b> para duplicalos."
+msgstr "no se pode duplicar o df %d ao df %d"
#: expr.c:256
msgid "expression recursion level exceeded"
-msgstr ""
+msgstr "excedeuse o nivel de recursión da expresión"
#: expr.c:280
msgid "recursion stack underflow"
-msgstr ""
+msgstr "desbordamento da base da pila de recursión"
#: expr.c:422
msgid "syntax error in expression"
@@ -881,7 +949,7 @@ msgstr "erro de sintaxe na expresión"
#: expr.c:463
msgid "attempted assignment to non-variable"
-msgstr ""
+msgstr "tentouse asignar a algo que non é unha variábel"
#: expr.c:486 expr.c:491 expr.c:807
msgid "division by 0"
@@ -889,102 +957,102 @@ msgstr "división entre 0"
#: expr.c:517
msgid "bug: bad expassign token"
-msgstr ""
+msgstr "erro: elemento de asignación de expresión erróneo"
#: expr.c:564
msgid "`:' expected for conditional expression"
-msgstr ""
+msgstr "agardábase `:' para a expresión condicional"
#: expr.c:832
msgid "exponent less than 0"
-msgstr ""
+msgstr "expoñente menor que 0"
#: expr.c:887
msgid "identifier expected after pre-increment or pre-decrement"
-msgstr ""
+msgstr "agardábase un identificador despois do pre-incremento ou pre-decremento"
#: expr.c:910
msgid "missing `)'"
-msgstr ""
+msgstr "falta un `)'"
#: expr.c:959 expr.c:1282
msgid "syntax error: operand expected"
-msgstr ""
+msgstr "erro de sintaxe: agardábase un operando"
#: expr.c:1284
msgid "syntax error: invalid arithmetic operator"
-msgstr ""
+msgstr "erro de sintaxe: operador aritmético non válido"
#: expr.c:1308
#, c-format
msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr ""
+msgstr "%s%s%s: %s (o elemento de erro é \"%s\")"
#: expr.c:1366
msgid "invalid arithmetic base"
-msgstr ""
+msgstr "base aritmética non válida"
#: expr.c:1386
msgid "value too great for base"
-msgstr ""
+msgstr "valor demasiado grande para a base"
#: expr.c:1435
#, c-format
msgid "%s: expression error\n"
-msgstr ""
+msgstr "%s: erro de expresión\n"
#: general.c:61
msgid "getcwd: cannot access parent directories"
-msgstr ""
+msgstr "getcwd: non é posíbel acceder aos directorios pai"
#: input.c:94 subst.c:5082
#, c-format
msgid "cannot reset nodelay mode for fd %d"
-msgstr ""
+msgstr "non é posíbel restabelecer o modo nodelay para o df %d"
#: input.c:260
#, c-format
msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
+msgstr "non é posíbel asignar un novo descritor de ficheiros para a entrada de bash desde o fd %d"
#: input.c:268
#, c-format
msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr ""
+msgstr "save_bash_input: o almacenamento intermedio xa existe para o novo fd %d"
#: jobs.c:468
msgid "start_pipeline: pgrp pipe"
-msgstr ""
+msgstr "start_pipeline: tubería de pgrp"
#: jobs.c:889
#, c-format
msgid "forked pid %d appears in running job %d"
-msgstr ""
+msgstr "o pid `forked' %d aparece no traballo en execución %d"
#: jobs.c:1007
#, c-format
msgid "deleting stopped job %d with process group %ld"
-msgstr ""
+msgstr "borrando o trabajo detido %d con grupo de proceso %ld"
#: jobs.c:1112
#, c-format
msgid "add_process: process %5ld (%s) in the_pipeline"
-msgstr ""
+msgstr "add_process: o proceso %5ld (%s) en the_pipeline"
#: jobs.c:1115
#, c-format
msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr ""
+msgstr "add_process: pid %5ld (%s) márcase como vivo aínda"
#: jobs.c:1430
#, c-format
msgid "describe_pid: %ld: no such pid"
-msgstr ""
+msgstr "describe_pid: %ld: non existe tal pid"
#: jobs.c:1445
#, c-format
msgid "Signal %d"
-msgstr ""
+msgstr "Sinal %d"
#: jobs.c:1459 jobs.c:1484
msgid "Done"
@@ -992,12 +1060,12 @@ msgstr "Feito"
#: jobs.c:1464 siglist.c:123
msgid "Stopped"
-msgstr ""
+msgstr "Detido"
#: jobs.c:1468
#, c-format
msgid "Stopped(%s)"
-msgstr ""
+msgstr "Detido(%s)"
#: jobs.c:1472
msgid "Running"
@@ -1011,7 +1079,7 @@ msgstr "Feito(%d)"
#: jobs.c:1488
#, c-format
msgid "Exit %d"
-msgstr ""
+msgstr "Saída %d"
#: jobs.c:1491
msgid "Unknown status"
@@ -1020,46 +1088,46 @@ msgstr "Estado descoñecido"
#: jobs.c:1578
#, c-format
msgid "(core dumped) "
-msgstr ""
+msgstr "(«core» xerado) "
#: jobs.c:1597
#, c-format
msgid " (wd: %s)"
-msgstr ""
+msgstr " (dir agora: %s)"
#: jobs.c:1805
#, c-format
msgid "child setpgid (%ld to %ld)"
-msgstr ""
+msgstr "setpgid fillo (%ld a %ld)"
#: jobs.c:2133 nojobs.c:585
#, c-format
msgid "wait: pid %ld is not a child of this shell"
-msgstr ""
+msgstr "wait: pid %ld non é un proceso fillo desta shell"
#: jobs.c:2360
#, c-format
msgid "wait_for: No record of process %ld"
-msgstr ""
+msgstr "wait_for: Non hai un rexistro do proceso %ld"
#: jobs.c:2637
#, c-format
msgid "wait_for_job: job %d is stopped"
-msgstr ""
+msgstr "wait_for_job: o traballo %d está detido"
#: jobs.c:2859
#, c-format
msgid "%s: job has terminated"
-msgstr ""
+msgstr "%s: o traballo rematou"
#: jobs.c:2868
#, c-format
msgid "%s: job %d already in background"
-msgstr ""
+msgstr "%s: o trabajo %d xa está en segundo plano"
#: jobs.c:3089
msgid "waitchld: turning on WNOHANG to avoid indefinite block"
-msgstr ""
+msgstr "waitchld: actívase WNOHANG para evitar o bloque indefinido"
#: jobs.c:3538
#, c-format
@@ -1069,38 +1137,38 @@ msgstr "%s: liña %d: "
#: jobs.c:3552 nojobs.c:814
#, c-format
msgid " (core dumped)"
-msgstr ""
+msgstr " («core» generado)"
#: jobs.c:3564 jobs.c:3577
#, c-format
msgid "(wd now: %s)\n"
-msgstr ""
+msgstr "(dir agora: %s)\n"
#: jobs.c:3609
msgid "initialize_job_control: getpgrp failed"
-msgstr ""
+msgstr "initialize_jobs_control: fallou getpgrp"
#: jobs.c:3669
msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "initialize_jobs_control: disciplina de liña"
#: jobs.c:3679
msgid "initialize_job_control: setpgid"
-msgstr ""
+msgstr "initialize_jobs_control: setpgid"
#: jobs.c:3707
#, c-format
msgid "cannot set terminal process group (%d)"
-msgstr ""
+msgstr "non é posíbel estabelecer o grupo de procesos de terminal (%d)"
#: jobs.c:3712
msgid "no job control in this shell"
-msgstr ""
+msgstr "non hai control de trabalos nesta shell"
#: lib/malloc/malloc.c:296
#, c-format
msgid "malloc: failed assertion: %s\n"
-msgstr ""
+msgstr "malloc: fallou a aserción: %s\n"
#: lib/malloc/malloc.c:312
#, c-format
@@ -1108,6 +1176,8 @@ msgid ""
"\r\n"
"malloc: %s:%d: assertion botched\r\n"
msgstr ""
+"\r\n"
+"malloc: %s:%d: aserción arruinada\r\n"
#: lib/malloc/malloc.c:313
msgid "unknown"
@@ -1115,93 +1185,93 @@ msgstr "descoñecido"
#: lib/malloc/malloc.c:797
msgid "malloc: block on free list clobbered"
-msgstr ""
+msgstr "malloc: bloque na lista libre sobreescrito"
#: lib/malloc/malloc.c:874
msgid "free: called with already freed block argument"
-msgstr ""
+msgstr "free: chamouse cun argumento de bloque previamente liberado"
#: lib/malloc/malloc.c:877
msgid "free: called with unallocated block argument"
-msgstr ""
+msgstr "free: chamouse cun argumento de bloque sen asignar"
#: lib/malloc/malloc.c:896
msgid "free: underflow detected; mh_nbytes out of range"
-msgstr ""
+msgstr "free: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"
#: lib/malloc/malloc.c:902
msgid "free: start and end chunk sizes differ"
-msgstr ""
+msgstr "free: os tamaños dos anacos de inicio e fin son diferentes"
#: lib/malloc/malloc.c:1001
msgid "realloc: called with unallocated block argument"
-msgstr ""
+msgstr "realloc: chamouse cun argumento de bloque sen asignar"
#: lib/malloc/malloc.c:1016
msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr ""
+msgstr "realloc: detectouse un desbordamento por embaixo; mh_nbytes fóra de rango"
#: lib/malloc/malloc.c:1022
msgid "realloc: start and end chunk sizes differ"
-msgstr ""
+msgstr "realloc: os tamaños dos anacos de inicio e fin son diferentes"
#: lib/malloc/table.c:177
#, c-format
msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr ""
+msgstr "register_alloc: a táboa alloc está chea con FIND_ALLOC?\n"
#: lib/malloc/table.c:184
#, c-format
msgid "register_alloc: %p already in table as allocated?\n"
-msgstr ""
+msgstr "register_alloc: %p xa está na táboa como asignado?\n"
#: lib/malloc/table.c:220
#, c-format
msgid "register_free: %p already in table as free?\n"
-msgstr ""
+msgstr "register_free: %p xa está na táboa como libre?\n"
#: lib/sh/fmtulong.c:101
msgid "invalid base"
-msgstr ""
+msgstr "base non válida"
#: lib/sh/netopen.c:168
#, c-format
msgid "%s: host unknown"
-msgstr ""
+msgstr "%s: anfitrión descoñecido"
#: lib/sh/netopen.c:175
#, c-format
msgid "%s: invalid service"
-msgstr ""
+msgstr "%s: servizo non válido"
#: lib/sh/netopen.c:306
#, c-format
msgid "%s: bad network path specification"
-msgstr ""
+msgstr "%s: especificación de ruta de rede errónea"
#: lib/sh/netopen.c:346
msgid "network operations not supported"
-msgstr ""
+msgstr "non hai compatibilidade para operacións de rede"
#: locale.c:192
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: LC_ALL non se pode cambiar a configuración rexional (%s)"
#: locale.c:194
#, c-format
msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: LC_ALL: non se pode cambiar a configuración rexional (%s): %s"
#: locale.c:247
#, c-format
msgid "setlocale: %s: cannot change locale (%s)"
-msgstr ""
+msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s)"
#: locale.c:249
#, c-format
msgid "setlocale: %s: cannot change locale (%s): %s"
-msgstr ""
+msgstr "setlocale: %s: non se pode cambiar a configuración rexional (%s): %s"
#: mailcheck.c:433
msgid "You have mail in $_"
@@ -1214,15 +1284,15 @@ msgstr "Ten unha nova mensaxe en $_"
#: mailcheck.c:474
#, c-format
msgid "The mail in %s has been read\n"
-msgstr ""
+msgstr "O correo en %s foi lido\n"
#: make_cmd.c:323
msgid "syntax error: arithmetic expression required"
-msgstr ""
+msgstr "error de sintaxe: requírese unha expresión aritmética"
#: make_cmd.c:325
msgid "syntax error: `;' unexpected"
-msgstr ""
+msgstr "error sintáctico: `;' non esperado"
#: make_cmd.c:326
#, c-format
@@ -1232,100 +1302,100 @@ msgstr "erro de sintaxe: `((%s))'"
#: make_cmd.c:575
#, c-format
msgid "make_here_document: bad instruction type %d"
-msgstr ""
+msgstr "make_here_document: tipo de instrución %d erróneo"
#: make_cmd.c:659
#, c-format
msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
+msgstr "o documento-aquí na liña %d está delimitado por fin-de-fichero (agardábase `%s')"
#: make_cmd.c:756
#, c-format
msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
+msgstr "make_redirection: a instrucción de redirección `%d' está fóra de rango"
#: parse.y:3173 parse.y:3444
#, c-format
msgid "unexpected EOF while looking for matching `%c'"
-msgstr ""
+msgstr "EOF inesperado mentres se buscaba un `%c' coincidente"
#: parse.y:4025
msgid "unexpected EOF while looking for `]]'"
-msgstr ""
+msgstr "EOF inesperado mentres se buscaba `]]'"
#: parse.y:4030
#, c-format
msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr ""
+msgstr "error de sintaxe na expresión condicional: elemento inesperado `%s'"
#: parse.y:4034
msgid "syntax error in conditional expression"
-msgstr ""
+msgstr "error sintáctico na expresión condicional"
#: parse.y:4112
#, c-format
msgid "unexpected token `%s', expected `)'"
-msgstr ""
+msgstr "elemento inesperado `%s', agardábase `)'"
#: parse.y:4116
msgid "expected `)'"
-msgstr ""
+msgstr "agardábase `)'"
#: parse.y:4144
#, c-format
msgid "unexpected argument `%s' to conditional unary operator"
-msgstr ""
+msgstr "argumento inesperado `%s' para o operador unario condicional"
#: parse.y:4148
msgid "unexpected argument to conditional unary operator"
-msgstr ""
+msgstr "argumento inesperado para o operador unario condicional"
#: parse.y:4194
#, c-format
msgid "unexpected token `%s', conditional binary operator expected"
-msgstr ""
+msgstr "elemento inesperado `%s', agardábase un operador binario condicional"
#: parse.y:4198
msgid "conditional binary operator expected"
-msgstr ""
+msgstr "agardábase un operador binario condicional"
#: parse.y:4220
#, c-format
msgid "unexpected argument `%s' to conditional binary operator"
-msgstr ""
+msgstr "argumento inesperado `%s' para o operador binario condicional"
#: parse.y:4224
msgid "unexpected argument to conditional binary operator"
-msgstr ""
+msgstr "argumento inesperado para o operador binario condicional"
#: parse.y:4235
#, c-format
msgid "unexpected token `%c' in conditional command"
-msgstr ""
+msgstr "elemento inesperado `%c' na orde condicional"
#: parse.y:4238
#, c-format
msgid "unexpected token `%s' in conditional command"
-msgstr ""
+msgstr "elemento inesperado `%s' na orde condicional"
#: parse.y:4242
#, c-format
msgid "unexpected token %d in conditional command"
-msgstr ""
+msgstr "elemento inesperado %d na orde condicional"
#: parse.y:5566
#, c-format
msgid "syntax error near unexpected token `%s'"
-msgstr ""
+msgstr "error de sintaxe perto do elemento inesperado `%s'"
#: parse.y:5584
#, c-format
msgid "syntax error near `%s'"
-msgstr ""
+msgstr "erro de sintaxe cerca de «%s»"
#: parse.y:5594
msgid "syntax error: unexpected end of file"
-msgstr ""
+msgstr "error de sintaxe: non se agardaba o final do fichero"
#: parse.y:5594
msgid "syntax error"
@@ -1334,90 +1404,90 @@ msgstr "erro de sintaxe"
#: parse.y:5656
#, c-format
msgid "Use \"%s\" to leave the shell.\n"
-msgstr ""
+msgstr "Use «%s» para deixar o shell.\n"
#: parse.y:5818
msgid "unexpected EOF while looking for matching `)'"
-msgstr ""
+msgstr "EOF non agardado mentres se buscaba un «)» coincidente"
#: pcomplete.c:1030
#, c-format
msgid "completion: function `%s' not found"
-msgstr ""
+msgstr "completion: non se atopa a función `%s'"
#: pcomplib.c:182
#, c-format
msgid "progcomp_insert: %s: NULL COMPSPEC"
-msgstr ""
+msgstr "progcomp_insert: %s: COMPSPEC nulo"
#: print_cmd.c:296
#, c-format
msgid "print_command: bad connector `%d'"
-msgstr ""
+msgstr "print_command: conector erróneo `%d'"
#: print_cmd.c:368
#, c-format
msgid "xtrace_set: %d: invalid file descriptor"
-msgstr ""
+msgstr "xtrace_set: %d: descriptor de fichero non válido"
#: print_cmd.c:373
msgid "xtrace_set: NULL file pointer"
-msgstr ""
+msgstr "xtrace_set: punteiro a ficheiro NULL"
#: print_cmd.c:377
#, c-format
msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
-msgstr ""
+msgstr "xtrace fd (%d) != numfich xtrace fp (%d)"
#: print_cmd.c:1478
#, c-format
msgid "cprintf: `%c': invalid format character"
-msgstr ""
+msgstr "cprintf: `%c': carácter de formato non válido"
#: redir.c:122
msgid "file descriptor out of range"
-msgstr ""
+msgstr "descritor de ficheiro fóra de rango"
#: redir.c:178
#, c-format
msgid "%s: ambiguous redirect"
-msgstr ""
+msgstr "%s: redireccionamento ambigüo"
#: redir.c:182
#, c-format
msgid "%s: cannot overwrite existing file"
-msgstr ""
+msgstr "%s: non se pode sobreescribir un fichero existente"
#: redir.c:187
#, c-format
msgid "%s: restricted: cannot redirect output"
-msgstr ""
+msgstr "%s: restrinxido: no se pode redirixir a saída"
#: redir.c:192
#, c-format
msgid "cannot create temp file for here-document: %s"
-msgstr ""
+msgstr "non se pode crear un fichero temporal para o documento-aquí: %s"
#: redir.c:196
#, c-format
msgid "%s: cannot assign fd to variable"
-msgstr ""
+msgstr "%s: non é posíbel asignar o gd á variábel"
#: redir.c:548
msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr ""
+msgstr "non se admite /dev/(tcp|udp)/anfitrion/porto sen rede"
#: redir.c:818 redir.c:930 redir.c:993 redir.c:1136
msgid "redirection error: cannot duplicate fd"
-msgstr ""
+msgstr "erro de redirección: non é posíbel duplicar o fd"
#: shell.c:333
msgid "could not find /tmp, please create!"
-msgstr ""
+msgstr "non é posíbel atopar /tmp, por favor creeo!"
#: shell.c:337
msgid "/tmp must be a valid directory name"
-msgstr ""
+msgstr "/tmp debe ser un nome de directorio válido"
#: shell.c:884
#, c-format
@@ -1439,38 +1509,40 @@ msgid ""
"Usage:\t%s [GNU long option] [option] ...\n"
"\t%s [GNU long option] [option] script-file ...\n"
msgstr ""
+"Uso:\t%s [opción GNU longa] [opción] ...\n"
+"\t%s [opción GNU longa] [opción] guión-do-shell\n"
#: shell.c:1798
msgid "GNU long options:\n"
-msgstr ""
+msgstr "Opcións GNU longas:\n"
#: shell.c:1802
msgid "Shell options:\n"
-msgstr ""
+msgstr "Opcións do shell:\n"
#: shell.c:1803
msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr ""
+msgstr "\t-irsD o -c orde ou -O opcion_shopt\t\t(só invocación)\n"
#: shell.c:1818
#, c-format
msgid "\t-%s or -o option\n"
-msgstr ""
+msgstr "\t-%s ou -o opción\n"
#: shell.c:1824
#, c-format
msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr ""
+msgstr "Escriba `%s -c \"help set\"' para máis información sobre as opcións do shell.\n"
#: shell.c:1825
#, c-format
msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
+msgstr "Escriba `%s -c help' para máis información sobre as ordes internas do shell.\n"
#: shell.c:1826
#, c-format
msgid "Use the `bashbug' command to report bugs.\n"
-msgstr ""
+msgstr "Use a orden `bashbug' para reportar erros.\n"
#: sig.c:638
#, c-format
@@ -1479,15 +1551,15 @@ msgstr "sigprocmask: %d: operación non válida"
#: siglist.c:48
msgid "Bogus signal"
-msgstr ""
+msgstr "Sinal ambigüa"
#: siglist.c:51
msgid "Hangup"
-msgstr ""
+msgstr "Colgar"
#: siglist.c:55
msgid "Interrupt"
-msgstr ""
+msgstr "Interromper"
#: siglist.c:59
msgid "Quit"
@@ -1495,127 +1567,127 @@ msgstr "Saír"
#: siglist.c:63
msgid "Illegal instruction"
-msgstr ""
+msgstr "Instrución ilegal"
#: siglist.c:67
msgid "BPT trace/trap"
-msgstr ""
+msgstr "BPT rastreo/captura"
#: siglist.c:75
msgid "ABORT instruction"
-msgstr ""
+msgstr "instrución ABORT"
#: siglist.c:79
msgid "EMT instruction"
-msgstr ""
+msgstr "instrución EMT"
#: siglist.c:83
msgid "Floating point exception"
-msgstr ""
+msgstr "Excepción de coma flotante"
#: siglist.c:87
msgid "Killed"
-msgstr ""
+msgstr "Matado"
#: siglist.c:91
msgid "Bus error"
-msgstr ""
+msgstr "Erro no bus"
#: siglist.c:95
msgid "Segmentation fault"
-msgstr ""
+msgstr "Violación de segmento"
#: siglist.c:99
msgid "Bad system call"
-msgstr ""
+msgstr "Chamada ao sistema errónea"
#: siglist.c:103
msgid "Broken pipe"
-msgstr ""
+msgstr "Tubería rota"
#: siglist.c:107
msgid "Alarm clock"
-msgstr ""
+msgstr "Temporizador"
#: siglist.c:111
msgid "Terminated"
-msgstr ""
+msgstr "Rematado"
#: siglist.c:115
msgid "Urgent IO condition"
-msgstr ""
+msgstr "Condicón de E/s urxente"
#: siglist.c:119
msgid "Stopped (signal)"
-msgstr ""
+msgstr "Detido (sinal)"
#: siglist.c:127
msgid "Continue"
-msgstr ""
+msgstr "Continúa"
#: siglist.c:135
msgid "Child death or stop"
-msgstr ""
+msgstr "O proceso fillo morreu ou está parado"
#: siglist.c:139
msgid "Stopped (tty input)"
-msgstr ""
+msgstr "Detido (entrada pola terminal)"
#: siglist.c:143
msgid "Stopped (tty output)"
-msgstr ""
+msgstr "Detido (saída pola terminal)"
#: siglist.c:147
msgid "I/O ready"
-msgstr "E/S preparada"
+msgstr "E/S listas"
#: siglist.c:151
msgid "CPU limit"
-msgstr ""
+msgstr "Límite de CPU"
#: siglist.c:155
msgid "File limit"
-msgstr ""
+msgstr "Límite de ficheiros"
#: siglist.c:159
msgid "Alarm (virtual)"
-msgstr ""
+msgstr "Alarma (virtual)"
#: siglist.c:163
msgid "Alarm (profile)"
-msgstr ""
+msgstr "Alarma (contorno)"
#: siglist.c:167
msgid "Window changed"
-msgstr ""
+msgstr "Xanela cambiada"
#: siglist.c:171
msgid "Record lock"
-msgstr ""
+msgstr "Bloqueo de gravación"
#: siglist.c:175
msgid "User signal 1"
-msgstr ""
+msgstr "Sinal de usuario 1"
#: siglist.c:179
msgid "User signal 2"
-msgstr ""
+msgstr "Sinal de usuario 2"
#: siglist.c:183
msgid "HFT input data pending"
-msgstr ""
+msgstr "entrada de datos HFT pendente"
#: siglist.c:187
msgid "power failure imminent"
-msgstr ""
+msgstr "fallo de enerxía inminente"
#: siglist.c:191
msgid "system crash imminent"
-msgstr ""
+msgstr "caída do sistema inminente"
#: siglist.c:195
msgid "migrate process to another CPU"
-msgstr ""
+msgstr "migrando o proceso a outra CPU"
#: siglist.c:199
msgid "programming error"
@@ -1623,15 +1695,15 @@ msgstr "erro de programación"
#: siglist.c:203
msgid "HFT monitor mode granted"
-msgstr ""
+msgstr "o modo monitor HFT foi concedido"
#: siglist.c:207
msgid "HFT monitor mode retracted"
-msgstr ""
+msgstr "o modo monitor HTF foi retirado"
#: siglist.c:211
msgid "HFT sound sequence has completed"
-msgstr ""
+msgstr "a secuencia de son HFT foi completada"
#: siglist.c:215
msgid "Information request"
@@ -1639,197 +1711,197 @@ msgstr "Solicitude de información"
#: siglist.c:223
msgid "Unknown Signal #"
-msgstr ""
+msgstr "Sinal descoñecido #"
#: siglist.c:225
#, c-format
msgid "Unknown Signal #%d"
-msgstr ""
+msgstr "Sinal descoñecido #%d"
#: subst.c:1333 subst.c:1502
#, c-format
msgid "bad substitution: no closing `%s' in %s"
-msgstr ""
+msgstr "susbtitución errónea: non hai un `%s' que peche en %s"
#: subst.c:2795
#, c-format
msgid "%s: cannot assign list to array member"
-msgstr ""
+msgstr "%s: no é posíbel asignar unha lista a un membro da matriz"
#: subst.c:4979 subst.c:4995
msgid "cannot make pipe for process substitution"
-msgstr ""
+msgstr "non é posíbel crear a tubería para a sustitución do proceso"
#: subst.c:5027
msgid "cannot make child for process substitution"
-msgstr ""
+msgstr "non é posíbel crear un proceso fillo para a substitución do proceso"
#: subst.c:5072
#, c-format
msgid "cannot open named pipe %s for reading"
-msgstr ""
+msgstr "non é posíbel abrir a tubería chamada %s para lectura"
#: subst.c:5074
#, c-format
msgid "cannot open named pipe %s for writing"
-msgstr ""
+msgstr "non é posíbel abrir a tubería chamada %s para escritura"
#: subst.c:5092
#, c-format
msgid "cannot duplicate named pipe %s as fd %d"
-msgstr ""
+msgstr "non é posíbel duplicar a tubería chamada %s como df %d"
#: subst.c:5284
msgid "cannot make pipe for command substitution"
-msgstr ""
+msgstr "non é posíble crear a tubería para a substitución da orde"
#: subst.c:5322
msgid "cannot make child for command substitution"
-msgstr ""
+msgstr "non é posíbel crear un proceso fillo para a substitución da orde"
#: subst.c:5339
msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr ""
+msgstr "command_substitute: non é posíbel duplicar a tubería como fd 1"
#: subst.c:5859
#, c-format
msgid "%s: parameter null or not set"
-msgstr ""
+msgstr "%s: parámetro nulo ou non estabelecido"
#: subst.c:6125 subst.c:6140
#, c-format
msgid "%s: substring expression < 0"
-msgstr ""
+msgstr "%s: expresión de subcadea < 0"
#: subst.c:7271
#, c-format
msgid "%s: bad substitution"
-msgstr ""
+msgstr "%s: substitución errónea"
#: subst.c:7347
#, c-format
msgid "$%s: cannot assign in this way"
-msgstr ""
+msgstr "$%s: non é posíbel asignar de esta forma"
#: subst.c:7684
msgid "future versions of the shell will force evaluation as an arithmetic substitution"
-msgstr ""
+msgstr "versiones futuras do intérprete obligarán a evaluación como unha substitución aritmética"
#: subst.c:8149
#, c-format
msgid "bad substitution: no closing \"`\" in %s"
-msgstr ""
+msgstr "substitución errónea: non hai unha \"`\" que peche en %s"
#: subst.c:9036
#, c-format
msgid "no match: %s"
-msgstr ""
+msgstr "non hai concidencia: %s"
#: test.c:146
msgid "argument expected"
-msgstr ""
+msgstr "agardábase un argumento"
#: test.c:155
#, c-format
msgid "%s: integer expression expected"
-msgstr ""
+msgstr "%s: agardábase unha expresión enteira"
#: test.c:263
msgid "`)' expected"
-msgstr ""
+msgstr "agardábase `)'"
#: test.c:265
#, c-format
msgid "`)' expected, found %s"
-msgstr ""
+msgstr "`)' agardábase, atopouse %s"
#: test.c:280 test.c:698 test.c:701
#, c-format
msgid "%s: unary operator expected"
-msgstr ""
+msgstr "%s: agardábase un operador unario"
#: test.c:449 test.c:741
#, c-format
msgid "%s: binary operator expected"
-msgstr ""
+msgstr "%s: agardábase un operador binario"
#: test.c:816
msgid "missing `]'"
-msgstr ""
+msgstr "falta un «]»"
#: trap.c:207
msgid "invalid signal number"
-msgstr ""
+msgstr "número de sinal non válido"
#: trap.c:337
#, c-format
msgid "run_pending_traps: bad value in trap_list[%d]: %p"
-msgstr ""
+msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p"
#: trap.c:341
#, c-format
msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
+msgstr "run_pending_traps: o manexador de sinal é SIG_DFL, reenviando %d (%s) a sí mesmo"
#: trap.c:393
#, c-format
msgid "trap_handler: bad signal %d"
-msgstr ""
+msgstr "trap_handler: sinal errónea %d"
#: variables.c:363
#, c-format
msgid "error importing function definition for `%s'"
-msgstr ""
+msgstr "erro ao importar a definición da función para «%s»"
#: variables.c:755
#, c-format
msgid "shell level (%d) too high, resetting to 1"
-msgstr ""
+msgstr "o nivel de shell (%d) é demasiado alto, restabelécese a 1"
#: variables.c:1932
msgid "make_local_variable: no function context at current scope"
-msgstr ""
+msgstr "make_local_variable: non hai contexto de función no ámbito actual"
#: variables.c:3182
msgid "all_local_variables: no function context at current scope"
-msgstr ""
+msgstr "all_local_variables: non hai contexto de función no ámbito actual"
#: variables.c:3427
#, c-format
msgid "%s has null exportstr"
-msgstr ""
+msgstr "%s ten exportstr nulo"
#: variables.c:3432 variables.c:3441
#, c-format
msgid "invalid character %d in exportstr for %s"
-msgstr ""
+msgstr "carácter non válido %d en exportsrt para %s"
#: variables.c:3447
#, c-format
msgid "no `=' in exportstr for %s"
-msgstr ""
+msgstr "non hai «=» en exportstr para %s"
#: variables.c:3891
msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
+msgstr "pop_var_context: a cabezak de shell_variables non é un contexto de función"
#: variables.c:3904
msgid "pop_var_context: no global_variables context"
-msgstr ""
+msgstr "pop_var_context: non é un contexto global_variables "
#: variables.c:3978
msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
+msgstr "pop_scope: a cabeza de shell_variables non é un ámbito de ambiente temporal"
#: variables.c:4786
#, c-format
msgid "%s: %s: cannot open as FILE"
-msgstr ""
+msgstr "%s: %s: non é posíbel abrir como FICHEIRO"
#: variables.c:4791
#, c-format
msgid "%s: %s: invalid value for trace file descriptor"
-msgstr ""
+msgstr "%s: %s: valor non válido para o descitor de ficheiro de rastreo"
#: version.c:46
msgid "Copyright (C) 2011 Free Software Foundation, Inc."
@@ -1837,7 +1909,7 @@ 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 ""
+msgstr "Licenza GPLv3+: GPL de GNU versión 3 ou posterior <http://gnu.org/licenses/gpl.html>\n"
#: version.c:86 version2.c:83
#, c-format
@@ -1847,12 +1919,12 @@ msgstr "GNU bash, versión %s (%s)\n"
#: version.c:91 version2.c:88
#, c-format
msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
+msgstr "Isto é software libre; vostede é libre de cambialo e redistribuilo.\n"
#: version.c:92 version2.c:89
#, c-format
msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
+msgstr "Non hai GARANTÍA, á extensión permitida pola ley.\n"
#: version2.c:86
#, c-format
@@ -1862,39 +1934,39 @@ 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 ""
+msgstr "Licenza GPLv2+: GPL de GNU versión 2 ou posterior <http://gnu.org/licenses/gpl.html>\n"
#: xmalloc.c:91
#, c-format
msgid "%s: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
+msgstr "%s: non é posíbel asignar %lu bytes (%lu bytes asignados)"
#: xmalloc.c:93
#, c-format
msgid "%s: cannot allocate %lu bytes"
-msgstr ""
+msgstr "%s: non é posíbel asignar %lu bytes"
#: xmalloc.c:163
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
+msgstr "%s: %s:%d: non é posíbel asignar %lu bytes (%lu bytes asignados)"
#: xmalloc.c:165
#, c-format
msgid "%s: %s:%d: cannot allocate %lu bytes"
-msgstr ""
+msgstr "%s: %s:%d: non é posíbel asignar %lu bytes"
#: builtins.c:43
msgid "alias [-p] [name[=value] ... ]"
-msgstr ""
+msgstr "alias [-p] [nome[=valor] ... ]"
#: builtins.c:47
msgid "unalias [-a] name [name ...]"
-msgstr ""
+msgstr "unalias [-a] nome [nome ...]"
#: builtins.c:51
msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
+msgstr "bind [-lpvsPVS] [-m comb_teclas] [-f ficheiro] [-q nome] [-u nome] [-r secteclas] [-x secteclas:orde-shell] [keyseq:función-readline ou función-readline]"
#: builtins.c:54
msgid "break [n]"
@@ -1906,15 +1978,15 @@ msgstr "continue [n]"
#: builtins.c:58
msgid "builtin [shell-builtin [arg ...]]"
-msgstr ""
+msgstr "builtin [orde-interna-shell [arg ...]]"
#: builtins.c:61
msgid "caller [expr]"
-msgstr ""
+msgstr "caller [expresión]"
#: builtins.c:64
msgid "cd [-L|[-P [-e]]] [dir]"
-msgstr ""
+msgstr "cd [-L|[-P [-e]]] [directorio]"
#: builtins.c:66
msgid "pwd [-LP]"
@@ -1926,51 +1998,51 @@ msgstr ":"
#: builtins.c:70
msgid "true"
-msgstr ""
+msgstr "true"
#: builtins.c:72
msgid "false"
-msgstr ""
+msgstr "false"
#: builtins.c:74
msgid "command [-pVv] command [arg ...]"
-msgstr ""
+msgstr "command [-pVv] orde [arg ...]"
#: builtins.c:76
msgid "declare [-aAfFgilrtux] [-p] [name[=value] ...]"
-msgstr ""
+msgstr "declare [-aAfFgilrtux] [-p] [nome[=valor] ...]"
#: builtins.c:78
msgid "typeset [-aAfFgilrtux] [-p] name[=value] ..."
-msgstr ""
+msgstr "typeset [-aAfFgilrtux] [-p] nome[=valor] ..."
#: builtins.c:80
msgid "local [option] name[=value] ..."
-msgstr ""
+msgstr "local [option] nome[=valor] ..."
#: builtins.c:83
msgid "echo [-neE] [arg ...]"
-msgstr ""
+msgstr "echo [-neE] [arg ...]"
#: builtins.c:87
msgid "echo [-n] [arg ...]"
-msgstr ""
+msgstr "echo [-n] [arg ...]"
#: builtins.c:90
msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr ""
+msgstr "enable [-a] [-dnps] [-f nomeficheiro] [nome ...]"
#: builtins.c:92
msgid "eval [arg ...]"
-msgstr ""
+msgstr "eval [arg ...]"
#: builtins.c:94
msgid "getopts optstring name [arg]"
-msgstr ""
+msgstr "getopts cadena_opcións nome [arg]"
#: builtins.c:96
msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
+msgstr "exec [-cl] [-a ome] [orde [argumentos ...]] [redirección ...]"
#: builtins.c:98
msgid "exit [n]"
@@ -1982,47 +2054,47 @@ msgstr "logout [n]"
#: builtins.c:103
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
+msgstr "fc [-e nome_e] [-lnr] [primeiro] [último] ou fc -s [pat=rep] [orde]"
#: builtins.c:107
msgid "fg [job_spec]"
-msgstr ""
+msgstr "fg [id_traballo]"
#: builtins.c:111
msgid "bg [job_spec ...]"
-msgstr ""
+msgstr "bg [id_traballo ...]"
#: builtins.c:114
msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr ""
+msgstr "hash [-lr] [-p ruta] [-dt] [nome ...]"
#: builtins.c:117
msgid "help [-dms] [pattern ...]"
-msgstr ""
+msgstr "help [-dms] [patrón ...]"
#: builtins.c:121
msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
-msgstr ""
+msgstr "history [-c] [-d desprazamento] [n] ou history -anrw [ficheiro] ou history -ps arg [arg...]"
#: builtins.c:125
msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
+msgstr "jobs [-lnprs] [idtraballo ...] ou jobs -x orde [args]"
#: builtins.c:129
msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr ""
+msgstr "disown [-h] [-ar] [id_traballo ...]"
#: builtins.c:132
msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
-msgstr ""
+msgstr "kill [-s id_sinal | -n num_sinal | -id_sinal] pid | id_traballo ... ou kill -l [id_sinal]"
#: builtins.c:134
msgid "let arg [arg ...]"
-msgstr ""
+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 ""
+msgstr "read [-ers] [-a matriz] [-d delim] [-i texto] [-n ncars] [-N ncars] [-p prompt] [-t timeout] [-u fd] [nome ...]"
#: builtins.c:138
msgid "return [n]"
@@ -2030,19 +2102,19 @@ msgstr "return [n]"
#: builtins.c:140
msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr ""
+msgstr "set [-abefhkmnptuvxBCHP] [-o nome-opción] [--] [arg ...]"
#: builtins.c:142
msgid "unset [-f] [-v] [name ...]"
-msgstr ""
+msgstr "unset [-f] [-v] [nome ...]"
#: builtins.c:144
msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
+msgstr "export [-fn] [nome[=valor] ...] ou export -p"
#: builtins.c:146
msgid "readonly [-aAf] [name[=value] ...] or readonly -p"
-msgstr ""
+msgstr "readonly [-aAf] [nome[=valor] ...] ou readonly -p"
#: builtins.c:148
msgid "shift [n]"
@@ -2050,43 +2122,43 @@ msgstr "shift [n]"
#: builtins.c:150
msgid "source filename [arguments]"
-msgstr ""
+msgstr "source ficheiro [arguments]"
#: builtins.c:152
msgid ". filename [arguments]"
-msgstr ""
+msgstr ". ficheiro [argumentos]"
#: builtins.c:155
msgid "suspend [-f]"
-msgstr ""
+msgstr "suspend [-f]"
#: builtins.c:158
msgid "test [expr]"
-msgstr ""
+msgstr "test [expresión]"
#: builtins.c:160
msgid "[ arg... ]"
-msgstr ""
+msgstr "[ arg... ]"
#: builtins.c:162
msgid "times"
-msgstr ""
+msgstr "times"
#: builtins.c:164
msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr ""
+msgstr "trap [-lp] [[arg] id_sinal ...]"
#: builtins.c:166
msgid "type [-afptP] name [name ...]"
-msgstr ""
+msgstr "type [-afptP] nome [nome ...]"
#: builtins.c:169
msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr ""
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [límite]"
#: builtins.c:172
msgid "umask [-p] [-S] [mode]"
-msgstr ""
+msgstr "umask [-p] [-S] [modo]"
#: builtins.c:175
msgid "wait [id]"
@@ -2094,75 +2166,75 @@ msgstr "wait [id]"
#: builtins.c:179
msgid "wait [pid]"
-msgstr ""
+msgstr "wait [pid]"
#: builtins.c:182
msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr ""
+msgstr "for NOME [in PALABRAS ... ] ; do ORDES; done"
#: builtins.c:184
msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr ""
+msgstr "for (( exp1; exp2; exp3 )); do ORDES; done"
#: builtins.c:186
msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr ""
+msgstr "select NOME [in PALABRAS ... ;] do ORDES; done"
#: builtins.c:188
msgid "time [-p] pipeline"
-msgstr ""
+msgstr "time [-p] pipeline"
#: builtins.c:190
msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr ""
+msgstr "case PALABRA in [PATRÓN [| PATRÓN]...) ORDES ;;]... esac"
#: builtins.c:192
msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
-msgstr ""
+msgstr "if ORDES; then ORDES; [ elif ORDES; then ORDES; ]...[ else ORDES; ] fi"
#: builtins.c:194
msgid "while COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "while ORDES; do ORDES; done"
#: builtins.c:196
msgid "until COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "until ORDES; do ORDES; done"
#: builtins.c:198
msgid "coproc [NAME] command [redirections]"
-msgstr ""
+msgstr "coproc [NOME] orden [redireccións]"
#: builtins.c:200
msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
+msgstr "function nome { ORDES ; } ou nome () { ORDES ; }"
#: builtins.c:202
msgid "{ COMMANDS ; }"
-msgstr ""
+msgstr "{ ORDES ; }"
#: builtins.c:204
msgid "job_spec [&]"
-msgstr ""
+msgstr "job_spec [&]"
#: builtins.c:206
msgid "(( expression ))"
-msgstr ""
+msgstr "(( expresión ))"
#: builtins.c:208
msgid "[[ expression ]]"
-msgstr ""
+msgstr "[[ expresión ]]"
#: builtins.c:210
msgid "variables - Names and meanings of some shell variables"
-msgstr ""
+msgstr "variables - Nomes e significados de algunhas variábeis de shell"
#: builtins.c:213
msgid "pushd [-n] [+N | -N | dir]"
-msgstr ""
+msgstr "pushd [-n] [+N | -N | dir]"
#: builtins.c:217
msgid "popd [-n] [+N | -N]"
-msgstr ""
+msgstr "popd [-n] [+N | -N]"
#: builtins.c:221
msgid "dirs [-clpv] [+N] [-N]"
@@ -2170,31 +2242,31 @@ msgstr "dirs [-clpv] [+N] [-N]"
#: builtins.c:224
msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr ""
+msgstr "shopt [-pqsu] [-o] [nome_opción ...]"
#: builtins.c:226
msgid "printf [-v var] format [arguments]"
-msgstr ""
+msgstr "printf [-v var] formato [argumentos]"
#: builtins.c:229
msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
-msgstr ""
+msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o opción] [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S sufixo] [nome ...]"
#: builtins.c:233
msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
+msgstr "compgen [-abcdefgjksuv] [-o opción] [-A acción] [-G patglob] [-W listapalabras] [-F función] [-C orde] [-X patfiltro] [-P prefixo] [-S sufixo] [palabra]"
#: builtins.c:237
msgid "compopt [-o|+o option] [-DE] [name ...]"
-msgstr ""
+msgstr "compopt [-o|+o opción] [-DE] [nome ...]"
#: builtins.c:240
msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr ""
+msgstr "mapfile [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c quantum] [matriz]"
#: builtins.c:242
msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
-msgstr ""
+msgstr "readarray [-n conta] [-O orixe] [-s conta] [-t] [-u df] [-C chamada] [-c quantum] [matriz]"
#: builtins.c:254
msgid ""
@@ -2214,6 +2286,22 @@ msgid ""
" alias returns true unless a NAME is supplied for which no alias has been\n"
" defined."
msgstr ""
+"Define ou mostra aliases.\n"
+" \n"
+" `alias' sen argumentos mostra a lista de aliases na forma\n"
+" reutilizábel `alias NOMBRE=VALOR' na saída estándar.\n"
+" \n"
+" De outra maneira, defínese un alias por cada NOME cuxo VALOR se\n"
+" forneza. Un espazo final en VALOR causa que se revise\n"
+" a seguinte palabra para substitución de alias cando se expande\n"
+" o alias.\n"
+" \n"
+" Opciones:\n"
+" -p\tMuestra todos los aliases definidos en un formato reusable\n"
+" \n"
+" Estado de salida:\n"
+" alias devuelve verdadero a menos que se de un NOMBRE para el cual\n"
+" no se haya definido ningún alias."
#: builtins.c:276
msgid ""
@@ -2224,6 +2312,11 @@ msgid ""
" \n"
" Return success unless a NAME is not an existing alias."
msgstr ""
+"Borra cada NOME da lista de alias definidos.\n"
+" \n"
+" Opcións:\n"
+" -a\telimina todas as definicións de alias.\n"
+" Devovle verdadero a menos que un NOME non sexa un alias existente."
#: builtins.c:289
msgid ""
@@ -2259,6 +2352,44 @@ msgid ""
" Exit Status:\n"
" bind returns 0 unless an unrecognized option is given or an error occurs."
msgstr ""
+"Estabelece secuencias de teclas Readline e variábeis.\n"
+"\n"
+" Asigna unha secuencia de teclas a unha función Readline ou a unha macro, ou\n"
+" estabelece unha variábel Readline. A sintaxe dos argumentos que\n"
+" non son opcións é equivalente á que se encontra en ~/.inputrc,\n"
+" pero débese pasar como un só argumento:\n"
+" p.e., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+" \n"
+" opcións:\n"
+" \n"
+" -m comb_teclas Usa COMB_TECLAS como a combinación de teclas pola\n"
+" duración desta orde. Os nomes de combinacións\n"
+" de teclas aceptábeis son emacs, emacs-standard,\n"
+" emacs-meta, emacs-ctlx, vi, vi-move, vi-command e\n"
+" vi-insert.\n"
+" -l Enlista os nomes das funcións.\n"
+" -P Enlista os nomes das funcións e asignacións.\n"
+" -p Enlista as funcións e asignacións nunha forma que\n"
+" se pode reusar como entrada.\n"
+" -S Enlista as secuencias de teclas que invocan macros\n"
+" e os seus valores.\n"
+" -s Enlista as secuencias de teclas que invocan macros\n"
+" e os seus valores nunha forma que se poden reusar como\n"
+" entrada.\n"
+" -V Enlista os nomes de variábeis e valores.\n"
+" -v Enlista os nomes de variábeis e valores nunha\n"
+" forma que se pode reusar como entrada.\n"
+" -q nome-funcion Pregunta qué teclas invocan a función nomeada.\n"
+" -u nome-función Borra todas as teclas que están ligadas\n"
+" á función nomeada.\n"
+" -r secteclas Borra a asignación para a SECTECLAS.\n"
+" -f fichero Lee as asignacións de teclas do FICHERO.\n"
+" -x secteclas:orde-shell\tCausa que se execute a ORDE-SHELL cando\n"
+" \t\t\t\tse introduce a SECTECLAS.\n"
+" \n"
+" Estado de saída:\n"
+" bind devolve 0 a menos que se presente unha opción descoñecida ou se\n"
+" se produza un erro."
#: builtins.c:326
msgid ""
@@ -2270,6 +2401,13 @@ msgid ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
+"Termina ciclos for, while o until.\n"
+" \n"
+" Termina un ciclo FOR, WHILE o UNTIL. Se se especifica N, remata\n"
+" N ciclos anidados.\n"
+" \n"
+" Estado de saída:\n"
+" O estado de saída é 0 a menos que N non sexa maior ou igual a 1."
#: builtins.c:338
msgid ""
@@ -2281,6 +2419,13 @@ msgid ""
" Exit Status:\n"
" The exit status is 0 unless N is not greater than or equal to 1."
msgstr ""
+"Continúa iteracións for, while o until\n"
+" \n"
+" Continúa a seguinte iteración do ciclo FOR, WHILE ou UNTIL\n"
+" circundante. Se se especifica N, retoma no N-ésimo ciclo circundante.\n"
+" \n"
+" Estado de Saída:\n"
+" O estado de salida é 0 a menos que N non sexa maior ou igual a 1."
#: builtins.c:350
msgid ""
@@ -2294,6 +2439,16 @@ msgid ""
" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
" not a shell builtin.."
msgstr ""
+"Executa ordes internas do shell\n"
+" \n"
+" Executa a ORDEN-INTERNA-SHELL cos argumentos ARGs sen realizar\n"
+" a busca interna de ordes. Isto é útil cando desexa reimplementar\n"
+" unha orde interna do shell como unha función de shell, pero necesita\n"
+" executar a orde interna dentro da función.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de saída da ORDE-INTERNA-SHELL, ou falso se a\n"
+" ORDE-INTERNA-SHELL non é unha orde interna de shell."
#: builtins.c:365
msgid ""
@@ -2310,6 +2465,18 @@ msgid ""
" Returns 0 unless the shell is not executing a shell function or EXPR\n"
" is invalid."
msgstr ""
+"Devolve o contexto da chamada a subrutina actual.\n"
+" \n"
+" Sen EXPR, devolve \"$liña $nomeficheiro\". Con EXPR, devolve\n"
+" \"$liña $subrutina $nomeficheiro\"; esta información adicional\n"
+" pódese usar para fornecer un volcado de pila.\n"
+" \n"
+" O valor de EXPR indica cantos marcos de chamada se debe retroceder\n"
+" antes do actual; o marco inicial é o marco 0.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve 0 a menos que o shell non estea executando unha función de shell\n"
+" ou EXPR sexa non válida."
#: builtins.c:383
msgid ""
@@ -2356,6 +2523,18 @@ msgid ""
" Returns 0 unless an invalid option is given or the current directory\n"
" cannot be read."
msgstr ""
+"Mostra o nome do directorio de traballo actual.\n"
+" \n"
+" Opcións:\n"
+" -L\tmostra o valor de $PWD se nomea ao directorio de\n"
+" \ttraballo actual\n"
+" -P\tmostra o directorio físico, sen ligazóns simbólicas\n"
+" \n"
+" Por defecto, `pwd' comportase como se se especificara `-L'.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve 0 a menos que se dea unha opción non válida ou non se poida leer\n"
+" o directorio actual."
#: builtins.c:431
msgid ""
@@ -2366,6 +2545,12 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Orde nula.\n"
+" \n"
+" Sen efecto; a orde non fai nada.\n"
+" \n"
+" Estado de Saída:\n"
+" Sempre con éxito."
#: builtins.c:442
msgid ""
@@ -2374,6 +2559,10 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Devolve un resultado con éxito.\n"
+" \n"
+" Estado de salida:\n"
+" Sempre con éxito."
#: builtins.c:451
msgid ""
@@ -2382,6 +2571,10 @@ msgid ""
" Exit Status:\n"
" Always fails."
msgstr ""
+"Devolve un resultado sen éxito.\n"
+" \n"
+" Estado de saída:\n"
+" Sempre falla."
#: builtins.c:460
msgid ""
@@ -2444,6 +2637,9 @@ msgid ""
" \n"
" Obsolete. See `help declare'."
msgstr ""
+"Estabelece valores de variábeis e atributos.\n"
+" \n"
+" Obsoleto. Consulte `help declare'."
#: builtins.c:525
msgid ""
@@ -2459,6 +2655,17 @@ msgid ""
" Returns success unless an invalid option is supplied, an error occurs,\n"
" or the shell is not executing a function."
msgstr ""
+"Define variábeis locais.\n"
+" \n"
+" Crea unha variábel local chamada NOME, e dalle un VALOR. OPCIÓN pode\n"
+" ser calquera opción aceptada por `declare'.\n"
+" \n"
+" As variábeis locais só se pueden usar nunha función; son visibles\n"
+" só na función onde se definen e os seus fillos.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito a menos que se dea unha opción non válida, se produza\n"
+" un erro, ou o shell non estea executando unha función."
#: builtins.c:542
msgid ""
@@ -2541,6 +2748,13 @@ msgid ""
" Exit Status:\n"
" Returns exit status of command or success if command is null."
msgstr ""
+"Executa argumentos como unha orde de shell.\n"
+" \n"
+" Combina os ARGumentos nunha soa cadena, usa o resultado como entrada\n"
+" para o shell, e executa as órdenes resultantes.\n"
+" \n"
+" Estado de saída:\n"
+" Devolve o estado de saida da orde ou éxito se a orde é nula."
#: builtins.c:631
msgid ""
@@ -2610,6 +2824,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 ""
+"Remata a shell.\n"
+" \n"
+" Termina o shell cun estado de N. Se se omite N, o estado de saída\n"
+" é o mismo da última orde executada."
#: builtins.c:703
msgid ""
@@ -2618,6 +2836,10 @@ msgid ""
" Exits a login shell with exit status N. Returns an error if not executed\n"
" in a login shell."
msgstr ""
+"Termina un shell de entrada.\n"
+" \n"
+" Termina un shell de entrada cun estado de saída de N. Devolve un\n"
+" erro se non se executa nunha shell de entrada."
#: builtins.c:713
msgid ""
@@ -2657,6 +2879,14 @@ msgid ""
" Exit Status:\n"
" Status of command placed in foreground, or failure if an error occurs."
msgstr ""
+"Move o trabañño ao primeiro plano.\n"
+" \n"
+" Localiza o traballo identificado con IDTRABALLO no primeiro plano, e\n"
+" faino o traballo actual. Se IDTRABALLO non está presente, úsase\n"
+" a noción do shell do traballo actual.\n"
+" \n"
+" Estado de Saída:\n"
+" O estado da orde localizada en primeiro plano, ou falla se sucede un erro."
#: builtins.c:758
msgid ""
@@ -3087,6 +3317,17 @@ msgid ""
" Exit Status:\n"
" Returns success unless job control is not enabled or an error occurs."
msgstr ""
+"Suspende a execución do shell.\n"
+" \n"
+" Suspende a execución deste shell até que recibe un sinal SIGCONT.\n"
+" Os shells de entrada non se poden suspender, a menos que sexan forzados.\n"
+" \n"
+" Opcións:\n"
+" -f\tforza a suspensión, aínda se o shell é un shell de entrada\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito a menos que non estea activo o control de traballos o\n"
+" se produza un erro."
#: builtins.c:1231
msgid ""
@@ -3174,6 +3415,10 @@ msgid ""
" This is a synonym for the \"test\" builtin, but the last argument must\n"
" be a literal `]', to match the opening `['."
msgstr ""
+"Evalúa unha expresión condicional.\n"
+" \n"
+" Este é un sinónimo para a orde interna \"test\", pero o último\n"
+" argumento debe ser un `]' literal, que coincida co `[' inicial."
#: builtins.c:1320
msgid ""
@@ -3185,6 +3430,13 @@ msgid ""
" Exit Status:\n"
" Always succeeds."
msgstr ""
+"Mostra os tempos de proceso.\n"
+" \n"
+" Mostra os tempos de usuario e sistema acumulados polo shell e todos\n"
+" os seus procesos fillos.\n"
+" \n"
+" Estado de saída:\n"
+" Sempre con éxito."
#: builtins.c:1332
msgid ""
@@ -3338,6 +3590,15 @@ msgid ""
" Returns the status of ID; fails if ID is invalid or an invalid option is\n"
" given."
msgstr ""
+"Agarda a terminación do traballo e devolve o estado de saída.\n"
+" \n"
+" Espera ao proceso especificado e reporta o seu estado de saída. Se\n"
+" non se fornece un PID, agarda a todos os procesos fillo activos,\n"
+" e o código de devolución é cero. PID debe ser un ID de proceso.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de ID; falla se ID non é válido ou se se fornece unha\n"
+" opción non válida."
#: builtins.c:1497
msgid ""
@@ -3351,6 +3612,15 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
+"Executa ordes por cada membro nunha lista.\n"
+" \n"
+" O ciclo `for' executa unha secuencia de ordes para cada membro nunha\n"
+" lista de elementos. Se `in PALABRAS ...;' non está presente,\n"
+" entón asúmese `in \"$@\"'. Para cada elemento en PALABRAS,\n"
+" defínese NOME como ese elemento, e execútanse as ÓRDENES.\n"
+" \n"
+" Estado de Saída:\n"
+" Devuelve o estado da última orden executada."
#: builtins.c:1511
msgid ""
@@ -3368,6 +3638,19 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
+"Aritmética para un ciclo.\n"
+" \n"
+" Equivalente a\n"
+" \t(( EXP1 ))\n"
+" \twhile (( EXP2 )); do\n"
+" \t\tORDES\n"
+" \t\t(( EXP3 ))\n"
+" \tdone\n"
+" EXP1, EXP2, e EXP3 son expresións aritméticas. Se se omite\n"
+" calquera expresión, compórtase como se se evaluara a 1.\n"
+" \n"
+" Estado de saída:\n"
+" Devolve o estado da última orde executada."
#: builtins.c:1529
msgid ""
@@ -3415,6 +3698,13 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
+"Executa ordes en base á coincidencia de patróns.\n"
+" \n"
+" Executa ÓRDENES selectivamente baseado en coincidencias da PALABRA\n"
+" co PATRÓN. Emprégase `|' para separar patróns múltiples.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
#: builtins.c:1579
msgid ""
@@ -3442,6 +3732,13 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
+"Ejecuta ordes mentres unha proba teña éxito.\n"
+" \n"
+" Expande e executa ORDES mentres a orde final nas ÓRDENES\n"
+" `while' teña un estado de saída de cero.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
#: builtins.c:1608
msgid ""
@@ -3453,6 +3750,13 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
+"Executa ordes mentres unha proba non teña éxito.\n"
+" \n"
+" Expande e executa ORDES mentres a orde final nas ORDES\n"
+" `until' teña un estado de saída que non sexa cero.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
#: builtins.c:1620
msgid ""
@@ -3466,6 +3770,15 @@ msgid ""
" Exit Status:\n"
" Returns the exit status of COMMAND."
msgstr ""
+"Crea un coproceso chamado NOME.\n"
+" \n"
+" Executa a ORDE asíncronamente, coa saída estándar e a entrada\n"
+" estándar da orde contectada a través dunha tubería aos descritores\n"
+" de ficheiro asignados aos índices 0 e 1 dunha variábel de matriz NOME\n"
+" no shell en execución. O nome por omisión é \"COPROC\".\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado de saída da ORDE."
#: builtins.c:1634
msgid ""
@@ -3490,6 +3803,13 @@ msgid ""
" Exit Status:\n"
" Returns the status of the last command executed."
msgstr ""
+"Agrupa ordes como unha unidade.\n"
+" \n"
+" Executa un conxunto de ordes nun grupo. Esta é unha forma de\n"
+" redirixir un conxunto completo de ordes.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve o estado da última orde executada."
#: builtins.c:1660
msgid ""
@@ -3515,6 +3835,13 @@ msgid ""
" Exit Status:\n"
" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
msgstr ""
+"Avalí unha expresión aritmética.\n"
+" \n"
+" Avalíase a EXPRESIÓN de acordo ás regras de evaluación\n"
+" aritmética. Equivalente a \"let EXPRESIÓN\".\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve 1 se a EXPRESIÓN avalía a 0; devovle 0 de outra maneira."
#: builtins.c:1687
msgid ""
@@ -3699,6 +4026,22 @@ msgid ""
" Returns success if OPTNAME is enabled; fails if an invalid option is\n"
" given or OPTNAME is disabled."
msgstr ""
+"Activa e desactiva opcións de shell.\n"
+" \n"
+" Cambia a configuración de cada opción de shell NOME_OPCIÓN. Sen\n"
+" algunha opción como argumento, mostra todas as opcións de shell cunha\n"
+" indicación se está activa ou non.\n"
+" \n"
+" Opcións:\n"
+" -o\trestrinxe NOME_OPCIÓN a aqueles definidos con `set -o'\n"
+" -p\tmostra cada opción de shell cun indicador do seu estado\n"
+" -q\tsuprime a saída\n"
+" -s\tactiva (estabelece) cada NOME_OPCIÓN\n"
+" -u\tdesactiva (borra) cada NOME_OPCIÓN\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito se se activa NOME_OPCIÓN; falla se se fornece\n"
+" unha opción non válida ou NOME_OPCIÓN está desactivado."
#: builtins.c:1884
msgid ""
@@ -3763,6 +4106,15 @@ msgid ""
" Exit Status:\n"
" Returns success unless an invalid option is supplied or an error occurs."
msgstr ""
+"Mostra os posíbeis completados dependendo das opcións.\n"
+" \n"
+" Serve para usarse desde unha función de shell que xere completados\n"
+" posíbeis. Se se fornece o argumento opcional PALABRA, xéranse\n"
+" as coincidencias contra PALABRA.\n"
+" \n"
+" Estado de Saída:\n"
+" Devolve con éxito a menos que se forneza unha opción non válida o\n"
+" se produza un erro."
#: builtins.c:1956
msgid ""
@@ -3831,3 +4183,6 @@ msgid ""
" \n"
" A synonym for `mapfile'."
msgstr ""
+"Lee liñas dun fichero nunha variábel de matriz.\n"
+" \n"
+" Un sinónimo de `mapfile'."
diff --git a/variables.c b/variables.c
index ef09a80..13fccbd 100644
--- a/variables.c
+++ b/variables.c
@@ -4666,12 +4666,18 @@ sv_locale (name)
char *name;
{
char *v;
+ int r;
v = get_string_value (name);
if (name[0] == 'L' && name[1] == 'A') /* LANG */
- set_lang (name, v);
+ r = set_lang (name, v);
else
- set_locale_var (name, v); /* LC_*, TEXTDOMAIN* */
+ r = set_locale_var (name, v); /* LC_*, TEXTDOMAIN* */
+
+#if 1
+ if (r == 0 && posixly_correct)
+ last_command_exit_value = 1;
+#endif
}
#if defined (ARRAY_VARS)