From 863d31ae775d56b785dc5b0105b6d251515d81d5 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Mon, 5 Mar 2012 21:17:40 -0500 Subject: [PATCH] commit bash-20120224 snapshot --- CWRU/CWRU.chlog | 66 ++- CWRU/CWRU.chlog~ | 67 ++- CWRU/misc/endian.c | 21 + CWRU/misc/endian2.c | 13 + CWRU/misc/endian3.c | 21 + MANIFEST | 4 + doc/bash.1 | 2 +- doc/builtins.1 | 9 +- error.c | 6 +- error.c~ | 455 +++++++++++++++++ execute_cmd.c | 2 + lib/sh/shquote.c | 4 + lib/sh/strtrans.c | 5 +- lib/sh/unicode.c | 95 ++-- lib/sh/unicode.c~ | 319 ++++++++++++ locale.c | 2 +- po/gl.po | 1175 ++++++++++++++++++++++++++++--------------- variables.c | 10 +- 18 files changed, 1811 insertions(+), 465 deletions(-) create mode 100644 CWRU/misc/endian.c create mode 100644 CWRU/misc/endian2.c create mode 100644 CWRU/misc/endian3.c create mode 100644 error.c~ create mode 100644 lib/sh/unicode.c~ diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 8ae4f8e9c..ff5b2f9f2 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 + + 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 + + 2/21 + ---- +doc/{bash,builtins}.1 + - minor changes from Bjarni Ingi Gislason + +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 + + 2/22 + ---- +lib/sh/shquote.c + - sh_backslash_quote: quote tilde in places where it would be + expanded. From a report from John Kearney + + 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 + + 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 + - u32toutf16: function to convert unsigned 32-bit value (unicode) to + UTF-16. From John Kearney + - 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 + - u32cconv: return UTF-8 conversion if iconv conversion to local + charset is unsupported + + diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~ index 76b126833..8e6bd1542 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 + + 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 + + 2/21 + ---- +doc/{bash,builtins}.1 + - minor changes from Bjarni Ingi Gislason + +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 + + 2/22 + ---- +lib/sh/shquote.c + - sh_backslash_quote: quote tilde in places where it would be + expanded. From a report from John Kearney + + 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 + + 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 + - u32toutf16: function to convert unsigned 32-bit value (unicode) to + UTF-16. From John Kearney + - 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 + + diff --git a/CWRU/misc/endian.c b/CWRU/misc/endian.c new file mode 100644 index 000000000..3dd30b37d --- /dev/null +++ b/CWRU/misc/endian.c @@ -0,0 +1,21 @@ +#include + +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 000000000..b84754bbd --- /dev/null +++ b/CWRU/misc/endian2.c @@ -0,0 +1,13 @@ +#include + +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 000000000..86b478bd9 --- /dev/null +++ b/CWRU/misc/endian3.c @@ -0,0 +1,21 @@ +#include + +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 376966d62..c42269433 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 7df378b40..77adfaf87 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 bf8bfec25..829a49c27 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 72da9f540..1eac01c4a 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 000000000..72da9f540 --- /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 . +*/ + +#include "config.h" + +#include "bashtypes.h" +#include + +#if defined (HAVE_UNISTD_H) +# include +#endif + +#if defined (PREFER_STDARG) +# include +#else +# include +#endif + +#include + +#include +#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 19a685da0..5def9b0f4 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 602ce9b98..9f485115e 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 8691c054f..6b1f13e2a 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 5bb4702c9..df2da0150 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 000000000..ba24dd41d --- /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 . +*/ + +#include + +#if defined (HANDLE_MULTIBYTE) + +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif +#include + +#if HAVE_ICONV +# include +#endif + +#include + +#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 a452ac527..d56f17914 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 9321c6747..46ade7c66 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 , 2011. +# Francisco Diéguez , 2012. +# Fran Dieguez , 2012. # # Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas # colaborar connosco, podes atopar máis información en @@ -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 \n" "Language-Team: Galician \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 "" -msgstr "" +msgstr "" #: 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 obxectos 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 \n" -msgstr "" +msgstr "Licenza GPLv3+: GPL de GNU versión 3 ou posterior \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 \n" -msgstr "" +msgstr "Licenza GPLv2+: GPL de GNU versión 2 ou posterior \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 ef09a80de..13fccbd2d 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) -- 2.47.2