From: Chet Ramey Date: Wed, 7 Dec 2011 14:00:00 +0000 (-0500) Subject: commit bash-20061026 snapshot X-Git-Tag: bash-4.0-alpha~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d1a75129f78c77b6aba1ba92384bc10a1ec5315c;p=thirdparty%2Fbash.git commit bash-20061026 snapshot --- diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 2ff1a1689..24432b1f2 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -13764,3 +13764,57 @@ builtins/ulimit.def po/ru.po - fix encoding; Russian text in the file is actually encoded in KOI8-R + + 10/23 + ----- +shell.c + - make sure that the call to move_to_high_fd in open_shell_script + passes 1 for the `check_new' parameter so open high file descriptors + don't get closed and reused. Bug reported by Mike Stroyan + + +doc/bashref.texi + - fix typos and misspellings sent in by Brian Gough + + 10/24 + ----- +support/shobj-conf + - make netbsd shared library creation like openbsd's until I hear + differently (called using `gcc -shared') + + 10/26 + ----- +subst.c + - fix bug in parameter_brace_patsub so if the first character of the + expanded pattern is a `/', it is not taken as a global replacement + specifier. Bug reported on forums.nekochan.net + + 10/27 + ----- +builtins/printf.def + - if we need an extern declaration for asprintf, make sure we include + stdarg.h or varargs.h, whichever is appropriate + - if we do not have asprintf, add an extern declaration using + stdarg format. This fixes the bugs with %G on IRIX reported by + Matthew Woehlke and Stuart Shelton + + + +lib/sh/snprintf.c + - add note to not call log_10 with 0 argument -- we don't want to do + what real log10 does (-infinity/raise divide-by-zero exception) + - make sure numtoa (used by dtoa) takes the precision into account + when computing the fractional part with an argument of `0.0' + - make sure `g' and `G' formats don't print radix char if there are + no characters to be printed after it (change to floating()) + - change callers of log_10 (exponent, 'g' and 'G' cases in + vsnprintf_internal) to not call it with 0 for argument. This fixes + the hang reported on IRIX by Matthew Woehlke + and Stuart Shelton + + 10/28 + ----- +builtins/{caller,pushd}.def + - changed longdoc strings in loadable builtin section to be single + strings, as put in the build directory builtins.c file, to aid + translators diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~ index a47492ddb..e09e64239 100644 --- a/CWRU/CWRU.chlog~ +++ b/CWRU/CWRU.chlog~ @@ -8889,8 +8889,8 @@ Makefile.in - descend into `po' and run make recursively for the various clean targets - 1/4 - --- + 1/4/2004 + -------- include/shmbutil.h - two new macros: BACKUP_CHAR(str, strsize, i), which backs up one multibyte character in STR starting at index I, and @@ -12718,8 +12718,8 @@ jobs.c - in delete_job, if find_last_proc returns NULL, don't try to call bgp_delete - 1/7 - --- + 1/7/2006 + -------- doc/bash.1 - patch from Tim Waugh to replace some literal single quotes with \(aq, the groff special character for it @@ -13744,3 +13744,72 @@ parse.y - change parse_matched_pair to make sure `` command substitution does not check for shell comments while parsing. Bug reported against bash-3.2 by Greg Schaefer + + 10/14 + ----- +parse.y + - add new parser_state flag: PST_REGEXP; means we are parsing a + regular expression following the =~ conditional operator + - cond_node sets PST_REGEXP after reading the `=~' operator + - change read_token to call read_token_word immediately if the + PST_REGEXP bit is set in parser_state + - change read_token_word to skip over `(' and `|' if PST_REGEXP is + set, since those characters are legitimate regexp chars (but still + parse matched pairs of parens) + + 10/16 + ----- +builtins/ulimit.def + - add -e and -r to $SHORT_DOC usage string + +po/ru.po + - fix encoding; Russian text in the file is actually encoded in KOI8-R + + 10/23 + ----- +shell.c + - make sure that the call to move_to_high_fd in open_shell_script + passes 1 for the `check_new' parameter so open high file descriptors + don't get closed and reused. Bug reported by Mike Stroyan + + +doc/bashref.texi + - fix typos and misspellings sent in by Brian Gough + + 10/24 + ----- +support/shobj-conf + - make netbsd shared library creation like openbsd's until I hear + differently (called using `gcc -shared') + + 10/26 + ----- +subst.c + - fix bug in parameter_brace_patsub so if the first character of the + expanded pattern is a `/', it is not taken as a global replacement + specifier. Bug reported on forums.nekochan.net + + 10/27 + ----- +builtins/printf.def + - if we need an extern declaration for asprintf, make sure we include + stdarg.h or varargs.h, whichever is appropriate + - if we do not have asprintf, add an extern declaration using + stdarg format. This fixes the bugs with %G on IRIX reported by + Matthew Woehlke and Stuart Shelton + + + +lib/sh/snprintf.c + - add note to not call log_10 with 0 argument -- we don't want to do + what real log10 does (-infinity/raise divide-by-zero exception) + - make sure numtoa (used by dtoa) takes the precision into account + when computing the fractional part with an argument of `0.0' + - make sure `g' and `G' formats don't print radix char if there are + no characters to be printed after it (change to floating()) + - change callers of log_10 (exponent, 'g' and 'G' cases in + vsnprintf_internal) to not call it with 0 for argument. This fixes + the hang reported on IRIX by Matthew Woehlke + and Stuart Shelton + + diff --git a/MANIFEST b/MANIFEST index f9d96cc3f..195c3f380 100644 --- a/MANIFEST +++ b/MANIFEST @@ -470,6 +470,8 @@ po/en@quot.gmo f po/en@boldquot.gmo f po/ru.po f po/ru.gmo f +po/sv.po f +po/sv.gmo f po/insert-header.sin f po/quot.sed f po/remove-potcdate.sin f diff --git a/NOTES b/NOTES index 2e5c6b98d..31a7eebca 100644 --- a/NOTES +++ b/NOTES @@ -335,3 +335,6 @@ Platform-Specific Configuration and Operation Notes 17. Do NOT use bison-1.75. It builds a non-working parser. The most obvious effect is that constructs like "for i; do echo $i; done" don't loop over the positional parameters. + +18. I have received reports that using -O2 with the MIPSpro results in a + binary that fails in strange ways. Using -O1 seems to work. diff --git a/builtins/caller.def b/builtins/caller.def index f5f2c0836..1209f9ed5 100644 --- a/builtins/caller.def +++ b/builtins/caller.def @@ -128,14 +128,14 @@ caller_builtin (list) #ifdef LOADABLE_BUILTIN static char *caller_doc[] = { - N_("Returns the context of the current subroutine call."), - N_(" "), - N_("Without EXPR, returns returns \"$line $filename\". With EXPR,"), - N_("returns \"$line $subroutine $filename\"; this extra information"), - N_("can be used used to provide a stack trace."), - N_(" "), - N_("The value of EXPR indicates how many call frames to go back before the"), - N_("current one; the top frame is frame 0."), +N_("Returns the context of the current subroutine call.\n\ + \n\ + Without EXPR, returns \"$line $filename\". With EXPR,\n\ + returns \"$line $subroutine $filename\"; this extra information\n\ + can be used used to provide a stack trace.\n\ + \n\ + The value of EXPR indicates how many call frames to go back before the\n\ + current one; the top frame is frame 0."), (char *)NULL }; diff --git a/builtins/caller.def~ b/builtins/caller.def~ new file mode 100644 index 000000000..9f2eea07e --- /dev/null +++ b/builtins/caller.def~ @@ -0,0 +1,151 @@ +This file is caller.def, from which is created caller.c. It implements the +builtin "caller" in Bash. + +Copyright (C) 2002-2003 Rocky Bernstein for Free Software Foundation, Inc. + +This file is part of GNU Bash, the Bourne Again SHell. + +Bash is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Bash is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License along +with Bash; see the file COPYING. If not, write to the Free Software +Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. + +$PRODUCES caller.c + +$BUILTIN caller +$FUNCTION caller_builtin +$DEPENDS_ON DEBUGGER +$SHORT_DOC caller [EXPR] + +Returns the context of the current subroutine call. + +Without EXPR, returns "$line $filename". With EXPR, +returns "$line $subroutine $filename"; this extra information +can be used to provide a stack trace. + +The value of EXPR indicates how many call frames to go back before the +current one; the top frame is frame 0. +$END + +#include +#include +#include "chartypes.h" +#include "bashtypes.h" + +#if defined (HAVE_UNISTD_H) +# ifdef _MINIX +# include +# endif +# include +#endif + +#include + +#include "../bashintl.h" + +#include "../shell.h" +#include "common.h" +#include "builtext.h" +#include "bashgetopt.h" + +#ifdef LOADABLE_BUILTIN +# include "builtins.h" +#endif + +#if !defined (errno) +extern int errno; +#endif /* !errno */ + +int +caller_builtin (list) + WORD_LIST *list; +{ +#if !defined (ARRAY_VARS) + printf ("1 NULL\n"); + return (EXECUTION_FAILURE); +#else + SHELL_VAR *funcname_v, *bash_source_v, *bash_lineno_v; + ARRAY *funcname_a, *bash_source_a, *bash_lineno_a; + char *funcname_s, *source_s, *lineno_s; + intmax_t num; + + GET_ARRAY_FROM_VAR ("FUNCNAME", funcname_v, funcname_a); + GET_ARRAY_FROM_VAR ("BASH_SOURCE", bash_source_v, bash_source_a); + GET_ARRAY_FROM_VAR ("BASH_LINENO", bash_lineno_v, bash_lineno_a); + + if (bash_lineno_a == 0 || array_empty (bash_lineno_a)) + return (EXECUTION_FAILURE); + + if (bash_source_a == 0 || array_empty (bash_source_a)) + return (EXECUTION_FAILURE); + + if (no_options (list)) + return (EX_USAGE); + list = loptend; /* skip over possible `--' */ + + /* If there is no argument list, then give short form: line filename. */ + if (list == 0) + { + lineno_s = array_reference (bash_lineno_a, 0); + source_s = array_reference (bash_source_a, 1); + printf("%s %s\n", lineno_s ? lineno_s : "NULL", source_s ? source_s : "NULL"); + return (EXECUTION_SUCCESS); + } + + if (funcname_a == 0 || array_empty (funcname_a)) + return (EXECUTION_FAILURE); + + if (legal_number (list->word->word, &num)) + { + lineno_s = array_reference (bash_lineno_a, num); + source_s = array_reference (bash_source_a, num+1); + funcname_s = array_reference (funcname_a, num+1); + + if (lineno_s == NULL|| source_s == NULL || funcname_s == NULL) + return (EXECUTION_FAILURE); + + printf("%s %s %s\n", lineno_s, funcname_s, source_s); + } + else + { + sh_invalidnum (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + + return (EXECUTION_SUCCESS); +#endif +} + +#ifdef LOADABLE_BUILTIN +static char *caller_doc[] = { + N_("Returns the context of the current subroutine call."), + N_(" "), + N_("Without EXPR, returns \"$line $filename\". With EXPR,"), + N_("returns \"$line $subroutine $filename\"; this extra information"), + N_("can be used used to provide a stack trace."), + N_(" "), + N_("The value of EXPR indicates how many call frames to go back before the"), + N_("current one; the top frame is frame 0."), + (char *)NULL +}; + +struct builtin caller_struct = { + "caller", + caller_builtin, + BUILTIN_ENABLED, + caller_doc, + "caller [EXPR]", + 0 +}; + +#endif /* LOADABLE_BUILTIN */ diff --git a/builtins/printf.def b/builtins/printf.def index 0e1d4aa92..1a830e470 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -49,6 +49,12 @@ $END # define INT_MIN (-2147483647-1) #endif +#if defined (PREFER_STDARG) +# include +#else +# include +#endif + #include #include @@ -151,6 +157,14 @@ extern int errno; #define SKIP1 "#'-+ 0" #define LENMODS "hjlLtz" +#ifndef HAVE_ASPRINTF +# if defined (PREFER_STDARG) +extern int asprintf __P((char **, const char *, ...)); +# else +extern int asprintf __P((char **, const char *, va_alist)); +# endif +#endif + static void printf_erange __P((char *)); static int printstr __P((char *, char *, int, int, int)); static int tescape __P((char *, char *, int *)); diff --git a/builtins/printf.def~ b/builtins/printf.def~ new file mode 100644 index 000000000..967f8e677 --- /dev/null +++ b/builtins/printf.def~ @@ -0,0 +1,1023 @@ +This file is printf.def, from which is created printf.c. +It implements the builtin "printf" in Bash. + +Copyright (C) 1997-2005 Free Software Foundation, Inc. + +This file is part of GNU Bash, the Bourne Again SHell. + +Bash is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Bash is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License along +with Bash; see the file COPYING. If not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + +$PRODUCES printf.c + +$BUILTIN printf +$FUNCTION printf_builtin +$SHORT_DOC printf [-v var] format [arguments] +printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT +is a character string which contains three types of objects: plain +characters, which are simply copied to standard output, character escape +sequences which are converted and copied to the standard output, and +format specifications, each of which causes printing of the next successive +argument. In addition to the standard printf(1) formats, %b means to +expand backslash escape sequences in the corresponding argument, and %q +means to quote the argument in a way that can be reused as shell input. +If the -v option is supplied, the output is placed into the value of the +shell variable VAR rather than being sent to the standard output. +$END + +#include + +#include "../bashtypes.h" + +#include +#if defined (HAVE_LIMITS_H) +# include +#else + /* Assume 32-bit ints. */ +# define INT_MAX 2147483647 +# define INT_MIN (-2147483647-1) +#endif + +#if defined (PREFER_STDARG) +# include +#else +# include +#endif + +#include +#include + +#ifdef HAVE_INTTYPES_H +# include +#endif + +#include "../bashansi.h" +#include "../bashintl.h" + +#include "../shell.h" +#include "stdc.h" +#include "bashgetopt.h" +#include "common.h" + +#if !defined (PRIdMAX) +# if HAVE_LONG_LONG +# define PRIdMAX "lld" +# else +# define PRIdMAX "ld" +# endif +#endif + +#if !defined (errno) +extern int errno; +#endif + +#define PC(c) \ + do { \ + char b[2]; \ + tw++; \ + b[0] = c; b[1] = '\0'; \ + if (vflag) \ + vbadd (b, 1); \ + else \ + putchar (c); \ + } while (0) + +#define PF(f, func) \ + do { \ + char *b = 0; \ + int nw; \ + clearerr (stdout); \ + if (have_fieldwidth && have_precision) \ + nw = asprintf(&b, f, fieldwidth, precision, func); \ + else if (have_fieldwidth) \ + nw = asprintf(&b, f, fieldwidth, func); \ + else if (have_precision) \ + nw = asprintf(&b, f, precision, func); \ + else \ + nw = asprintf(&b, f, func); \ + tw += nw; \ + if (b) \ + { \ + if (vflag) \ + (void)vbadd (b, nw); \ + else \ + (void)fputs (b, stdout); \ + if (ferror (stdout)) \ + { \ + sh_wrerror (); \ + clearerr (stdout); \ + return (EXECUTION_FAILURE); \ + } \ + free (b); \ + } \ + } while (0) + +/* We free the buffer used by mklong() if it's `too big'. */ +#define PRETURN(value) \ + do \ + { \ + if (vflag) \ + { \ + bind_variable (vname, vbuf, 0); \ + stupidly_hack_special_variables (vname); \ + } \ + if (conv_bufsize > 4096 ) \ + { \ + free (conv_buf); \ + conv_bufsize = 0; \ + conv_buf = 0; \ + } \ + if (vbsize > 4096) \ + { \ + free (vbuf); \ + vbsize = 0; \ + vbuf = 0; \ + } \ + fflush (stdout); \ + if (ferror (stdout)) \ + { \ + clearerr (stdout); \ + return (EXECUTION_FAILURE); \ + } \ + return (value); \ + } \ + while (0) + +#define SKIP1 "#'-+ 0" +#define LENMODS "hjlLtz" + +#ifndef HAVE_ASPRINTF +# if defined (PREFER_STDARG) +extern int asprintf __P((char **, const char *, ...)); +# endif +#endif + +static void printf_erange __P((char *)); +static int printstr __P((char *, char *, int, int, int)); +static int tescape __P((char *, char *, int *)); +static char *bexpand __P((char *, int, int *, int *)); +static char *vbadd __P((char *, int)); +static char *mklong __P((char *, char *, size_t)); +static int getchr __P((void)); +static char *getstr __P((void)); +static int getint __P((void)); +static intmax_t getintmax __P((void)); +static uintmax_t getuintmax __P((void)); + +#if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD && !defined(STRTOLD_BROKEN) +typedef long double floatmax_t; +# define FLOATMAX_CONV "L" +# define strtofltmax strtold +#else +typedef double floatmax_t; +# define FLOATMAX_CONV "" +# define strtofltmax strtod +#endif +static floatmax_t getfloatmax __P((void)); + +static int asciicode __P((void)); + +static WORD_LIST *garglist; +static int retval; +static int conversion_error; + +/* printf -v var support */ +static int vflag = 0; +static char *vbuf, *vname; +static size_t vbsize; +static int vblen; + +static intmax_t tw; + +static char *conv_buf; +static size_t conv_bufsize; + +int +printf_builtin (list) + WORD_LIST *list; +{ + int ch, fieldwidth, precision; + int have_fieldwidth, have_precision; + char convch, thisch, nextch, *format, *modstart, *fmt, *start; + + conversion_error = 0; + retval = EXECUTION_SUCCESS; + + vflag = 0; + + reset_internal_getopt (); + while ((ch = internal_getopt (list, "v:")) != -1) + { + switch (ch) + { + case 'v': + if (legal_identifier (vname = list_optarg)) + { + vflag = 1; + vblen = 0; + } + else + { + sh_invalidid (vname); + return (EX_USAGE); + } + break; + default: + builtin_usage (); + return (EX_USAGE); + } + } + list = loptend; /* skip over possible `--' */ + + if (list == 0) + { + builtin_usage (); + return (EX_USAGE); + } + + if (list->word->word == 0 || list->word->word[0] == '\0') + return (EXECUTION_SUCCESS); + + format = list->word->word; + tw = 0; + + garglist = list->next; + + /* If the format string is empty after preprocessing, return immediately. */ + if (format == 0 || *format == 0) + return (EXECUTION_SUCCESS); + + /* Basic algorithm is to scan the format string for conversion + specifications -- once one is found, find out if the field + width or precision is a '*'; if it is, gather up value. Note, + format strings are reused as necessary to use up the provided + arguments, arguments of zero/null string are provided to use + up the format string. */ + do + { + tw = 0; + /* find next format specification */ + for (fmt = format; *fmt; fmt++) + { + precision = fieldwidth = 0; + have_fieldwidth = have_precision = 0; + + if (*fmt == '\\') + { + fmt++; + /* A NULL third argument to tescape means to bypass the + special processing for arguments to %b. */ + fmt += tescape (fmt, &nextch, (int *)NULL); + PC (nextch); + fmt--; /* for loop will increment it for us again */ + continue; + } + + if (*fmt != '%') + { + PC (*fmt); + continue; + } + + /* ASSERT(*fmt == '%') */ + start = fmt++; + + if (*fmt == '%') /* %% prints a % */ + { + PC ('%'); + continue; + } + + /* found format specification, skip to field width */ + for (; *fmt && strchr(SKIP1, *fmt); ++fmt) + ; + + /* Skip optional field width. */ + if (*fmt == '*') + { + fmt++; + have_fieldwidth = 1; + fieldwidth = getint (); + } + else + while (DIGIT (*fmt)) + fmt++; + + /* Skip optional '.' and precision */ + if (*fmt == '.') + { + ++fmt; + if (*fmt == '*') + { + fmt++; + have_precision = 1; + precision = getint (); + } + else + { + /* Negative precisions are allowed but treated as if the + precision were missing; I would like to allow a leading + `+' in the precision number as an extension, but lots + of asprintf/fprintf implementations get this wrong. */ +#if 0 + if (*fmt == '-' || *fmt == '+') +#else + if (*fmt == '-') +#endif + fmt++; + while (DIGIT (*fmt)) + fmt++; + } + } + + /* skip possible format modifiers */ + modstart = fmt; + while (*fmt && strchr (LENMODS, *fmt)) + fmt++; + + if (*fmt == 0) + { + builtin_error (_("`%s': missing format character"), start); + PRETURN (EXECUTION_FAILURE); + } + + convch = *fmt; + thisch = modstart[0]; + nextch = modstart[1]; + modstart[0] = convch; + modstart[1] = '\0'; + + switch(convch) + { + case 'c': + { + char p; + + p = getchr (); + PF(start, p); + break; + } + + case 's': + { + char *p; + + p = getstr (); + PF(start, p); + break; + } + + case 'n': + { + char *var; + + var = getstr (); + if (var && *var) + { + if (legal_identifier (var)) + bind_var_to_int (var, tw); + else + { + sh_invalidid (var); + PRETURN (EXECUTION_FAILURE); + } + } + break; + } + + case 'b': /* expand escapes in argument */ + { + char *p, *xp; + int rlen, r; + + p = getstr (); + ch = rlen = r = 0; + xp = bexpand (p, strlen (p), &ch, &rlen); + + if (xp) + { + /* Have to use printstr because of possible NUL bytes + in XP -- printf does not handle that well. */ + r = printstr (start, xp, rlen, fieldwidth, precision); + if (r < 0) + { + sh_wrerror (); + clearerr (stdout); + retval = EXECUTION_FAILURE; + } + free (xp); + } + + if (ch || r < 0) + PRETURN (retval); + break; + } + + case 'q': /* print with shell quoting */ + { + char *p, *xp; + int r; + + r = 0; + p = getstr (); + if (p && *p == 0) /* XXX - getstr never returns null */ + xp = savestring ("''"); + else if (ansic_shouldquote (p)) + xp = ansic_quote (p, 0, (int *)0); + else + xp = sh_backslash_quote (p); + if (xp) + { + /* Use printstr to get fieldwidth and precision right. */ + r = printstr (start, xp, strlen (xp), fieldwidth, precision); + if (r < 0) + { + sh_wrerror (); + clearerr (stdout); + } + free (xp); + } + + if (r < 0) + PRETURN (EXECUTION_FAILURE); + break; + } + + case 'd': + case 'i': + { + char *f; + long p; + intmax_t pp; + + p = pp = getintmax (); + if (p != pp) + { + f = mklong (start, PRIdMAX, sizeof (PRIdMAX) - 2); + PF (f, pp); + } + else + { + /* Optimize the common case where the integer fits + in "long". This also works around some long + long and/or intmax_t library bugs in the common + case, e.g. glibc 2.2 x86. */ + f = mklong (start, "l", 1); + PF (f, p); + } + break; + } + + case 'o': + case 'u': + case 'x': + case 'X': + { + char *f; + unsigned long p; + uintmax_t pp; + + p = pp = getuintmax (); + if (p != pp) + { + f = mklong (start, PRIdMAX, sizeof (PRIdMAX) - 2); + PF (f, pp); + } + else + { + f = mklong (start, "l", 1); + PF (f, p); + } + break; + } + + case 'e': + case 'E': + case 'f': + case 'F': + case 'g': + case 'G': +#if defined (HAVE_PRINTF_A_FORMAT) + case 'a': + case 'A': +#endif + { + char *f; + floatmax_t p; + + p = getfloatmax (); + f = mklong (start, FLOATMAX_CONV, sizeof(FLOATMAX_CONV) - 1); + PF (f, p); + break; + } + + /* We don't output unrecognized format characters; we print an + error message and return a failure exit status. */ + default: + builtin_error (_("`%c': invalid format character"), convch); + PRETURN (EXECUTION_FAILURE); + } + + modstart[0] = thisch; + modstart[1] = nextch; + } + + if (ferror (stdout)) + { + sh_wrerror (); + clearerr (stdout); + PRETURN (EXECUTION_FAILURE); + } + } + while (garglist && garglist != list->next); + + if (conversion_error) + retval = EXECUTION_FAILURE; + + PRETURN (retval); +} + +static void +printf_erange (s) + char *s; +{ + builtin_error ("warning: %s: %s", s, strerror(ERANGE)); +} + +/* We duplicate a lot of what printf(3) does here. */ +static int +printstr (fmt, string, len, fieldwidth, precision) + char *fmt; /* format */ + char *string; /* expanded string argument */ + int len; /* length of expanded string */ + int fieldwidth; /* argument for width of `*' */ + int precision; /* argument for precision of `*' */ +{ +#if 0 + char *s; +#endif + int padlen, nc, ljust, i; + int fw, pr; /* fieldwidth and precision */ + +#if 0 + if (string == 0 || *string == '\0') +#else + if (string == 0 || len == 0) +#endif + return; + +#if 0 + s = fmt; +#endif + if (*fmt == '%') + fmt++; + + ljust = fw = 0; + pr = -1; + + /* skip flags */ + while (strchr (SKIP1, *fmt)) + { + if (*fmt == '-') + ljust = 1; + fmt++; + } + + /* get fieldwidth, if present */ + if (*fmt == '*') + { + fmt++; + fw = fieldwidth; + if (fw < 0) + { + fw = -fw; + ljust = 1; + } + } + else if (DIGIT (*fmt)) + { + fw = *fmt++ - '0'; + while (DIGIT (*fmt)) + fw = (fw * 10) + (*fmt++ - '0'); + } + + /* get precision, if present */ + if (*fmt == '.') + { + fmt++; + if (*fmt == '*') + { + fmt++; + pr = precision; + } + else if (DIGIT (*fmt)) + { + pr = *fmt++ - '0'; + while (DIGIT (*fmt)) + pr = (pr * 10) + (*fmt++ - '0'); + } + } + +#if 0 + /* If we remove this, get rid of `s'. */ + if (*fmt != 'b' && *fmt != 'q') + { + internal_error ("format parsing problem: %s", s); + fw = pr = 0; + } +#endif + + /* chars from string to print */ + nc = (pr >= 0 && pr <= len) ? pr : len; + + padlen = fw - nc; + if (padlen < 0) + padlen = 0; + if (ljust) + padlen = -padlen; + + /* leading pad characters */ + for (; padlen > 0; padlen--) + PC (' '); + + /* output NC characters from STRING */ + for (i = 0; i < nc; i++) + PC (string[i]); + + /* output any necessary trailing padding */ + for (; padlen < 0; padlen++) + PC (' '); + + return (ferror (stdout) ? -1 : 0); +} + +/* Convert STRING by expanding the escape sequences specified by the + POSIX standard for printf's `%b' format string. If SAWC is non-null, + perform the processing appropriate for %b arguments. In particular, + recognize `\c' and use that as a string terminator. If we see \c, set + *SAWC to 1 before returning. LEN is the length of STRING. */ + +/* Translate a single backslash-escape sequence starting at ESTART (the + character after the backslash) and return the number of characters + consumed by the sequence. CP is the place to return the translated + value. *SAWC is set to 1 if the escape sequence was \c, since that means + to short-circuit the rest of the processing. If SAWC is null, we don't + do the \c short-circuiting, and \c is treated as an unrecognized escape + sequence; we also bypass the other processing specific to %b arguments. */ +static int +tescape (estart, cp, sawc) + char *estart; + char *cp; + int *sawc; +{ + register char *p; + int temp, c, evalue; + + p = estart; + + switch (c = *p++) + { +#if defined (__STDC__) + case 'a': *cp = '\a'; break; +#else + case 'a': *cp = '\007'; break; +#endif + + case 'b': *cp = '\b'; break; + + case 'e': + case 'E': *cp = '\033'; break; /* ESC -- non-ANSI */ + + case 'f': *cp = '\f'; break; + + case 'n': *cp = '\n'; break; + + case 'r': *cp = '\r'; break; + + case 't': *cp = '\t'; break; + + case 'v': *cp = '\v'; break; + + /* The octal escape sequences are `\0' followed by up to three octal + digits (if SAWC), or `\' followed by up to three octal digits (if + !SAWC). As an extension, we allow the latter form even if SAWC. */ + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + evalue = OCTVALUE (c); + for (temp = 2 + (!evalue && !!sawc); ISOCTAL (*p) && temp--; p++) + evalue = (evalue * 8) + OCTVALUE (*p); + *cp = evalue & 0xFF; + break; + + /* And, as another extension, we allow \xNNN, where each N is a + hex digit. */ + case 'x': +#if 0 + for (evalue = 0; ISXDIGIT ((unsigned char)*p); p++) +#else + for (temp = 2, evalue = 0; ISXDIGIT ((unsigned char)*p) && temp--; p++) +#endif + evalue = (evalue * 16) + HEXVALUE (*p); + if (p == estart + 1) + { + builtin_error (_("missing hex digit for \\x")); + *cp = '\\'; + return 0; + } + *cp = evalue & 0xFF; + break; + + case '\\': /* \\ -> \ */ + *cp = c; + break; + + /* SAWC == 0 means that \', \", and \? are recognized as escape + sequences, though the only processing performed is backslash + removal. */ + case '\'': case '"': case '?': + if (!sawc) + *cp = c; + else + { + *cp = '\\'; + return 0; + } + break; + + case 'c': + if (sawc) + { + *sawc = 1; + break; + } + /* other backslash escapes are passed through unaltered */ + default: + *cp = '\\'; + return 0; + } + return (p - estart); +} + +static char * +bexpand (string, len, sawc, lenp) + char *string; + int len, *sawc, *lenp; +{ + int temp; + char *ret, *r, *s, c; + +#if 0 + if (string == 0 || *string == '\0') +#else + if (string == 0 || len == 0) +#endif + { + if (sawc) + *sawc = 0; + if (lenp) + *lenp = 0; + return ((char *)NULL); + } + + ret = (char *)xmalloc (len + 1); + for (r = ret, s = string; s && *s; ) + { + c = *s++; + if (c != '\\' || *s == '\0') + { + *r++ = c; + continue; + } + temp = 0; + s += tescape (s, &c, &temp); + if (temp) + { + if (sawc) + *sawc = 1; + break; + } + + *r++ = c; + } + + *r = '\0'; + if (lenp) + *lenp = r - ret; + return ret; +} + +static char * +vbadd (buf, blen) + char *buf; + int blen; +{ + size_t nlen; + + nlen = vblen + blen + 1; + if (nlen >= vbsize) + { + vbsize = ((nlen + 63) >> 6) << 6; + vbuf = (char *)xrealloc (vbuf, vbsize); + } + + if (blen == 1) + vbuf[vblen++] = buf[0]; + else + { + FASTCOPY (buf, vbuf + vblen, blen); + vblen += blen; + } + vbuf[vblen] = '\0'; + +#ifdef DEBUG + if (strlen (vbuf) != vblen) + internal_error ("printf:vbadd: vblen (%d) != strlen (vbuf) (%d)", vblen, (int)strlen (vbuf)); +#endif + + return vbuf; +} + +static char * +mklong (str, modifiers, mlen) + char *str; + char *modifiers; + size_t mlen; +{ + size_t len, slen; + + slen = strlen (str); + len = slen + mlen + 1; + + if (len > conv_bufsize) + { + conv_bufsize = (((len + 1023) >> 10) << 10); + conv_buf = (char *)xrealloc (conv_buf, conv_bufsize); + } + + FASTCOPY (str, conv_buf, slen - 1); + FASTCOPY (modifiers, conv_buf + slen - 1, mlen); + + conv_buf[len - 2] = str[slen - 1]; + conv_buf[len - 1] = '\0'; + return (conv_buf); +} + +static int +getchr () +{ + int ret; + + if (garglist == 0) + return ('\0'); + + ret = (int)garglist->word->word[0]; + garglist = garglist->next; + return ret; +} + +static char * +getstr () +{ + char *ret; + + if (garglist == 0) + return (""); + + ret = garglist->word->word; + garglist = garglist->next; + return ret; +} + +static int +getint () +{ + intmax_t ret; + + ret = getintmax (); + + if (ret > INT_MAX) + { + printf_erange (garglist->word->word); + ret = INT_MAX; + } + else if (ret < INT_MIN) + { + printf_erange (garglist->word->word); + ret = INT_MIN; + } + + return ((int)ret); +} + +static intmax_t +getintmax () +{ + intmax_t ret; + char *ep; + + if (garglist == 0) + return (0); + + if (garglist->word->word[0] == '\'' || garglist->word->word[0] == '"') + return asciicode (); + + errno = 0; + ret = strtoimax (garglist->word->word, &ep, 0); + + if (*ep) + { + sh_invalidnum (garglist->word->word); + /* POSIX.2 says ``...a diagnostic message shall be written to standard + error, and the utility shall not exit with a zero exit status, but + shall continue processing any remaining operands and shall write the + value accumulated at the time the error was detected to standard + output.'' Yecch. */ + ret = 0; + conversion_error = 1; + } + else if (errno == ERANGE) + printf_erange (garglist->word->word); + + garglist = garglist->next; + return (ret); +} + +static uintmax_t +getuintmax () +{ + uintmax_t ret; + char *ep; + + if (garglist == 0) + return (0); + + if (garglist->word->word[0] == '\'' || garglist->word->word[0] == '"') + return asciicode (); + + errno = 0; + ret = strtoumax (garglist->word->word, &ep, 0); + + if (*ep) + { + sh_invalidnum (garglist->word->word); + /* Same POSIX.2 conversion error requirements as getintmax(). */ + ret = 0; + conversion_error = 1; + } + else if (errno == ERANGE) + printf_erange (garglist->word->word); + + garglist = garglist->next; + return (ret); +} + +static floatmax_t +getfloatmax () +{ + floatmax_t ret; + char *ep; + + if (garglist == 0) + return (0); + + if (garglist->word->word[0] == '\'' || garglist->word->word[0] == '"') + return asciicode (); + + errno = 0; + ret = strtofltmax (garglist->word->word, &ep); + + if (*ep) + { + sh_invalidnum (garglist->word->word); + /* Same thing about POSIX.2 conversion error requirements. */ + ret = 0; + conversion_error = 1; + } + else if (errno == ERANGE) + printf_erange (garglist->word->word); + + garglist = garglist->next; + return (ret); +} + +/* NO check is needed for garglist here. */ +static int +asciicode () +{ + register int ch; + + ch = garglist->word->word[1]; + garglist = garglist->next; + return (ch); +} diff --git a/builtins/pushd.def b/builtins/pushd.def index 86c0bddb5..30f65daba 100644 --- a/builtins/pushd.def +++ b/builtins/pushd.def @@ -660,66 +660,66 @@ get_directory_stack (flags) #ifdef LOADABLE_BUILTIN char * const dirs_doc[] = { - N_("Display the list of currently remembered directories. Directories"), - N_("find their way onto the list with the `pushd' command; you can get"), - N_("back up through the list with the `popd' command."), - N_(" "), - N_("The -l flag specifies that `dirs' should not print shorthand versions"), - N_("of directories which are relative to your home directory. This means"), - N_("that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag"), - N_("causes `dirs' to print the directory stack with one entry per line,"), - N_("prepending the directory name with its position in the stack. The -p"), - N_("flag does the same thing, but the stack position is not prepended."), - N_("The -c flag clears the directory stack by deleting all of the elements."), - N_(" "), - N_("+N displays the Nth entry counting from the left of the list shown by"), - N_(" dirs when invoked without options, starting with zero."), - N_(" "), - N_("-N displays the Nth entry counting from the right of the list shown by"), - N_(" dirs when invoked without options, starting with zero."), +N_("Display the list of currently remembered directories. Directories\n\ + find their way onto the list with the `pushd' command; you can get\n\ + back up through the list with the `popd' command.\n\ + \n\ + The -l flag specifies that `dirs' should not print shorthand versions\n\ + of directories which are relative to your home directory. This means\n\ + that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n\ + causes `dirs' to print the directory stack with one entry per line,\n\ + prepending the directory name with its position in the stack. The -p\n\ + flag does the same thing, but the stack position is not prepended.\n\ + The -c flag clears the directory stack by deleting all of the elements.\n\ + \n\ + +N displays the Nth entry counting from the left of the list shown by\n\ + dirs when invoked without options, starting with zero.\n\ + \n\ + -N displays the Nth entry counting from the right of the list shown by\n\ + dirs when invoked without options, starting with zero."), (char *)NULL }; char * const pushd_doc[] = { - N_("Adds a directory to the top of the directory stack, or rotates"), - N_("the stack, making the new top of the stack the current working"), - N_("directory. With no arguments, exchanges the top two directories."), - N_(" "), - N_("+N Rotates the stack so that the Nth directory (counting"), - N_(" from the left of the list shown by `dirs', starting with"), - N_(" zero) is at the top."), - N_(" "), - N_("-N Rotates the stack so that the Nth directory (counting"), - N_(" from the right of the list shown by `dirs', starting with"), - N_(" zero) is at the top."), - N_(" "), - N_("-n suppress the normal change of directory when adding directories"), - N_(" to the stack, so only the stack is manipulated."), - N_(" "), - N_("dir adds DIR to the directory stack at the top, making it the"), - N_(" new current working directory."), - N_(" "), - N_("You can see the directory stack with the `dirs' command."), +N_("Adds a directory to the top of the directory stack, or rotates\n\ + the stack, making the new top of the stack the current working\n\ + directory. With no arguments, exchanges the top two directories.\n\ + \n\ + +N Rotates the stack so that the Nth directory (counting\n\ + from the left of the list shown by `dirs', starting with\n\ + zero) is at the top.\n\ + \n\ + -N Rotates the stack so that the Nth directory (counting\n\ + from the right of the list shown by `dirs', starting with\n\ + zero) is at the top.\n\ + \n\ + -n suppress the normal change of directory when adding directories\n\ + to the stack, so only the stack is manipulated.\n\ + \n\ + dir adds DIR to the directory stack at the top, making it the\n\ + new current working directory.\n\ + \n\ + You can see the directory stack with the `dirs' command."), (char *)NULL }; char * const popd_doc[] = { - N_("Removes entries from the directory stack. With no arguments,"), - N_("removes the top directory from the stack, and cd's to the new"), - N_("top directory."), - N_(" "), - N_("+N removes the Nth entry counting from the left of the list"), - N_(" shown by `dirs', starting with zero. For example: `popd +0'"), - N_(" removes the first directory, `popd +1' the second."), - N_(" "), - N_("-N removes the Nth entry counting from the right of the list"), - N_(" shown by `dirs', starting with zero. For example: `popd -0'"), - N_(" removes the last directory, `popd -1' the next to last."), - N_(" "), - N_("-n suppress the normal change of directory when removing directories"), - N_(" from the stack, so only the stack is manipulated."), - N_(" "), - N_("You can see the directory stack with the `dirs' command."), +N_("Removes entries from the directory stack. With no arguments,\n\ + removes the top directory from the stack, and cd's to the new\n\ + top directory.\n\ + \n\ + +N removes the Nth entry counting from the left of the list\n\ + shown by `dirs', starting with zero. For example: `popd +0'\n\ + removes the first directory, `popd +1' the second.\n\ + \n\ + -N removes the Nth entry counting from the right of the list\n\ + shown by `dirs', starting with zero. For example: `popd -0'\n\ + removes the last directory, `popd -1' the next to last.\n\ + \n\ + -n suppress the normal change of directory when removing directories\n\ + from the stack, so only the stack is manipulated.\n\ + \n\ + You can see the directory stack with the `dirs' command."), (char *)NULL }; diff --git a/builtins/pushd.def~ b/builtins/pushd.def~ new file mode 100644 index 000000000..86c0bddb5 --- /dev/null +++ b/builtins/pushd.def~ @@ -0,0 +1,754 @@ +This file is pushd.def, from which is created pushd.c. It implements the +builtins "pushd", "popd", and "dirs" in Bash. + +Copyright (C) 1987-2004 Free Software Foundation, Inc. + +This file is part of GNU Bash, the Bourne Again SHell. + +Bash is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Bash is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License along +with Bash; see the file COPYING. If not, write to the Free Software +Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. + +$PRODUCES pushd.c + +$BUILTIN pushd +$FUNCTION pushd_builtin +$DEPENDS_ON PUSHD_AND_POPD +$SHORT_DOC pushd [dir | +N | -N] [-n] +Adds a directory to the top of the directory stack, or rotates +the stack, making the new top of the stack the current working +directory. With no arguments, exchanges the top two directories. + ++N Rotates the stack so that the Nth directory (counting + from the left of the list shown by `dirs', starting with + zero) is at the top. + +-N Rotates the stack so that the Nth directory (counting + from the right of the list shown by `dirs', starting with + zero) is at the top. + +-n suppress the normal change of directory when adding directories + to the stack, so only the stack is manipulated. + +dir adds DIR to the directory stack at the top, making it the + new current working directory. + +You can see the directory stack with the `dirs' command. +$END + +$BUILTIN popd +$FUNCTION popd_builtin +$DEPENDS_ON PUSHD_AND_POPD +$SHORT_DOC popd [+N | -N] [-n] +Removes entries from the directory stack. With no arguments, +removes the top directory from the stack, and cd's to the new +top directory. + ++N removes the Nth entry counting from the left of the list + shown by `dirs', starting with zero. For example: `popd +0' + removes the first directory, `popd +1' the second. + +-N removes the Nth entry counting from the right of the list + shown by `dirs', starting with zero. For example: `popd -0' + removes the last directory, `popd -1' the next to last. + +-n suppress the normal change of directory when removing directories + from the stack, so only the stack is manipulated. + +You can see the directory stack with the `dirs' command. +$END + +$BUILTIN dirs +$FUNCTION dirs_builtin +$DEPENDS_ON PUSHD_AND_POPD +$SHORT_DOC dirs [-clpv] [+N] [-N] +Display the list of currently remembered directories. Directories +find their way onto the list with the `pushd' command; you can get +back up through the list with the `popd' command. + +The -l flag specifies that `dirs' should not print shorthand versions +of directories which are relative to your home directory. This means +that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag +causes `dirs' to print the directory stack with one entry per line, +prepending the directory name with its position in the stack. The -p +flag does the same thing, but the stack position is not prepended. +The -c flag clears the directory stack by deleting all of the elements. + ++N displays the Nth entry counting from the left of the list shown by + dirs when invoked without options, starting with zero. + +-N displays the Nth entry counting from the right of the list shown by + dirs when invoked without options, starting with zero. +$END + +#include + +#if defined (PUSHD_AND_POPD) +#include +#ifndef _MINIX +# include +#endif + +#if defined (HAVE_UNISTD_H) +# ifdef _MINIX +# include +# endif +# include +#endif + +#include "../bashansi.h" +#include "../bashintl.h" + +#include + +#include + +#include "../shell.h" +#include "maxpath.h" +#include "common.h" +#include "builtext.h" + +#ifdef LOADABLE_BUILTIN +# include "builtins.h" +#endif + +#if !defined (errno) +extern int errno; +#endif /* !errno */ + +/* The list of remembered directories. */ +static char **pushd_directory_list = (char **)NULL; + +/* Number of existing slots in this list. */ +static int directory_list_size; + +/* Offset to the end of the list. */ +static int directory_list_offset; + +static void pushd_error __P((int, char *)); +static void clear_directory_stack __P((void)); +static int cd_to_string __P((char *)); +static int change_to_temp __P((char *)); +static void add_dirstack_element __P((char *)); +static int get_dirstack_index __P((intmax_t, int, int *)); + +#define NOCD 0x01 +#define ROTATE 0x02 +#define LONGFORM 0x04 +#define CLEARSTAK 0x08 + +int +pushd_builtin (list) + WORD_LIST *list; +{ + WORD_LIST *orig_list; + char *temp, *current_directory, *top; + int j, flags, skipopt; + intmax_t num; + char direction; + + orig_list = list; + if (list && list->word && ISOPTION (list->word->word, '-')) + { + list = list->next; + skipopt = 1; + } + else + skipopt = 0; + + /* If there is no argument list then switch current and + top of list. */ + if (list == 0) + { + if (directory_list_offset == 0) + { + builtin_error (_("no other directory")); + return (EXECUTION_FAILURE); + } + + current_directory = get_working_directory ("pushd"); + if (current_directory == 0) + return (EXECUTION_FAILURE); + + j = directory_list_offset - 1; + temp = pushd_directory_list[j]; + pushd_directory_list[j] = current_directory; + j = change_to_temp (temp); + free (temp); + return j; + } + + for (flags = 0; skipopt == 0 && list; list = list->next) + { + if (ISOPTION (list->word->word, 'n')) + { + flags |= NOCD; + } + else if (ISOPTION (list->word->word, '-')) + { + list = list->next; + break; + } + else if (list->word->word[0] == '-' && list->word->word[1] == '\0') + /* Let `pushd -' work like it used to. */ + break; + else if (((direction = list->word->word[0]) == '+') || direction == '-') + { + if (legal_number (list->word->word + 1, &num) == 0) + { + sh_invalidnum (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + + if (direction == '-') + num = directory_list_offset - num; + + if (num > directory_list_offset || num < 0) + { + pushd_error (directory_list_offset, list->word->word); + return (EXECUTION_FAILURE); + } + flags |= ROTATE; + } + else if (*list->word->word == '-') + { + sh_invalidopt (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + else + break; + } + + if (flags & ROTATE) + { + /* Rotate the stack num times. Remember, the current + directory acts like it is part of the stack. */ + temp = get_working_directory ("pushd"); + + if (num == 0) + { + j = ((flags & NOCD) == 0) ? change_to_temp (temp) : EXECUTION_SUCCESS; + free (temp); + return j; + } + + do + { + top = pushd_directory_list[directory_list_offset - 1]; + + for (j = directory_list_offset - 2; j > -1; j--) + pushd_directory_list[j + 1] = pushd_directory_list[j]; + + pushd_directory_list[j + 1] = temp; + + temp = top; + num--; + } + while (num); + + j = ((flags & NOCD) == 0) ? change_to_temp (temp) : EXECUTION_SUCCESS; + free (temp); + return j; + } + + if (list == 0) + return (EXECUTION_SUCCESS); + + /* Change to the directory in list->word->word. Save the current + directory on the top of the stack. */ + current_directory = get_working_directory ("pushd"); + if (current_directory == 0) + return (EXECUTION_FAILURE); + + j = ((flags & NOCD) == 0) ? cd_builtin (skipopt ? orig_list : list) : EXECUTION_SUCCESS; + if (j == EXECUTION_SUCCESS) + { + add_dirstack_element ((flags & NOCD) ? savestring (list->word->word) : current_directory); + dirs_builtin ((WORD_LIST *)NULL); + if (flags & NOCD) + free (current_directory); + return (EXECUTION_SUCCESS); + } + else + { + free (current_directory); + return (EXECUTION_FAILURE); + } +} + +/* Pop the directory stack, and then change to the new top of the stack. + If LIST is non-null it should consist of a word +N or -N, which says + what element to delete from the stack. The default is the top one. */ +int +popd_builtin (list) + WORD_LIST *list; +{ + register int i; + intmax_t which; + int flags; + char direction; + char *which_word; + + which_word = (char *)NULL; + for (flags = 0, which = 0, direction = '+'; list; list = list->next) + { + if (ISOPTION (list->word->word, 'n')) + { + flags |= NOCD; + } + else if (ISOPTION (list->word->word, '-')) + { + list = list->next; + break; + } + else if (((direction = list->word->word[0]) == '+') || direction == '-') + { + if (legal_number (list->word->word + 1, &which) == 0) + { + sh_invalidnum (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + which_word = list->word->word; + } + else if (*list->word->word == '-') + { + sh_invalidopt (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + else + break; + } + + if (which > directory_list_offset || (directory_list_offset == 0 && which == 0)) + { + pushd_error (directory_list_offset, which_word ? which_word : ""); + return (EXECUTION_FAILURE); + } + + /* Handle case of no specification, or top of stack specification. */ + if ((direction == '+' && which == 0) || + (direction == '-' && which == directory_list_offset)) + { + i = ((flags & NOCD) == 0) ? cd_to_string (pushd_directory_list[directory_list_offset - 1]) + : EXECUTION_SUCCESS; + if (i != EXECUTION_SUCCESS) + return (i); + free (pushd_directory_list[--directory_list_offset]); + } + else + { + /* Since an offset other than the top directory was specified, + remove that directory from the list and shift the remainder + of the list into place. */ + i = (direction == '+') ? directory_list_offset - which : which; + free (pushd_directory_list[i]); + directory_list_offset--; + + /* Shift the remainder of the list into place. */ + for (; i < directory_list_offset; i++) + pushd_directory_list[i] = pushd_directory_list[i + 1]; + } + + dirs_builtin ((WORD_LIST *)NULL); + return (EXECUTION_SUCCESS); +} + +/* Print the current list of directories on the directory stack. */ +int +dirs_builtin (list) + WORD_LIST *list; +{ + int flags, desired_index, index_flag, vflag; + intmax_t i; + char *temp, *w; + + for (flags = vflag = index_flag = 0, desired_index = -1, w = ""; list; list = list->next) + { + if (ISOPTION (list->word->word, 'l')) + { + flags |= LONGFORM; + } + else if (ISOPTION (list->word->word, 'c')) + { + flags |= CLEARSTAK; + } + else if (ISOPTION (list->word->word, 'v')) + { + vflag |= 2; + } + else if (ISOPTION (list->word->word, 'p')) + { + vflag |= 1; + } + else if (ISOPTION (list->word->word, '-')) + { + list = list->next; + break; + } + else if (*list->word->word == '+' || *list->word->word == '-') + { + int sign; + if (legal_number (w = list->word->word + 1, &i) == 0) + { + sh_invalidnum (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + sign = (*list->word->word == '+') ? 1 : -1; + desired_index = get_dirstack_index (i, sign, &index_flag); + } + else + { + sh_invalidopt (list->word->word); + builtin_usage (); + return (EXECUTION_FAILURE); + } + } + + if (flags & CLEARSTAK) + { + clear_directory_stack (); + return (EXECUTION_SUCCESS); + } + + if (index_flag && (desired_index < 0 || desired_index > directory_list_offset)) + { + pushd_error (directory_list_offset, w); + return (EXECUTION_FAILURE); + } + +#define DIRSTACK_FORMAT(temp) \ + (flags & LONGFORM) ? temp : polite_directory_format (temp) + + /* The first directory printed is always the current working directory. */ + if (index_flag == 0 || (index_flag == 1 && desired_index == 0)) + { + temp = get_working_directory ("dirs"); + if (temp == 0) + temp = savestring (_("")); + if (vflag & 2) + printf ("%2d %s", 0, DIRSTACK_FORMAT (temp)); + else + printf ("%s", DIRSTACK_FORMAT (temp)); + free (temp); + if (index_flag) + { + putchar ('\n'); + return EXECUTION_SUCCESS; + } + } + +#define DIRSTACK_ENTRY(i) \ + (flags & LONGFORM) ? pushd_directory_list[i] \ + : polite_directory_format (pushd_directory_list[i]) + + /* Now print the requested directory stack entries. */ + if (index_flag) + { + if (vflag & 2) + printf ("%2d %s", directory_list_offset - desired_index, + DIRSTACK_ENTRY (desired_index)); + else + printf ("%s", DIRSTACK_ENTRY (desired_index)); + } + else + for (i = directory_list_offset - 1; i >= 0; i--) + if (vflag >= 2) + printf ("\n%2d %s", directory_list_offset - (int)i, DIRSTACK_ENTRY (i)); + else + printf ("%s%s", (vflag & 1) ? "\n" : " ", DIRSTACK_ENTRY (i)); + + putchar ('\n'); + fflush (stdout); + return (EXECUTION_SUCCESS); +} + +static void +pushd_error (offset, arg) + int offset; + char *arg; +{ + if (offset == 0) + builtin_error ("directory stack empty"); + else + sh_erange (arg, "directory stack index"); +} + +static void +clear_directory_stack () +{ + register int i; + + for (i = 0; i < directory_list_offset; i++) + free (pushd_directory_list[i]); + directory_list_offset = 0; +} + +/* Switch to the directory in NAME. This uses the cd_builtin to do the work, + so if the result is EXECUTION_FAILURE then an error message has already + been printed. */ +static int +cd_to_string (name) + char *name; +{ + WORD_LIST *tlist; + WORD_LIST *dir; + int result; + + dir = make_word_list (make_word (name), NULL); + tlist = make_word_list (make_word ("--"), dir); + result = cd_builtin (tlist); + dispose_words (tlist); + return (result); +} + +static int +change_to_temp (temp) + char *temp; +{ + int tt; + + tt = temp ? cd_to_string (temp) : EXECUTION_FAILURE; + + if (tt == EXECUTION_SUCCESS) + dirs_builtin ((WORD_LIST *)NULL); + + return (tt); +} + +static void +add_dirstack_element (dir) + char *dir; +{ + if (directory_list_offset == directory_list_size) + pushd_directory_list = strvec_resize (pushd_directory_list, directory_list_size += 10); + pushd_directory_list[directory_list_offset++] = dir; +} + +static int +get_dirstack_index (ind, sign, indexp) + intmax_t ind; + int sign, *indexp; +{ + if (indexp) + *indexp = sign > 0 ? 1 : 2; + + /* dirs +0 prints the current working directory. */ + /* dirs -0 prints last element in directory stack */ + if (ind == 0 && sign > 0) + return 0; + else if (ind == directory_list_offset) + { + if (indexp) + *indexp = sign > 0 ? 2 : 1; + return 0; + } + else if (ind >= 0 && ind <= directory_list_offset) + return (sign > 0 ? directory_list_offset - ind : ind); + else + return -1; +} + +/* Used by the tilde expansion code. */ +char * +get_dirstack_from_string (string) + char *string; +{ + int ind, sign, index_flag; + intmax_t i; + + sign = 1; + if (*string == '-' || *string == '+') + { + sign = (*string == '-') ? -1 : 1; + string++; + } + if (legal_number (string, &i) == 0) + return ((char *)NULL); + + index_flag = 0; + ind = get_dirstack_index (i, sign, &index_flag); + if (index_flag && (ind < 0 || ind > directory_list_offset)) + return ((char *)NULL); + if (index_flag == 0 || (index_flag == 1 && ind == 0)) + return (get_string_value ("PWD")); + else + return (pushd_directory_list[ind]); +} + +#ifdef INCLUDE_UNUSED +char * +get_dirstack_element (ind, sign) + intmax_t ind; + int sign; +{ + int i; + + i = get_dirstack_index (ind, sign, (int *)NULL); + return (i < 0 || i > directory_list_offset) ? (char *)NULL + : pushd_directory_list[i]; +} +#endif + +void +set_dirstack_element (ind, sign, value) + intmax_t ind; + int sign; + char *value; +{ + int i; + + i = get_dirstack_index (ind, sign, (int *)NULL); + if (ind == 0 || i < 0 || i > directory_list_offset) + return; + free (pushd_directory_list[i]); + pushd_directory_list[i] = savestring (value); +} + +WORD_LIST * +get_directory_stack (flags) + int flags; +{ + register int i; + WORD_LIST *ret; + char *d, *t; + + for (ret = (WORD_LIST *)NULL, i = 0; i < directory_list_offset; i++) + { + d = (flags&1) ? polite_directory_format (pushd_directory_list[i]) + : pushd_directory_list[i]; + ret = make_word_list (make_word (d), ret); + } + /* Now the current directory. */ + d = get_working_directory ("dirstack"); + i = 0; /* sentinel to decide whether or not to free d */ + if (d == 0) + d = "."; + else + { + t = polite_directory_format (d); + /* polite_directory_format sometimes returns its argument unchanged. + If it does not, we can free d right away. If it does, we need to + mark d to be deleted later. */ + if (t != d) + { + free (d); + d = t; + } + else /* t == d, so d is what we want */ + i = 1; + } + ret = make_word_list (make_word (d), ret); + if (i) + free (d); + return ret; /* was (REVERSE_LIST (ret, (WORD_LIST *)); */ +} + +#ifdef LOADABLE_BUILTIN +char * const dirs_doc[] = { + N_("Display the list of currently remembered directories. Directories"), + N_("find their way onto the list with the `pushd' command; you can get"), + N_("back up through the list with the `popd' command."), + N_(" "), + N_("The -l flag specifies that `dirs' should not print shorthand versions"), + N_("of directories which are relative to your home directory. This means"), + N_("that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag"), + N_("causes `dirs' to print the directory stack with one entry per line,"), + N_("prepending the directory name with its position in the stack. The -p"), + N_("flag does the same thing, but the stack position is not prepended."), + N_("The -c flag clears the directory stack by deleting all of the elements."), + N_(" "), + N_("+N displays the Nth entry counting from the left of the list shown by"), + N_(" dirs when invoked without options, starting with zero."), + N_(" "), + N_("-N displays the Nth entry counting from the right of the list shown by"), + N_(" dirs when invoked without options, starting with zero."), + (char *)NULL +}; + +char * const pushd_doc[] = { + N_("Adds a directory to the top of the directory stack, or rotates"), + N_("the stack, making the new top of the stack the current working"), + N_("directory. With no arguments, exchanges the top two directories."), + N_(" "), + N_("+N Rotates the stack so that the Nth directory (counting"), + N_(" from the left of the list shown by `dirs', starting with"), + N_(" zero) is at the top."), + N_(" "), + N_("-N Rotates the stack so that the Nth directory (counting"), + N_(" from the right of the list shown by `dirs', starting with"), + N_(" zero) is at the top."), + N_(" "), + N_("-n suppress the normal change of directory when adding directories"), + N_(" to the stack, so only the stack is manipulated."), + N_(" "), + N_("dir adds DIR to the directory stack at the top, making it the"), + N_(" new current working directory."), + N_(" "), + N_("You can see the directory stack with the `dirs' command."), + (char *)NULL +}; + +char * const popd_doc[] = { + N_("Removes entries from the directory stack. With no arguments,"), + N_("removes the top directory from the stack, and cd's to the new"), + N_("top directory."), + N_(" "), + N_("+N removes the Nth entry counting from the left of the list"), + N_(" shown by `dirs', starting with zero. For example: `popd +0'"), + N_(" removes the first directory, `popd +1' the second."), + N_(" "), + N_("-N removes the Nth entry counting from the right of the list"), + N_(" shown by `dirs', starting with zero. For example: `popd -0'"), + N_(" removes the last directory, `popd -1' the next to last."), + N_(" "), + N_("-n suppress the normal change of directory when removing directories"), + N_(" from the stack, so only the stack is manipulated."), + N_(" "), + N_("You can see the directory stack with the `dirs' command."), + (char *)NULL +}; + +struct builtin pushd_struct = { + "pushd", + pushd_builtin, + BUILTIN_ENABLED, + pushd_doc, + "pushd [+N | -N] [-n] [dir]", + 0 +}; + +struct builtin popd_struct = { + "popd", + popd_builtin, + BUILTIN_ENABLED, + popd_doc, + "popd [+N | -N] [-n]", + 0 +}; + +struct builtin dirs_struct = { + "dirs", + dirs_builtin, + BUILTIN_ENABLED, + dirs_doc, + "dirs [-clpv] [+N] [-N]", + 0 +}; +#endif /* LOADABLE_BUILTIN */ + +#endif /* PUSHD_AND_POPD */ diff --git a/doc/bash.1 b/doc/bash.1 index f9e536eb4..329ffa5a5 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -1410,7 +1410,9 @@ An array variable containing the names of all shell functions currently in the execution call stack. The element with index 0 is the name of any currently-executing shell function. -The bottom-most element is "main". +The bottom-most element is +.if t \f(CW"main"\fP. +.if n "main". This variable exists only when a shell function is executing. Assignments to .SM @@ -6711,7 +6713,7 @@ become the arguments to \fIcommand\fP. If the .B \-l option is supplied, -the shell places a dash at the beginning of the zeroth arg passed to +the shell places a dash at the beginning of the zeroth argument passed to .IR command . This is what .IR login (1) diff --git a/doc/bashref.texi b/doc/bashref.texi index 2acf21f62..6f0c7f4c0 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -164,7 +164,7 @@ and symbols are expanded to create larger expressions. A Unix shell is both a command interpreter and a programming language. As a command interpreter, the shell provides the user interface to the rich set of @sc{gnu} utilities. The programming -language features allow these utilitites to be combined. +language features allow these utilities to be combined. Files containing commands can be created, and become commands themselves. These new commands have the same status as system commands in directories such as @file{/bin}, allowing users @@ -288,7 +288,7 @@ group @sc{id}. @item process group ID @cindex process group ID -A unique identifer that represents a @code{process group} +A unique identifier that represents a @code{process group} during its lifetime. @item reserved word @@ -897,7 +897,7 @@ The list of words following @code{in} is expanded, generating a list of items. The set of expanded words is printed on the standard error output stream, each preceded by a number. If the @samp{in @var{words}} is omitted, the positional parameters are printed, -as if @samp{in "$@@"} had been specifed. +as if @samp{in "$@@"} had been specified. The @env{PS3} prompt is then displayed and a line is read from the standard input. If the line consists of a number corresponding to one of the displayed @@ -1377,7 +1377,7 @@ This mechanism is similar to @var{filename expansion} (@pxref{Filename Expansion}), but the file names generated need not exist. Patterns to be brace expanded take the form of an optional @var{preamble}, -followed by either a series of comma-separated strings or a sequnce expression +followed by either a series of comma-separated strings or a seqeunce expression between a pair of braces, followed by an optional @var{postscript}. The preamble is prefixed to each string contained within the braces, and @@ -2717,7 +2717,7 @@ exec [-cl] [-a @var{name}] [@var{command} [@var{arguments}]] If @var{command} is supplied, it replaces the shell without creating a new process. If the @option{-l} option is supplied, the shell places a dash at the -beginning of the zeroth arg passed to @var{command}. +beginning of the zeroth argument passed to @var{command}. This is what the @code{login} program does. The @option{-c} option causes @var{command} to be executed with an empty environment. @@ -3110,7 +3110,7 @@ key and function bindings, bind a key sequence to a Readline function or macro, or set a Readline variable. Each non-option argument is a command as it would appear in a -a Readline initialization file (@pxref{Readline Init File}), +Readline initialization file (@pxref{Readline Init File}), but each binding or command must be passed as a separate argument; e.g., @samp{"\C-x\C-r":re-read-init-file}. Options, if supplied, have the following meanings: @@ -4476,7 +4476,7 @@ An array variable containing the names of all shell functions currently in the execution call stack. The element with index 0 is the name of any currently-executing shell function. -The bottom-most element is "main". +The bottom-most element is @code{"main"}. This variable exists only when a shell function is executing. Assignments to @env{FUNCNAME} have no effect and return an error status. If @env{FUNCNAME} is unset, it loses its special properties, even if @@ -4796,7 +4796,7 @@ The @code{select} command (@pxref{Conditional Constructs}) terminates if input does not arrive after @code{TMOUT} seconds when input is coming from a terminal. -In an interative shell, the value is interpreted as +In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt when the shell is interactive. Bash terminates after that number of seconds if input does @@ -4866,7 +4866,7 @@ Equivalent to @option{-D} except for the output format. Equivalent to @option{-D}. @item --help -Display a usage message on standard output and exit sucessfully. +Display a usage message on standard output and exit successfully. @item --init-file @var{filename} @itemx --rcfile @var{filename} @@ -4995,7 +4995,7 @@ in the script. If no commands are executed, the exit status is 0. @section Bash Startup Files @cindex startup files -This section describs how Bash executes its startup files. +This section describes how Bash executes its startup files. If any of the files exist but cannot be read, Bash reports an error. Tildes are expanded in file names as described above under Tilde Expansion (@pxref{Tilde Expansion}). @@ -5120,7 +5120,7 @@ the same, but the effective user id is not reset. An interactive shell is one started without non-option arguments, unless @option{-s} is -specified, without specifiying the @option{-c} option, and +specified, without specifying the @option{-c} option, and whose input and error output are both connected to terminals (as determined by @code{isatty(3)}), or one started with the @option{-i} option. @@ -5213,7 +5213,7 @@ In the absence of any traps, @code{SIGINT} is caught and handled @item An interactive login shell sends a @code{SIGHUP} to all jobs on exit -if the @code{hupoxexit} shell option has been enabled (@pxref{Signals}). +if the @code{huponexit} shell option has been enabled (@pxref{Signals}). @item The @option{-n} invocation option is ignored, and @samp{set -n} has diff --git a/jobs.c b/jobs.c index 5e4b1f675..c4d5b1fb9 100644 --- a/jobs.c +++ b/jobs.c @@ -1772,7 +1772,7 @@ make_child (command, async_p) #endif /* PGRP_PIPE */ if (async_p) - last_asynchronous_pid = mypid; + last_asynchronous_pid = mypid; /* XXX */ #if defined (RECYCLES_PIDS) else if (last_asynchronous_pid == mypid) /* Avoid pid aliasing. 1 seems like a safe, unusual pid value. */ diff --git a/lib/sh/snprintf.c b/lib/sh/snprintf.c index 4a964746d..95e191b41 100644 --- a/lib/sh/snprintf.c +++ b/lib/sh/snprintf.c @@ -58,6 +58,11 @@ # include #endif +#if defined(DEBUG) +# undef HAVE_SNPRINTF +# undef HAVE_ASPRINTF +#endif + #if defined(DRIVER) && !defined(HAVE_CONFIG_H) #define HAVE_LONG_LONG #define HAVE_LONG_DOUBLE @@ -471,6 +476,8 @@ pow_10(n) 10^x ~= r * log_10(200) = 2; * log_10(250) = 2; + * + * NOTE: do not call this with r == 0 -- an infinite loop results. */ static int log_10(r) @@ -576,8 +583,11 @@ numtoa(number, base, precision, fract) { integral_part[0] = '0'; integral_part[1] = '\0'; - fraction_part[0] = '0'; - fraction_part[1] = '\0'; + /* The fractional part has to take the precision into account */ + for (ch = 0; ch < precision-1; ch++) + fraction_part[ch] = '0'; + fraction_part[ch] = '0'; + fraction_part[ch+1] = '\0'; if (fract) *fract = fraction_part; return integral_part; @@ -805,6 +815,7 @@ pointer(p, d) PUT_CHAR(*tmp, p); tmp++; } + PAD_LEFT(p); } @@ -972,11 +983,21 @@ floating(p, d) if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) tmp = t; + if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) + { + /* smash the trailing zeros unless altform */ + for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) + tmp2[i] = '\0'; + if (tmp2[0] == '\0') + p->precision = 0; + } + /* calculate the padding. 1 for the dot */ p->width = p->width - ((d > 0. && p->justify == RIGHT) ? 1:0) - ((p->flags & PF_SPACE) ? 1:0) - - strlen(tmp) - p->precision - 1; + strlen(tmp) - p->precision - + ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */ PAD_RIGHT(p); PUT_PLUS(d, p, 0.); PUT_SPACE(d, p, 0.); @@ -991,11 +1012,6 @@ floating(p, d) if (p->precision != 0 || (p->flags & PF_ALTFORM)) PUT_CHAR(decpoint, p); /* put the '.' */ - if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) - /* smash the trailing zeros unless altform */ - for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) - tmp2[i] = '\0'; - for (; *tmp2; tmp2++) PUT_CHAR(*tmp2, p); /* the fraction */ @@ -1011,14 +1027,19 @@ exponent(p, d) char *tmp, *tmp2; int j, i; - if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)) + if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) return; /* already printed nan or inf */ GETLOCALEDATA(decpoint, thoussep, grouping); DEF_PREC(p); - j = log_10(d); - d = d / pow_10(j); /* get the Mantissa */ - d = ROUND(d, p); + if (d == 0.) + j = 0; + else + { + j = log_10(d); + d = d / pow_10(j); /* get the Mantissa */ + d = ROUND(d, p); + } tmp = dtoa(d, p->precision, &tmp2); /* 1 for unit, 1 for the '.', 1 for 'e|E', @@ -1076,6 +1097,7 @@ exponent(p, d) PUT_CHAR(*tmp, p); tmp++; } + PAD_LEFT(p); } #endif @@ -1358,7 +1380,7 @@ conv_break: STAR_ARGS(data); DEF_PREC(data); d = GETDOUBLE(data); - i = log_10(d); + i = (d != 0.) ? log_10(d) : -1; /* * for '%g|%G' ANSI: use f if exponent * is in the range or [-4,p] exclusively diff --git a/lib/sh/snprintf.c.save b/lib/sh/snprintf.c.save new file mode 100644 index 000000000..d7c60864f --- /dev/null +++ b/lib/sh/snprintf.c.save @@ -0,0 +1,2152 @@ +/* + build a test version with + gcc -g -DDRIVER -I../.. -I../../include -o test-snprintf snprintf.c fmtu*long.o +*/ + +/* + Unix snprintf implementation. + derived from inetutils/libinetutils/snprintf.c Version 1.1 + + Copyright (C) 2001 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General License for more details. + + You should have received a copy of the GNU General License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Revision History: + + 1.1: + * added changes from Miles Bader + * corrected a bug with %f + * added support for %#g + * added more comments :-) + 1.0: + * supporting must ANSI syntaxic_sugars + 0.0: + * support %s %c %d + + THANKS(for the patches and ideas): + Miles Bader + Cyrille Rustom + Jacek Slabocewiz + Mike Parker(mouse) + +*/ + +/* + * Currently doesn't handle (and bash/readline doesn't use): + * * *M$ width, precision specifications + * * %N$ numbered argument conversions + * * inf, nan floating values imperfect (if isinf(), isnan() not in libc) + * * support for `F' is imperfect with ldfallback(), since underlying + * printf may not handle it -- should ideally have another autoconf test + */ + +#define FLOATING_POINT + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if defined(DEBUG) +# undef HAVE_SNPRINTF +# undef HAVE_ASPRINTF +#endif + +#if defined(DRIVER) && !defined(HAVE_CONFIG_H) +#define HAVE_LONG_LONG +#define HAVE_LONG_DOUBLE +#ifdef __linux__ +#define HAVE_PRINTF_A_FORMAT +#endif +#define HAVE_ISINF_IN_LIBC +#define HAVE_ISNAN_IN_LIBC +#define PREFER_STDARG +#define HAVE_STRINGIZE +#define HAVE_LIMITS_H +#define HAVE_STDDEF_H +#define HAVE_LOCALE_H +#define intmax_t long +#endif + +#if !defined (HAVE_SNPRINTF) || !defined (HAVE_ASPRINTF) + +#include + +#if defined(PREFER_STDARG) +# include +#else +# include +#endif + +#ifdef HAVE_LIMITS_H +# include +#endif +#include +#ifdef HAVE_STDDEF_H +# include +#endif +#include + +#ifdef HAVE_STDINT_H +# include +#endif + +#ifdef FLOATING_POINT +# include /* for manifest constants */ +# include /* for sprintf */ +#endif + +#include + +#ifdef HAVE_LOCALE_H +# include +#endif + +#include "stdc.h" +#include + +#ifndef DRIVER +# include "shell.h" +#else +# define FL_PREFIX 0x01 /* add 0x, 0X, or 0 prefix as appropriate */ +# define FL_ADDBASE 0x02 /* add base# prefix to converted value */ +# define FL_HEXUPPER 0x04 /* use uppercase when converting to hex */ +# define FL_UNSIGNED 0x08 /* don't add any sign */ +extern char *fmtulong __P((unsigned long int, int, char *, size_t, int)); +extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int)); +#endif + +#ifndef FREE +# define FREE(x) if (x) free (x) +#endif + +/* Bound on length of the string representing an integer value of type T. + Subtract one for the sign bit if T is signed; + 302 / 1000 is log10 (2) rounded up; + add one for integer division truncation; + add one more for a minus sign if t is signed. */ +#define INT_STRLEN_BOUND(t) \ + ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \ + + 1 + TYPE_SIGNED (t)) + +/* conversion flags */ +#define PF_ALTFORM 0x00001 /* # */ +#define PF_HEXPREFIX 0x00002 /* 0[Xx] */ +#define PF_LADJUST 0x00004 /* - */ +#define PF_ZEROPAD 0x00008 /* 0 */ +#define PF_PLUS 0x00010 /* + */ +#define PF_SPACE 0x00020 /* ' ' */ +#define PF_THOUSANDS 0x00040 /* ' */ + +#define PF_DOT 0x00080 /* `.precision' */ +#define PF_STAR_P 0x00100 /* `*' after precision */ +#define PF_STAR_W 0x00200 /* `*' before or without precision */ + +/* length modifiers */ +#define PF_SIGNEDCHAR 0x00400 /* hh */ +#define PF_SHORTINT 0x00800 /* h */ +#define PF_LONGINT 0x01000 /* l */ +#define PF_LONGLONG 0x02000 /* ll */ +#define PF_LONGDBL 0x04000 /* L */ +#define PF_INTMAX_T 0x08000 /* j */ +#define PF_SIZE_T 0x10000 /* z */ +#define PF_PTRDIFF_T 0x20000 /* t */ + +#define PF_ALLOCBUF 0x40000 /* for asprintf, vasprintf */ + +#define PFM_SN 0x01 /* snprintf, vsnprintf */ +#define PFM_AS 0x02 /* asprintf, vasprintf */ + +#define ASBUFSIZE 128 + +#define x_digs "0123456789abcdef" +#define X_digs "0123456789ABCDEF" + +static char intbuf[INT_STRLEN_BOUND(unsigned long) + 1]; + +static int decpoint; +static int thoussep; +static char *grouping; + +/* + * For the FLOATING POINT FORMAT : + * the challenge was finding a way to + * manipulate the Real numbers without having + * to resort to mathematical function(it + * would require to link with -lm) and not + * going down to the bit pattern(not portable) + * + * so a number, a real is: + + real = integral + fraction + + integral = ... + a(2)*10^2 + a(1)*10^1 + a(0)*10^0 + fraction = b(1)*10^-1 + b(2)*10^-2 + ... + + where: + 0 <= a(i) => 9 + 0 <= b(i) => 9 + + from then it was simple math + */ + +/* + * size of the buffer for the integral part + * and the fraction part + */ +#define MAX_INT 99 + 1 /* 1 for the null */ +#define MAX_FRACT 307 + 1 + +/* + * These functions use static buffers to store the results, + * and so are not reentrant + */ +#define itoa(n) fmtulong(n, 10, intbuf, sizeof(intbuf), 0); +#define dtoa(n, p, f) numtoa(n, 10, p, f) + +#define SWAP_INT(a,b) {int t; t = (a); (a) = (b); (b) = t;} + +#define GETARG(type) (va_arg(args, type)) + +/* Macros that do proper sign extension and handle length modifiers. Used + for the integer conversion specifiers. */ +#define GETSIGNED(p) \ + (((p)->flags & PF_LONGINT) \ + ? GETARG (long) \ + : (((p)->flags & PF_SHORTINT) ? (long)(short)GETARG (int) \ + : (long)GETARG (int))) + +#define GETUNSIGNED(p) \ + (((p)->flags & PF_LONGINT) \ + ? GETARG (unsigned long) \ + : (((p)->flags & PF_SHORTINT) ? (unsigned long)(unsigned short)GETARG (int) \ + : (unsigned long)GETARG (unsigned int))) + + +#ifdef HAVE_LONG_DOUBLE +#define GETLDOUBLE(p) GETARG (long double) +#endif +#define GETDOUBLE(p) GETARG (double) + +#define SET_SIZE_FLAGS(p, type) \ + if (sizeof (type) > sizeof (int)) \ + (p)->flags |= PF_LONGINT; \ + if (sizeof (type) > sizeof (long)) \ + (p)->flags |= PF_LONGLONG; + +/* this struct holds everything we need */ +struct DATA +{ + int length; + char *base; /* needed for [v]asprintf */ + char *holder; + int counter; + const char *pf; + +/* FLAGS */ + int flags; + int justify; + int width, precision; + char pad; +}; + +/* the floating point stuff */ +#ifdef FLOATING_POINT +static double pow_10 __P((int)); +static int log_10 __P((double)); +static double integral __P((double, double *)); +static char *numtoa __P((double, int, int, char **)); +#endif + +static void init_data __P((struct DATA *, char *, size_t, const char *, int)); +static void init_conv_flag __P((struct DATA *)); + +/* for the format */ +#ifdef FLOATING_POINT +static void floating __P((struct DATA *, double)); +static void exponent __P((struct DATA *, double)); +#endif +static void number __P((struct DATA *, unsigned long, int)); +#ifdef HAVE_LONG_LONG +static void lnumber __P((struct DATA *, unsigned long long, int)); +#endif +static void pointer __P((struct DATA *, unsigned long)); +static void strings __P((struct DATA *, char *)); + +#ifdef FLOATING_POINT +# define FALLBACK_FMTSIZE 32 +# define FALLBACK_BASE 4096 +# define LFALLBACK_BASE 5120 +# ifdef HAVE_LONG_DOUBLE +static void ldfallback __P((struct DATA *, const char *, const char *, long double)); +# endif +static void dfallback __P((struct DATA *, const char *, const char *, double)); +#endif + +static char *groupnum __P((char *)); + +#ifdef DRIVER +static void memory_error_and_abort (); +static void *xmalloc __P((size_t)); +static void *xrealloc __P((void *, size_t)); +static void xfree __P((void *)); +#else +# include +#endif + +/* those are defines specific to snprintf to hopefully + * make the code clearer :-) + */ +#define RIGHT 1 +#define LEFT 0 +#define NOT_FOUND -1 +#define FOUND 1 +#define MAX_FIELD 15 + +/* round off to the precision */ +#define ROUND(d, p) \ + (d < 0.) ? \ + d - pow_10(-(p)->precision) * 0.5 : \ + d + pow_10(-(p)->precision) * 0.5 + +/* set default precision */ +#define DEF_PREC(p) \ + if ((p)->precision == NOT_FOUND) \ + (p)->precision = 6 + +/* put a char. increment the number of chars written even if we've exceeded + the vsnprintf/snprintf buffer size (for the return value) */ +#define PUT_CHAR(c, p) \ + do \ + { \ + if (((p)->flags & PF_ALLOCBUF) && ((p)->counter >= (p)->length - 1)) \ + { \ + (p)->length += ASBUFSIZE; \ + (p)->base = (char *)xrealloc((p)->base, (p)->length); \ + (p)->holder = (p)->base + (p)->counter; /* in case reallocated */ \ + } \ + if ((p)->counter < (p)->length) \ + *(p)->holder++ = (c); \ + (p)->counter++; \ + } \ + while (0) + +/* Output a string. P->WIDTH has already been adjusted for padding. */ +#define PUT_STRING(string, len, p) \ + do \ + { \ + PAD_RIGHT (p); \ + while ((len)-- > 0) \ + { \ + PUT_CHAR (*(string), (p)); \ + (string)++; \ + } \ + PAD_LEFT (p); \ + } \ + while (0) + +#define PUT_PLUS(d, p, zero) \ + if ((d) > zero && (p)->justify == RIGHT) \ + PUT_CHAR('+', p) + +#define PUT_SPACE(d, p, zero) \ + if (((p)->flags & PF_SPACE) && (d) > zero) \ + PUT_CHAR(' ', p) + +/* pad right */ +#define PAD_RIGHT(p) \ + if ((p)->width > 0 && (p)->justify != LEFT) \ + for (; (p)->width > 0; (p)->width--) \ + PUT_CHAR((p)->pad, p) + +/* pad left */ +#define PAD_LEFT(p) \ + if ((p)->width > 0 && (p)->justify == LEFT) \ + for (; (p)->width > 0; (p)->width--) \ + PUT_CHAR((p)->pad, p) + +/* pad with zeros from decimal precision */ +#define PAD_ZERO(p) \ + if ((p)->precision > 0) \ + for (; (p)->precision > 0; (p)->precision--) \ + PUT_CHAR('0', p) + +/* if width and prec. in the args */ +#define STAR_ARGS(p) \ + do { \ + if ((p)->flags & PF_STAR_W) \ + { \ + (p)->width = GETARG (int); \ + if ((p)->width < 0) \ + { \ + (p)->flags |= PF_LADJUST; \ + (p)->justify = LEFT; \ + (p)->width = -(p)->width; \ + } \ + } \ + if ((p)->flags & PF_STAR_P) \ + { \ + (p)->precision = GETARG (int); \ + if ((p)->precision < 0) \ + { \ + (p)->flags &= ~PF_STAR_P; \ + (p)->precision = NOT_FOUND; \ + } \ + } \ + } while (0) + +#if defined (HAVE_LOCALE_H) +# define GETLOCALEDATA(d, t, g) \ + do \ + { \ + struct lconv *lv; \ + if ((d) == 0) { \ + (d) = '.'; (t) = -1; (g) = 0; /* defaults */ \ + lv = localeconv(); \ + if (lv) \ + { \ + if (lv->decimal_point && lv->decimal_point[0]) \ + (d) = lv->decimal_point[0]; \ + if (lv->thousands_sep && lv->thousands_sep[0]) \ + (t) = lv->thousands_sep[0]; \ + (g) = lv->grouping ? lv->grouping : ""; \ + if (*(g) == '\0' || *(g) == CHAR_MAX || (t) == -1) (g) = 0; \ + } \ + } \ + } \ + while (0); +#else +# define GETLOCALEDATA(d, t, g) \ + ( (d) = '.', (t) = ',', g = "\003" ) +#endif + +#ifdef FLOATING_POINT +/* + * Find the nth power of 10 + */ +static double +pow_10(n) + int n; +{ + double P; + + /* handle common cases with fast switch statement. */ + switch (n) + { + case -3: return .001; + case -2: return .01; + case -1: return .1; + case 0: return 1.; + case 1: return 10.; + case 2: return 100.; + case 3: return 1000.; + } + + if (n < 0) + { + P = .0001; + for (n += 4; n < 0; n++) + P /= 10.; + } + else + { + P = 10000.; + for (n -= 4; n > 0; n--) + P *= 10.; + } + + return P; +} + +/* + * Find the integral part of the log in base 10 + * Note: this not a real log10() + I just need and approximation(integerpart) of x in: + 10^x ~= r + * log_10(200) = 2; + * log_10(250) = 2; + * + * NOTE: do not call this with r == 0 -- an infinite loop results. + */ +static int +log_10(r) + double r; +{ + int i = 0; + double result = 1.; + + if (r < 0.) + r = -r; + + if (r < 1.) + { + while (result >= r) + { + result /= 10.; + i++; + } + return (-i); + } + else + { + while (result <= r) + { + result *= 10.; + i++; + } + return (i - 1); + } +} + +/* + * This function return the fraction part of a double + * and set in ip the integral part. + * In many ways it resemble the modf() found on most Un*x + */ +static double +integral(real, ip) + double real; + double *ip; +{ + int j; + double i, s, p; + double real_integral = 0.; + + /* take care of the obvious */ + /* equal to zero ? */ + if (real == 0.) + { + *ip = 0.; + return (0.); + } + + /* negative number ? */ + if (real < 0.) + real = -real; + + /* a fraction ? */ + if ( real < 1.) + { + *ip = 0.; + return real; + } + + /* the real work :-) */ + for (j = log_10(real); j >= 0; j--) + { + p = pow_10(j); + s = (real - real_integral)/p; + i = 0.; + while (i + 1. <= s) + i++; + real_integral += i*p; + } + *ip = real_integral; + return (real - real_integral); +} + +#define PRECISION 1.e-6 +/* + * return an ascii representation of the integral part of the number + * and set fract to be an ascii representation of the fraction part + * the container for the fraction and the integral part or staticly + * declare with fix size + */ +static char * +numtoa(number, base, precision, fract) + double number; + int base, precision; + char **fract; +{ + register int i, j; + double ip, fp; /* integer and fraction part */ + double fraction; + int digits = MAX_INT - 1; + static char integral_part[MAX_INT]; + static char fraction_part[MAX_FRACT]; + double sign; + int ch; + + /* taking care of the obvious case: 0.0 */ + if (number == 0.) + { + integral_part[0] = '0'; + integral_part[1] = '\0'; + fraction_part[0] = '0'; + fraction_part[1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; + } + + /* for negative numbers */ + if ((sign = number) < 0.) + { + number = -number; + digits--; /* sign consume one digit */ + } + + fraction = integral(number, &ip); + number = ip; + + /* do the integral part */ + if (ip == 0.) + { + integral_part[0] = '0'; + i = 1; + } + else + { + for ( i = 0; i < digits && number != 0.; ++i) + { + number /= base; + fp = integral(number, &ip); + ch = (int)((fp + PRECISION)*base); /* force to round */ + integral_part[i] = (ch <= 9) ? ch + '0' : ch + 'a' - 10; + if (! ISXDIGIT((unsigned char)integral_part[i])) + break; /* bail out overflow !! */ + number = ip; + } + } + + /* Oh No !! out of bound, ho well fill it up ! */ + if (number != 0.) + for (i = 0; i < digits; ++i) + integral_part[i] = '9'; + + /* put the sign ? */ + if (sign < 0.) + integral_part[i++] = '-'; + + integral_part[i] = '\0'; + + /* reverse every thing */ + for ( i--, j = 0; j < i; j++, i--) + SWAP_INT(integral_part[i], integral_part[j]); + + /* the fractional part */ + for (i=0, fp=fraction; precision > 0 && i < MAX_FRACT ; i++, precision--) + { + fraction_part[i] = (int)((fp + PRECISION)*10. + '0'); + if (! DIGIT(fraction_part[i])) /* underflow ? */ + break; + fp = (fp*10.0) - (double)(long)((fp + PRECISION)*10.); + } + fraction_part[i] = '\0'; + + if (fract != (char **)0) + *fract = fraction_part; + + return integral_part; +} +#endif + +/* for %d and friends, it puts in holder + * the representation with the right padding + */ +static void +number(p, d, base) + struct DATA *p; + unsigned long d; + int base; +{ + char *tmp, *t; + long sd; + int flags; + + /* An explicit precision turns off the zero-padding flag. */ + if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT)) + p->flags &= ~PF_ZEROPAD; + + sd = d; /* signed for ' ' padding in base 10 */ + flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; + + tmp = fmtulong (d, base, intbuf, sizeof(intbuf), flags); + t = 0; + if ((p->flags & PF_THOUSANDS)) + { + GETLOCALEDATA(decpoint, thoussep, grouping); + if (grouping && (t = groupnum (tmp))) + tmp = t; + } + + p->width -= strlen(tmp); + PAD_RIGHT(p); + + if ((p->flags & PF_DOT) && p->precision > 0) + { + p->precision -= strlen(tmp); + PAD_ZERO(p); + } + + switch (base) + { + case 10: + PUT_PLUS(sd, p, 0); + PUT_SPACE(sd, p, 0); + break; + case 8: + if (p->flags & PF_ALTFORM) + PUT_CHAR('0', p); + break; + case 16: + if (p->flags & PF_ALTFORM) + { + PUT_CHAR('0', p); + PUT_CHAR(*p->pf, p); + } + break; + } + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + PAD_LEFT(p); + FREE (t); +} + +#ifdef HAVE_LONG_LONG +/* + * identical to number() but works for `long long' + */ +static void +lnumber(p, d, base) + struct DATA *p; + unsigned long long d; + int base; +{ + char *tmp, *t; + long long sd; + int flags; + + /* An explicit precision turns off the zero-padding flag. */ + if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT)) + p->flags &= ~PF_ZEROPAD; + + sd = d; /* signed for ' ' padding in base 10 */ + flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; + + tmp = fmtullong (d, base, intbuf, sizeof(intbuf), flags); + t = 0; + if ((p->flags & PF_THOUSANDS)) + { + GETLOCALEDATA(decpoint, thoussep, grouping); + if (grouping && (t = groupnum (tmp))) + tmp = t; + } + + p->width -= strlen(tmp); + PAD_RIGHT(p); + + if ((p->flags & PF_DOT) && p->precision > 0) + { + p->precision -= strlen(tmp); + PAD_ZERO(p); + } + + switch (base) + { + case 10: + PUT_PLUS(sd, p, 0); + PUT_SPACE(sd, p, 0); + break; + case 8: + if (p->flags & PF_ALTFORM) + PUT_CHAR('0', p); + break; + case 16: + if (p->flags & PF_ALTFORM) + { + PUT_CHAR('0', p); + PUT_CHAR(*p->pf, p); + } + break; + } + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + PAD_LEFT(p); + FREE (t); +} +#endif + +static void +pointer(p, d) + struct DATA *p; + unsigned long d; +{ + char *tmp; + + tmp = fmtulong(d, 16, intbuf, sizeof(intbuf), 0); + p->width -= strlen(tmp); + PAD_RIGHT(p); + + /* prefix '0x' for pointers */ + PUT_CHAR('0', p); + PUT_CHAR('x', p); + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + PAD_LEFT(p); +} + +/* %s strings */ +static void +strings(p, tmp) + struct DATA *p; + char *tmp; +{ + size_t len; + + len = strlen(tmp); + if (p->precision != NOT_FOUND) /* the smallest number */ + len = (len < p->precision ? len : p->precision); + p->width -= len; + + PUT_STRING (tmp, len, p); +} + +#if HANDLE_MULTIBYTE +/* %ls wide-character strings */ +static void +wstrings(p, tmp) + struct DATA *p; + wchar_t *tmp; +{ + size_t len; + mbstate_t mbs; + char *os; + const wchar_t *ws; + + memset (&mbs, '\0', sizeof (mbstate_t)); + ws = (const wchar_t *)tmp; + + os = (char *)NULL; + if (p->precision != NOT_FOUND) + { + os = (char *)xmalloc (p->precision + 1); + len = wcsrtombs (os, &ws, p->precision, &mbs); + } + else + { + len = wcsrtombs (NULL, &ws, 0, &mbs); + if (len != (size_t)-1) + { + memset (&mbs, '\0', sizeof (mbstate_t)); + os = (char *)xmalloc (len + 1); + (void)wcsrtombs (os, &ws, len + 1, &mbs); + } + } + if (len == (size_t)-1) + { + /* invalid multibyte sequence; bail now. */ + FREE (os); + return; + } + + p->width -= len; + PUT_STRING (os, len, p); + free (os); +} + +static void +wchars (p, wc) + struct DATA *p; + wint_t wc; +{ + char *lbuf, *l; + mbstate_t mbs; + size_t len; + + lbuf = (char *)malloc (MB_CUR_MAX+1); + if (lbuf == 0) + return; + memset (&mbs, '\0', sizeof (mbstate_t)); + len = wcrtomb (lbuf, wc, &mbs); + if (len == (size_t)-1) + /* conversion failed; bail now. */ + return; + p->width -= len; + l = lbuf; + PUT_STRING (l, len, p); + free (lbuf); +} +#endif /* HANDLE_MULTIBYTE */ + +#ifdef FLOATING_POINT + +#ifndef HAVE_ISINF_IN_LIBC +/* Half-assed versions, since we don't want to link with libm. */ +static int +isinf(d) + double d; +{ +#ifdef DBL_MAX + if (d < DBL_MIN) + return -1; + else if (d > DBL_MAX) + return 1; + else +#endif + return 0; +} +#endif + +#ifndef HAVE_ISNAN_IN_LIBC +static int +isnan(d) + double d; +{ + return 0; +} +#endif + +/* Check for [+-]infinity and NaN. If MODE == 1, we check for Infinity, else + (mode == 2) we check for NaN. This does the necessary printing. Returns + 1 if Inf or Nan, 0 if not. */ +static int +chkinfnan(p, d, mode) + struct DATA *p; + double d; + int mode; /* == 1 for inf, == 2 for nan */ +{ + int i; + char *tmp; + char *big, *small; + + i = (mode == 1) ? isinf(d) : isnan(d); + if (i == 0) + return 0; + big = (mode == 1) ? "INF" : "NAN"; + small = (mode == 1) ? "inf" : "nan"; + + tmp = (*p->pf == 'F' || *p->pf == 'G' || *p->pf == 'E') ? big : small; + + if (i < 0) + PUT_CHAR('-', p); + + while (*tmp) + { + PUT_CHAR (*tmp, p); + tmp++; + } + + return 1; +} + +/* %f %F %g %G floating point representation */ +static void +floating(p, d) + struct DATA *p; + double d; +{ + char *tmp, *tmp2, *t; + int i; + + if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); + d = ROUND(d, p); + tmp = dtoa(d, p->precision, &tmp2); + t = 0; + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - + strlen(tmp) - p->precision - 1; + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); + + while (*tmp) + { + PUT_CHAR(*tmp, p); /* the integral */ + tmp++; + } + FREE (t); + + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* put the '.' */ + + if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) + /* smash the trailing zeros unless altform */ + for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) + tmp2[i] = '\0'; + + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + + PAD_LEFT(p); +} + +/* %e %E %g %G exponent representation */ +static void +exponent(p, d) + struct DATA *p; + double d; +{ + char *tmp, *tmp2; + int j, i; + + if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); + j = log_10(d); + d = d / pow_10(j); /* get the Mantissa */ + d = ROUND(d, p); + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', + * 1 for '+|-', 2 for 'exp' */ + /* calculate how much padding need */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - p->precision - 6; + + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* the '.' */ + + if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) + /* smash the trailing zeros unless altform */ + for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) + tmp2[i] = '\0'; + + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + + /* the exponent put the 'e|E' */ + if (*p->pf == 'g' || *p->pf == 'e') + PUT_CHAR('e', p); + else + PUT_CHAR('E', p); + + /* the sign of the exp */ + if (j >= 0) + PUT_CHAR('+', p); + else + { + PUT_CHAR('-', p); + j = -j; + } + + tmp = itoa(j); + /* pad out to at least two spaces. pad with `0' if the exponent is a + single digit. */ + if (j <= 9) + PUT_CHAR('0', p); + + /* the exponent */ + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + PAD_LEFT(p); +} +#endif + +/* Return a new string with the digits in S grouped according to the locale's + grouping info and thousands separator. If no grouping should be performed, + this returns NULL; the caller needs to check for it. */ +static char * +groupnum (s) + char *s; +{ + char *se, *ret, *re, *g; + int len, slen; + + if (grouping == 0 || *grouping <= 0 || *grouping == CHAR_MAX) + return ((char *)NULL); + + /* find min grouping to size returned string */ + for (len = *grouping, g = grouping; *g; g++) + if (*g > 0 && *g < len) + len = *g; + + slen = strlen (s); + len = slen / len + 1; + ret = (char *)xmalloc (slen + len + 1); + re = ret + slen + len; + *re = '\0'; + + g = grouping; + se = s + slen; + len = *g; + + while (se > s) + { + *--re = *--se; + + /* handle `-' inserted by numtoa() and the fmtu* family here. */ + if (se > s && se[-1] == '-') + continue; + + /* begin new group. */ + if (--len == 0 && se > s) + { + *--re = thoussep; + len = *++g; /* was g++, but that uses first char twice (glibc bug, too) */ + if (*g == '\0') + len = *--g; /* use previous grouping */ + else if (*g == CHAR_MAX) + { + do + *--re = *--se; + while (se > s); + break; + } + } + } + + if (re > ret) +#ifdef HAVE_MEMMOVE + memmove (ret, re, strlen (re) + 1); +#else + strcpy (ret, re); +#endif + + return ret; +} + +/* initialize the conversion specifiers */ +static void +init_conv_flag (p) + struct DATA *p; +{ + p->flags &= PF_ALLOCBUF; /* preserve PF_ALLOCBUF flag */ + p->precision = p->width = NOT_FOUND; + p->justify = NOT_FOUND; + p->pad = ' '; +} + +static void +init_data (p, string, length, format, mode) + struct DATA *p; + char *string; + size_t length; + const char *format; + int mode; +{ + p->length = length - 1; /* leave room for '\0' */ + p->holder = p->base = string; + p->pf = format; + p->counter = 0; + p->flags = (mode == PFM_AS) ? PF_ALLOCBUF : 0; +} + +static int +#if defined (__STDC__) +vsnprintf_internal(struct DATA *data, char *string, size_t length, const char *format, va_list args) +#else +vsnprintf_internal(data, string, length, format, args) + struct DATA *data; + char *string; + size_t length; + const char *format; + va_list args; +#endif +{ + double d; /* temporary holder */ +#ifdef HAVE_LONG_DOUBLE + long double ld; /* for later */ +#endif + unsigned long ul; +#ifdef HAVE_LONG_LONG + unsigned long long ull; +#endif + int state, i, c, n; + char *s; +#if HANDLE_MULTIBYTE + wchar_t *ws; + wint_t wc; +#endif + const char *convstart; + int negprec; + + /* Sanity check, the string length must be >= 0. C99 actually says that + LENGTH can be zero here, in the case of snprintf/vsnprintf (it's never + 0 in the case of asprintf/vasprintf), and the return value is the number + of characters that would have been written. */ + if (length < 0) + return -1; + + if (format == 0) + return 0; + + /* Reset these for each call because the locale might have changed. */ + decpoint = thoussep = 0; + grouping = 0; + + negprec = 0; + for (; c = *(data->pf); data->pf++) + { + if (c != '%') + { + PUT_CHAR (c, data); + continue; + } + + convstart = data->pf; + init_conv_flag (data); /* initialise format flags */ + + state = 1; + for (state = 1; state && *data->pf; ) + { + c = *(++data->pf); + /* fmtend = data->pf */ +#if defined (FLOATING_POINT) && defined (HAVE_LONG_DOUBLE) + if (data->flags & PF_LONGDBL) + { + switch (c) + { + case 'f': case 'F': + case 'e': case 'E': + case 'g': case 'G': +# ifdef HAVE_PRINTF_A_FORMAT + case 'a': case 'A': +# endif + STAR_ARGS (data); + ld = GETLDOUBLE (data); + ldfallback (data, convstart, data->pf, ld); + goto conv_break; + } + } +#endif /* FLOATING_POINT && HAVE_LONG_DOUBLE */ + + switch (c) + { + /* Parse format flags */ + case '\0': /* a NULL here ? ? bail out */ + *data->holder = '\0'; + return data->counter; + break; + case '#': + data->flags |= PF_ALTFORM; + continue; + case '0': + data->flags |= PF_ZEROPAD; + data->pad = '0'; + continue; + case '*': + if (data->flags & PF_DOT) + data->flags |= PF_STAR_P; + else + data->flags |= PF_STAR_W; + continue; + case '-': + if ((data->flags & PF_DOT) == 0) + { + data->flags |= PF_LADJUST; + data->justify = LEFT; + } + else + negprec = 1; + continue; + case ' ': + if ((data->flags & PF_PLUS) == 0) + data->flags |= PF_SPACE; + continue; + case '+': + if ((data->flags & PF_DOT) == 0) + { + data->flags |= PF_PLUS; + data->justify = RIGHT; + } + continue; + case '\'': + data->flags |= PF_THOUSANDS; + continue; + + case '1': case '2': case '3': + case '4': case '5': case '6': + case '7': case '8': case '9': + n = 0; + do + { + n = n * 10 + TODIGIT(c); + c = *(++data->pf); + } + while (DIGIT(c)); + data->pf--; /* went too far */ + if (n < 0) + n = 0; + if (data->flags & PF_DOT) + data->precision = negprec ? NOT_FOUND : n; + else + data->width = n; + continue; + + /* optional precision */ + case '.': + data->flags |= PF_DOT; + data->precision = 0; + continue; + + /* length modifiers */ + case 'h': + data->flags |= (data->flags & PF_SHORTINT) ? PF_SIGNEDCHAR : PF_SHORTINT; + continue; + case 'l': + data->flags |= (data->flags & PF_LONGINT) ? PF_LONGLONG : PF_LONGINT; + continue; + case 'L': + data->flags |= PF_LONGDBL; + continue; + case 'q': + data->flags |= PF_LONGLONG; + continue; + case 'j': + data->flags |= PF_INTMAX_T; + SET_SIZE_FLAGS(data, intmax_t); + continue; + case 'z': + data->flags |= PF_SIZE_T; + SET_SIZE_FLAGS(data, size_t); + continue; + case 't': + data->flags |= PF_PTRDIFF_T; + SET_SIZE_FLAGS(data, ptrdiff_t); + continue; + + /* Conversion specifiers */ +#ifdef FLOATING_POINT + case 'f': /* float, double */ + case 'F': + STAR_ARGS(data); + d = GETDOUBLE(data); + floating(data, d); +conv_break: + state = 0; + break; + case 'g': + case 'G': + STAR_ARGS(data); + d = GETDOUBLE(data); + if (d == 0) /* XXX */ + { + if (data->precision == NOT_FOUND) + data->precision = 0; + floating (data, d); + } + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively + * else use %e|%E + */ + else + { + i = log_10(d); + DEF_PREC(data); + if (-4 < i && i < data->precision) + { + /* reset precision */ + data->precision -= i + 1; + floating(data, d); + } + else + { + /* reduce precision by 1 because of leading digit before + decimal point in e format. */ + data->precision--; + exponent(data, d); + } + } + state = 0; + break; + case 'e': + case 'E': /* Exponent double */ + STAR_ARGS(data); + d = GETDOUBLE(data); + exponent(data, d); + state = 0; + break; +# ifdef HAVE_PRINTF_A_FORMAT + case 'a': + case 'A': + STAR_ARGS(data); + d = GETDOUBLE(data); + dfallback(data, convstart, data->pf, d); + state = 0; + break; +# endif /* HAVE_PRINTF_A_FORMAT */ +#endif /* FLOATING_POINT */ + case 'U': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ + case 'u': + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (unsigned long long); + lnumber(data, ull, 10); + } + else +#endif + { + ul = GETUNSIGNED(data); + number(data, ul, 10); + } + state = 0; + break; + case 'D': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ + case 'd': /* decimal */ + case 'i': + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (long long); + lnumber(data, ull, 10); + } + else +#endif + { + ul = GETSIGNED(data); + number(data, ul, 10); + } + state = 0; + break; + case 'o': /* octal */ + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (unsigned long long); + lnumber(data, ull, 8); + } + else +#endif + { + ul = GETUNSIGNED(data); + number(data, ul, 8); + } + state = 0; + break; + case 'x': + case 'X': /* hexadecimal */ + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (unsigned long long); + lnumber(data, ull, 16); + } + else +#endif + { + ul = GETUNSIGNED(data); + number(data, ul, 16); + } + state = 0; + break; + case 'p': + STAR_ARGS(data); + ul = (unsigned long)GETARG (void *); + pointer(data, ul); + state = 0; + break; +#if HANDLE_MULTIBYTE + case 'C': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ +#endif + case 'c': /* character */ + STAR_ARGS(data); +#if HANDLE_MULTIBYTE + if (data->flags & PF_LONGINT) + { + wc = GETARG (wint_t); + wchars (data, wc); + } + else +#endif + { + ul = GETARG (int); + PUT_CHAR(ul, data); + } + state = 0; + break; +#if HANDLE_MULTIBYTE + case 'S': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ +#endif + case 's': /* string */ + STAR_ARGS(data); +#if HANDLE_MULTIBYTE + if (data->flags & PF_LONGINT) + { + ws = GETARG (wchar_t *); + wstrings (data, ws); + } + else +#endif + { + s = GETARG (char *); + strings(data, s); + } + state = 0; + break; + case 'n': +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + *(GETARG (long long *)) = data->counter; + else +#endif + if (data->flags & PF_LONGINT) + *(GETARG (long *)) = data->counter; + else if (data->flags & PF_SHORTINT) + *(GETARG (short *)) = data->counter; + else + *(GETARG (int *)) = data->counter; + state = 0; + break; + case '%': /* nothing just % */ + PUT_CHAR('%', data); + state = 0; + break; + default: + /* is this an error ? maybe bail out */ + state = 0; + break; + } /* end switch */ + } /* end of `%' for loop */ + } /* end of format string for loop */ + + if (data->length >= 0) + *data->holder = '\0'; /* the end ye ! */ + + return data->counter; +} + +#if defined (FLOATING_POINT) && defined (HAVE_LONG_DOUBLE) +/* + * Printing floating point numbers accurately is an art. I'm not good + * at it. Fall back to sprintf for long double formats. + */ +static void +ldfallback (data, fs, fe, ld) + struct DATA *data; + const char *fs, *fe; + long double ld; +{ + register char *x; + char fmtbuf[FALLBACK_FMTSIZE], *obuf; + int fl; + + fl = LFALLBACK_BASE + (data->precision < 6 ? 6 : data->precision) + 2; + obuf = (char *)xmalloc (fl); + fl = fe - fs + 1; + strncpy (fmtbuf, fs, fl); + fmtbuf[fl] = '\0'; + + if ((data->flags & PF_STAR_W) && (data->flags & PF_STAR_P)) + sprintf (obuf, fmtbuf, data->width, data->precision, ld); + else if (data->flags & PF_STAR_W) + sprintf (obuf, fmtbuf, data->width, ld); + else if (data->flags & PF_STAR_P) + sprintf (obuf, fmtbuf, data->precision, ld); + else + sprintf (obuf, fmtbuf, ld); + + for (x = obuf; *x; x++) + PUT_CHAR (*x, data); + xfree (obuf); +} +#endif /* FLOATING_POINT && HAVE_LONG_DOUBLE */ + +#ifdef FLOATING_POINT +/* Used for %a, %A if the libc printf supports them. */ +static void +dfallback (data, fs, fe, d) + struct DATA *data; + const char *fs, *fe; + double d; +{ + register char *x; + char fmtbuf[FALLBACK_FMTSIZE], obuf[FALLBACK_BASE]; + int fl; + + fl = fe - fs + 1; + strncpy (fmtbuf, fs, fl); + fmtbuf[fl] = '\0'; + + if ((data->flags & PF_STAR_W) && (data->flags & PF_STAR_P)) + sprintf (obuf, fmtbuf, data->width, data->precision, d); + else if (data->flags & PF_STAR_W) + sprintf (obuf, fmtbuf, data->width, d); + else if (data->flags & PF_STAR_P) + sprintf (obuf, fmtbuf, data->precision, d); + else + sprintf (obuf, fmtbuf, d); + + for (x = obuf; *x; x++) + PUT_CHAR (*x, data); +} +#endif /* FLOATING_POINT */ + +#ifndef HAVE_SNPRINTF + +int +#if defined (__STDC__) +vsnprintf(char *string, size_t length, const char *format, va_list args) +#else +vsnprintf(string, length, format, args) + char *string; + size_t length; + const char *format; + va_list args; +#endif +{ + struct DATA data; + + if (string == 0 && length != 0) + return 0; + init_data (&data, string, length, format, PFM_SN); + return (vsnprintf_internal(&data, string, length, format, args)); +} + +int +#if defined(PREFER_STDARG) +snprintf(char *string, size_t length, const char * format, ...) +#else +snprintf(string, length, format, va_alist) + char *string; + size_t length; + const char *format; + va_dcl +#endif +{ + struct DATA data; + int rval; + va_list args; + + SH_VA_START(args, format); + + if (string == 0 && length != 0) + return 0; + init_data (&data, string, length, format, PFM_SN); + rval = vsnprintf_internal (&data, string, length, format, args); + + va_end(args); + + return rval; +} + +#endif /* HAVE_SNPRINTF */ + +#ifndef HAVE_ASPRINTF + +int +#if defined (__STDC__) +vasprintf(char **stringp, const char *format, va_list args) +#else +vasprintf(stringp, format, args) + char **stringp; + const char *format; + va_list args; +#endif +{ + struct DATA data; + char *string; + int r; + + string = (char *)xmalloc(ASBUFSIZE); + init_data (&data, string, ASBUFSIZE, format, PFM_AS); + r = vsnprintf_internal(&data, string, ASBUFSIZE, format, args); + *stringp = data.base; /* not string in case reallocated */ + return r; +} + +int +#if defined(PREFER_STDARG) +asprintf(char **stringp, const char * format, ...) +#else +asprintf(stringp, format, va_alist) + char **stringp; + const char *format; + va_dcl +#endif +{ + int rval; + va_list args; + + SH_VA_START(args, format); + + rval = vasprintf (stringp, format, args); + + va_end(args); + + return rval; +} + +#endif + +#endif + +#ifdef DRIVER + +static void +memory_error_and_abort () +{ + write (2, "out of virtual memory\n", 22); + abort (); +} + +static void * +xmalloc(bytes) + size_t bytes; +{ + void *ret; + + ret = malloc(bytes); + if (ret == 0) + memory_error_and_abort (); + return ret; +} + +static void * +xrealloc (pointer, bytes) + void *pointer; + size_t bytes; +{ + void *ret; + + ret = pointer ? realloc(pointer, bytes) : malloc(bytes); + if (ret == 0) + memory_error_and_abort (); + return ret; +} + +static void +xfree(x) + void *x; +{ + if (x) + free (x); +} + +/* set of small tests for snprintf() */ +main() +{ + char holder[100]; + char *h; + int i, si, ai; + +#ifdef HAVE_LOCALE_H + setlocale(LC_ALL, ""); +#endif + +#if 1 + si = snprintf((char *)NULL, 0, "abcde\n"); + printf("snprintf returns %d with NULL first argument and size of 0\n", si); + si = snprintf(holder, 0, "abcde\n"); + printf("snprintf returns %d with non-NULL first argument and size of 0\n", si); + si = snprintf((char *)NULL, 16, "abcde\n"); + printf("snprintf returns %d with NULL first argument and non-zero size\n", si); + +/* + printf("Suite of test for snprintf:\n"); + printf("a_format\n"); + printf("printf() format\n"); + printf("snprintf() format\n\n"); +*/ +/* Checking the field widths */ + + printf("/%%ld %%ld/, 336, 336\n"); + snprintf(holder, sizeof holder, "/%ld %ld/\n", 336, 336); + asprintf(&h, "/%ld %ld/\n", 336, 336); + printf("/%ld %ld/\n", 336, 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%d/, 336\n"); + snprintf(holder, sizeof holder, "/%d/\n", 336); + asprintf(&h, "/%d/\n", 336); + printf("/%d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%2d/, 336\n"); + snprintf(holder, sizeof holder, "/%2d/\n", 336); + asprintf(&h, "/%2d/\n", 336); + printf("/%2d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%10d/, 336\n"); + snprintf(holder, sizeof holder, "/%10d/\n", 336); + asprintf(&h, "/%10d/\n", 336); + printf("/%10d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%-10d/, 336\n"); + snprintf(holder, sizeof holder, "/%-10d/\n", 336); + asprintf(&h, "/%-10d/\n", 336); + printf("/%-10d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + +/* floating points */ + + printf("/%%f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%f/\n", 1234.56); + asprintf(&h, "/%f/\n", 1234.56); + printf("/%f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%e/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%e/\n", 1234.56); + asprintf(&h, "/%e/\n", 1234.56); + printf("/%e/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%4.2f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%4.2f/\n", 1234.56); + asprintf(&h, "/%4.2f/\n", 1234.56); + printf("/%4.2f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%3.1f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%3.1f/\n", 1234.56); + asprintf(&h, "/%3.1f/\n", 1234.56); + printf("/%3.1f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%10.3f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%10.3f/\n", 1234.56); + asprintf(&h, "/%10.3f/\n", 1234.56); + printf("/%10.3f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%10.3e/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%10.3e/\n", 1234.56); + asprintf(&h, "/%10.3e/\n", 1234.56); + printf("/%10.3e/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%+4.2f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%+4.2f/\n", 1234.56); + asprintf(&h, "/%+4.2f/\n", 1234.56); + printf("/%+4.2f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%010.2f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%010.2f/\n", 1234.56); + asprintf(&h, "/%010.2f/\n", 1234.56); + printf("/%010.2f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + +#define BLURB "Outstanding acting !" +/* strings precisions */ + + printf("/%%2s/, \"%s\"\n", BLURB); + snprintf(holder, sizeof holder, "/%2s/\n", BLURB); + asprintf(&h, "/%2s/\n", BLURB); + printf("/%2s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%22s/ %s\n", BLURB); + snprintf(holder, sizeof holder, "/%22s/\n", BLURB); + asprintf(&h, "/%22s/\n", BLURB); + printf("/%22s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%22.5s/ %s\n", BLURB); + snprintf(holder, sizeof holder, "/%22.5s/\n", BLURB); + asprintf(&h, "/%22.5s/\n", BLURB); + printf("/%22.5s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%-22.5s/ %s\n", BLURB); + snprintf(holder, sizeof holder, "/%-22.5s/\n", BLURB); + asprintf(&h, "/%-22.5s/\n", BLURB); + printf("/%-22.5s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + +/* see some flags */ + + printf("%%x %%X %%#x, 31, 31, 31\n"); + snprintf(holder, sizeof holder, "%x %X %#x\n", 31, 31, 31); + asprintf(&h, "%x %X %#x\n", 31, 31, 31); + printf("%x %X %#x\n", 31, 31, 31); + printf("%s", holder); + printf("%s\n", h); + + printf("**%%d**%% d**%% d**, 42, 42, -42\n"); + snprintf(holder, sizeof holder, "**%d**% d**% d**\n", 42, 42, -42); + asprintf(&h, "**%d**% d**% d**\n", 42, 42, -42); + printf("**%d**% d**% d**\n", 42, 42, -42); + printf("%s", holder); + printf("%s\n", h); + +/* other flags */ + + printf("/%%g/, 31.4\n"); + snprintf(holder, sizeof holder, "/%g/\n", 31.4); + asprintf(&h, "/%g/\n", 31.4); + printf("/%g/\n", 31.4); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.6g/, 31.4\n"); + snprintf(holder, sizeof holder, "/%.6g/\n", 31.4); + asprintf(&h, "/%.6g/\n", 31.4); + printf("/%.6g/\n", 31.4); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.1G/, 31.4\n"); + snprintf(holder, sizeof holder, "/%.1G/\n", 31.4); + asprintf(&h, "/%.1G/\n", 31.4); + printf("/%.1G/\n", 31.4); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.1G/, 3100000000.4\n"); + snprintf(holder, sizeof holder, "/%.1G/\n", 3100000000.4); + asprintf(&h, "/%.1G/\n", 3100000000.4); + printf("/%.1G/\n", 3100000000.4); + printf("%s", holder); + printf("%s\n", h); + + printf("abc%%n\n"); + printf("abc%n", &i); printf("%d\n", i); + snprintf(holder, sizeof holder, "abc%n", &i); + printf("%s", holder); printf("%d\n\n", i); + asprintf(&h, "abc%n", &i); + printf("%s", h); printf("%d\n\n", i); + + printf("%%*.*s --> 10.10\n"); + snprintf(holder, sizeof holder, "%*.*s\n", 10, 10, BLURB); + asprintf(&h, "%*.*s\n", 10, 10, BLURB); + printf("%*.*s\n", 10, 10, BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("%%%%%%%%\n"); + snprintf(holder, sizeof holder, "%%%%\n"); + asprintf(&h, "%%%%\n"); + printf("%%%%\n"); + printf("%s", holder); + printf("%s\n", h); + +#define BIG "Hello this is a too big string for the buffer" +/* printf("A buffer to small of 10, trying to put this:\n");*/ + printf("<%%>, %s\n", BIG); + i = snprintf(holder, 10, "%s\n", BIG); + i = asprintf(&h, "%s", BIG); + printf("<%s>\n", BIG); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); + + printf ("<%%p> vsnprintf\n"); + i = snprintf(holder, 100, "%p", vsnprintf); + i = asprintf(&h, "%p", vsnprintf); + printf("<%p>\n", vsnprintf); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); + + printf ("<%%lu> LONG_MAX+1\n"); + i = snprintf(holder, 100, "%lu", (unsigned long)(LONG_MAX)+1); + i = asprintf(&h, "%lu", (unsigned long)(LONG_MAX)+1); + printf("<%lu>\n", (unsigned long)(LONG_MAX)+1); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); + +#ifdef HAVE_LONG_LONG + printf ("<%%llu> LLONG_MAX+1\n"); + i = snprintf(holder, 100, "%llu", (unsigned long long)(LLONG_MAX)+1); + i = asprintf(&h, "%llu", (unsigned long long)(LLONG_MAX)+1); + printf("<%llu>\n", (unsigned long long)(LLONG_MAX)+1); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); +#endif + +#ifdef HAVE_LONG_DOUBLE + printf ("<%%6.2LE> 42.42\n"); + i = snprintf(holder, 100, "%6.2LE", (long double)42.42); + i = asprintf(&h, "%6.2LE", (long double)42.42); + printf ("<%6.2LE>\n", (long double)42.42); + printf ("<%s>\n", holder); + printf ("<%s>\n\n", h); +#endif + +#ifdef HAVE_PRINTF_A_FORMAT + printf ("<%%6.2A> 42.42\n"); + i = snprintf(holder, 100, "%6.2A", 42.42); + i = asprintf(&h, "%6.2A", 42.42); + printf ("<%6.2A>\n", 42.42); + printf ("<%s>\n", holder); + printf ("<%s>\n\n", h); + + printf ("<%%6.2LA> 42.42\n"); + i = snprintf(holder, 100, "%6.2LA", (long double)42.42); + i = asprintf(&h, "%6.2LA", (long double)42.42); + printf ("<%6.2LA>\n", (long double)42.42); + printf ("<%s>\n", holder); + printf ("<%s>\n\n", h); +#endif + + printf ("<%%.10240f> DBL_MAX\n"); + si = snprintf(holder, 100, "%.10240f", DBL_MAX); + ai = asprintf(&h, "%.10240f", DBL_MAX); + printf ("<%.10240f>\n", DBL_MAX); + printf ("<%d> <%s>\n", si, holder); + printf ("<%d> <%s>\n\n", ai, h); + + printf ("<%%.10240Lf> LDBL_MAX\n"); + si = snprintf(holder, 100, "%.10240Lf", (long double)LDBL_MAX); + ai = asprintf(&h, "%.10240Lf", (long double)LDBL_MAX); + printf ("<%.10240Lf>\n", (long double)LDBL_MAX); + printf ("<%d> <%s>\n", si, holder); + printf ("<%d> <%s>\n\n", ai, h); + + /* huh? */ + printf("/%%g/, 421.2345\n"); + snprintf(holder, sizeof holder, "/%g/\n", 421.2345); + asprintf(&h, "/%g/\n", 421.2345); + printf("/%g/\n", 421.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%g/, 4214.2345\n"); + snprintf(holder, sizeof holder, "/%g/\n", 4214.2345); + asprintf(&h, "/%g/\n", 4214.2345); + printf("/%g/\n", 4214.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.5g/, 4214.2345\n"); + snprintf(holder, sizeof holder, "/%.5g/\n", 4214.2345); + asprintf(&h, "/%.5g/\n", 4214.2345); + printf("/%.5g/\n", 4214.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.4g/, 4214.2345\n"); + snprintf(holder, sizeof holder, "/%.4g/\n", 4214.2345); + asprintf(&h, "/%.4g/\n", 4214.2345); + printf("/%.4g/\n", 4214.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'ld %%'ld/, 12345, 1234567\n"); + snprintf(holder, sizeof holder, "/%'ld %'ld/\n", 12345, 1234567); + asprintf(&h, "/%'ld %'ld/\n", 12345, 1234567); + printf("/%'ld %'ld/\n", 12345, 1234567); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'ld %%'ld/, 336, 3336\n"); + snprintf(holder, sizeof holder, "/%'ld %'ld/\n", 336, 3336); + asprintf(&h, "/%'ld %'ld/\n", 336, 3336); + printf("/%'ld %'ld/\n", 336, 3336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'ld %%'ld/, -42786, -142786\n"); + snprintf(holder, sizeof holder, "/%'ld %'ld/\n", -42786, -142786); + asprintf(&h, "/%'ld %'ld/\n", -42786, -142786); + printf("/%'ld %'ld/\n", -42786, -142786); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'f %%'f/, 421.2345, 421234.56789\n"); + snprintf(holder, sizeof holder, "/%'f %'f/\n", 421.2345, 421234.56789); + asprintf(&h, "/%'f %'f/\n", 421.2345, 421234.56789); + printf("/%'f %'f/\n", 421.2345, 421234.56789); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'f %%'f/, -421.2345, -421234.56789\n"); + snprintf(holder, sizeof holder, "/%'f %'f/\n", -421.2345, -421234.56789); + asprintf(&h, "/%'f %'f/\n", -421.2345, -421234.56789); + printf("/%'f %'f/\n", -421.2345, -421234.56789); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'g %%'g/, 421.2345, 421234.56789\n"); + snprintf(holder, sizeof holder, "/%'g %'g/\n", 421.2345, 421234.56789); + asprintf(&h, "/%'g %'g/\n", 421.2345, 421234.56789); + printf("/%'g %'g/\n", 421.2345, 421234.56789); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'g %%'g/, -421.2345, -421234.56789\n"); + snprintf(holder, sizeof holder, "/%'g %'g/\n", -421.2345, -421234.56789); + asprintf(&h, "/%'g %'g/\n", -421.2345, -421234.56789); + printf("/%'g %'g/\n", -421.2345, -421234.56789); + printf("%s", holder); + printf("%s\n", h); +#endif + + printf("/%%'g/, 4213455.8392\n"); + snprintf(holder, sizeof holder, "/%'g/\n", 4213455.8392); + asprintf(&h, "/%'g/\n", 4213455.8392); + printf("/%'g/\n", 4213455.8392); + printf("%s", holder); + printf("%s\n", h); + + exit (0); +} +#endif diff --git a/lib/sh/snprintf.c~ b/lib/sh/snprintf.c~ new file mode 100644 index 000000000..5ab2b344d --- /dev/null +++ b/lib/sh/snprintf.c~ @@ -0,0 +1,2159 @@ +/* + build a test version with + gcc -g -DDRIVER -I../.. -I../../include -o test-snprintf snprintf.c fmtu*long.o +*/ + +/* + Unix snprintf implementation. + derived from inetutils/libinetutils/snprintf.c Version 1.1 + + Copyright (C) 2001 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General License for more details. + + You should have received a copy of the GNU General License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + Revision History: + + 1.1: + * added changes from Miles Bader + * corrected a bug with %f + * added support for %#g + * added more comments :-) + 1.0: + * supporting must ANSI syntaxic_sugars + 0.0: + * support %s %c %d + + THANKS(for the patches and ideas): + Miles Bader + Cyrille Rustom + Jacek Slabocewiz + Mike Parker(mouse) + +*/ + +/* + * Currently doesn't handle (and bash/readline doesn't use): + * * *M$ width, precision specifications + * * %N$ numbered argument conversions + * * inf, nan floating values imperfect (if isinf(), isnan() not in libc) + * * support for `F' is imperfect with ldfallback(), since underlying + * printf may not handle it -- should ideally have another autoconf test + */ + +#define FLOATING_POINT + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if defined(DEBUG) +# undef HAVE_SNPRINTF +# undef HAVE_ASPRINTF +#endif + +#if defined(DRIVER) && !defined(HAVE_CONFIG_H) +#define HAVE_LONG_LONG +#define HAVE_LONG_DOUBLE +#ifdef __linux__ +#define HAVE_PRINTF_A_FORMAT +#endif +#define HAVE_ISINF_IN_LIBC +#define HAVE_ISNAN_IN_LIBC +#define PREFER_STDARG +#define HAVE_STRINGIZE +#define HAVE_LIMITS_H +#define HAVE_STDDEF_H +#define HAVE_LOCALE_H +#define intmax_t long +#endif + +#if !defined (HAVE_SNPRINTF) || !defined (HAVE_ASPRINTF) + +#include + +#if defined(PREFER_STDARG) +# include +#else +# include +#endif + +#ifdef HAVE_LIMITS_H +# include +#endif +#include +#ifdef HAVE_STDDEF_H +# include +#endif +#include + +#ifdef HAVE_STDINT_H +# include +#endif + +#ifdef FLOATING_POINT +# include /* for manifest constants */ +# include /* for sprintf */ +#endif + +#include + +#ifdef HAVE_LOCALE_H +# include +#endif + +#include "stdc.h" +#include + +#ifndef DRIVER +# include "shell.h" +#else +# define FL_PREFIX 0x01 /* add 0x, 0X, or 0 prefix as appropriate */ +# define FL_ADDBASE 0x02 /* add base# prefix to converted value */ +# define FL_HEXUPPER 0x04 /* use uppercase when converting to hex */ +# define FL_UNSIGNED 0x08 /* don't add any sign */ +extern char *fmtulong __P((unsigned long int, int, char *, size_t, int)); +extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int)); +#endif + +#ifndef FREE +# define FREE(x) if (x) free (x) +#endif + +/* Bound on length of the string representing an integer value of type T. + Subtract one for the sign bit if T is signed; + 302 / 1000 is log10 (2) rounded up; + add one for integer division truncation; + add one more for a minus sign if t is signed. */ +#define INT_STRLEN_BOUND(t) \ + ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \ + + 1 + TYPE_SIGNED (t)) + +/* conversion flags */ +#define PF_ALTFORM 0x00001 /* # */ +#define PF_HEXPREFIX 0x00002 /* 0[Xx] */ +#define PF_LADJUST 0x00004 /* - */ +#define PF_ZEROPAD 0x00008 /* 0 */ +#define PF_PLUS 0x00010 /* + */ +#define PF_SPACE 0x00020 /* ' ' */ +#define PF_THOUSANDS 0x00040 /* ' */ + +#define PF_DOT 0x00080 /* `.precision' */ +#define PF_STAR_P 0x00100 /* `*' after precision */ +#define PF_STAR_W 0x00200 /* `*' before or without precision */ + +/* length modifiers */ +#define PF_SIGNEDCHAR 0x00400 /* hh */ +#define PF_SHORTINT 0x00800 /* h */ +#define PF_LONGINT 0x01000 /* l */ +#define PF_LONGLONG 0x02000 /* ll */ +#define PF_LONGDBL 0x04000 /* L */ +#define PF_INTMAX_T 0x08000 /* j */ +#define PF_SIZE_T 0x10000 /* z */ +#define PF_PTRDIFF_T 0x20000 /* t */ + +#define PF_ALLOCBUF 0x40000 /* for asprintf, vasprintf */ + +#define PFM_SN 0x01 /* snprintf, vsnprintf */ +#define PFM_AS 0x02 /* asprintf, vasprintf */ + +#define ASBUFSIZE 128 + +#define x_digs "0123456789abcdef" +#define X_digs "0123456789ABCDEF" + +static char intbuf[INT_STRLEN_BOUND(unsigned long) + 1]; + +static int decpoint; +static int thoussep; +static char *grouping; + +/* + * For the FLOATING POINT FORMAT : + * the challenge was finding a way to + * manipulate the Real numbers without having + * to resort to mathematical function(it + * would require to link with -lm) and not + * going down to the bit pattern(not portable) + * + * so a number, a real is: + + real = integral + fraction + + integral = ... + a(2)*10^2 + a(1)*10^1 + a(0)*10^0 + fraction = b(1)*10^-1 + b(2)*10^-2 + ... + + where: + 0 <= a(i) => 9 + 0 <= b(i) => 9 + + from then it was simple math + */ + +/* + * size of the buffer for the integral part + * and the fraction part + */ +#define MAX_INT 99 + 1 /* 1 for the null */ +#define MAX_FRACT 307 + 1 + +/* + * These functions use static buffers to store the results, + * and so are not reentrant + */ +#define itoa(n) fmtulong(n, 10, intbuf, sizeof(intbuf), 0); +#define dtoa(n, p, f) numtoa(n, 10, p, f) + +#define SWAP_INT(a,b) {int t; t = (a); (a) = (b); (b) = t;} + +#define GETARG(type) (va_arg(args, type)) + +/* Macros that do proper sign extension and handle length modifiers. Used + for the integer conversion specifiers. */ +#define GETSIGNED(p) \ + (((p)->flags & PF_LONGINT) \ + ? GETARG (long) \ + : (((p)->flags & PF_SHORTINT) ? (long)(short)GETARG (int) \ + : (long)GETARG (int))) + +#define GETUNSIGNED(p) \ + (((p)->flags & PF_LONGINT) \ + ? GETARG (unsigned long) \ + : (((p)->flags & PF_SHORTINT) ? (unsigned long)(unsigned short)GETARG (int) \ + : (unsigned long)GETARG (unsigned int))) + + +#ifdef HAVE_LONG_DOUBLE +#define GETLDOUBLE(p) GETARG (long double) +#endif +#define GETDOUBLE(p) GETARG (double) + +#define SET_SIZE_FLAGS(p, type) \ + if (sizeof (type) > sizeof (int)) \ + (p)->flags |= PF_LONGINT; \ + if (sizeof (type) > sizeof (long)) \ + (p)->flags |= PF_LONGLONG; + +/* this struct holds everything we need */ +struct DATA +{ + int length; + char *base; /* needed for [v]asprintf */ + char *holder; + int counter; + const char *pf; + +/* FLAGS */ + int flags; + int justify; + int width, precision; + char pad; +}; + +/* the floating point stuff */ +#ifdef FLOATING_POINT +static double pow_10 __P((int)); +static int log_10 __P((double)); +static double integral __P((double, double *)); +static char *numtoa __P((double, int, int, char **)); +#endif + +static void init_data __P((struct DATA *, char *, size_t, const char *, int)); +static void init_conv_flag __P((struct DATA *)); + +/* for the format */ +#ifdef FLOATING_POINT +static void floating __P((struct DATA *, double)); +static void exponent __P((struct DATA *, double)); +#endif +static void number __P((struct DATA *, unsigned long, int)); +#ifdef HAVE_LONG_LONG +static void lnumber __P((struct DATA *, unsigned long long, int)); +#endif +static void pointer __P((struct DATA *, unsigned long)); +static void strings __P((struct DATA *, char *)); + +#ifdef FLOATING_POINT +# define FALLBACK_FMTSIZE 32 +# define FALLBACK_BASE 4096 +# define LFALLBACK_BASE 5120 +# ifdef HAVE_LONG_DOUBLE +static void ldfallback __P((struct DATA *, const char *, const char *, long double)); +# endif +static void dfallback __P((struct DATA *, const char *, const char *, double)); +#endif + +static char *groupnum __P((char *)); + +#ifdef DRIVER +static void memory_error_and_abort (); +static void *xmalloc __P((size_t)); +static void *xrealloc __P((void *, size_t)); +static void xfree __P((void *)); +#else +# include +#endif + +/* those are defines specific to snprintf to hopefully + * make the code clearer :-) + */ +#define RIGHT 1 +#define LEFT 0 +#define NOT_FOUND -1 +#define FOUND 1 +#define MAX_FIELD 15 + +/* round off to the precision */ +#define ROUND(d, p) \ + (d < 0.) ? \ + d - pow_10(-(p)->precision) * 0.5 : \ + d + pow_10(-(p)->precision) * 0.5 + +/* set default precision */ +#define DEF_PREC(p) \ + if ((p)->precision == NOT_FOUND) \ + (p)->precision = 6 + +/* put a char. increment the number of chars written even if we've exceeded + the vsnprintf/snprintf buffer size (for the return value) */ +#define PUT_CHAR(c, p) \ + do \ + { \ + if (((p)->flags & PF_ALLOCBUF) && ((p)->counter >= (p)->length - 1)) \ + { \ + (p)->length += ASBUFSIZE; \ + (p)->base = (char *)xrealloc((p)->base, (p)->length); \ + (p)->holder = (p)->base + (p)->counter; /* in case reallocated */ \ + } \ + if ((p)->counter < (p)->length) \ + *(p)->holder++ = (c); \ + (p)->counter++; \ + } \ + while (0) + +/* Output a string. P->WIDTH has already been adjusted for padding. */ +#define PUT_STRING(string, len, p) \ + do \ + { \ + PAD_RIGHT (p); \ + while ((len)-- > 0) \ + { \ + PUT_CHAR (*(string), (p)); \ + (string)++; \ + } \ + PAD_LEFT (p); \ + } \ + while (0) + +#define PUT_PLUS(d, p, zero) \ + if ((d) > zero && (p)->justify == RIGHT) \ + PUT_CHAR('+', p) + +#define PUT_SPACE(d, p, zero) \ + if (((p)->flags & PF_SPACE) && (d) > zero) \ + PUT_CHAR(' ', p) + +/* pad right */ +#define PAD_RIGHT(p) \ + if ((p)->width > 0 && (p)->justify != LEFT) \ + for (; (p)->width > 0; (p)->width--) \ + PUT_CHAR((p)->pad, p) + +/* pad left */ +#define PAD_LEFT(p) \ + if ((p)->width > 0 && (p)->justify == LEFT) \ + for (; (p)->width > 0; (p)->width--) \ + PUT_CHAR((p)->pad, p) + +/* pad with zeros from decimal precision */ +#define PAD_ZERO(p) \ + if ((p)->precision > 0) \ + for (; (p)->precision > 0; (p)->precision--) \ + PUT_CHAR('0', p) + +/* if width and prec. in the args */ +#define STAR_ARGS(p) \ + do { \ + if ((p)->flags & PF_STAR_W) \ + { \ + (p)->width = GETARG (int); \ + if ((p)->width < 0) \ + { \ + (p)->flags |= PF_LADJUST; \ + (p)->justify = LEFT; \ + (p)->width = -(p)->width; \ + } \ + } \ + if ((p)->flags & PF_STAR_P) \ + { \ + (p)->precision = GETARG (int); \ + if ((p)->precision < 0) \ + { \ + (p)->flags &= ~PF_STAR_P; \ + (p)->precision = NOT_FOUND; \ + } \ + } \ + } while (0) + +#if defined (HAVE_LOCALE_H) +# define GETLOCALEDATA(d, t, g) \ + do \ + { \ + struct lconv *lv; \ + if ((d) == 0) { \ + (d) = '.'; (t) = -1; (g) = 0; /* defaults */ \ + lv = localeconv(); \ + if (lv) \ + { \ + if (lv->decimal_point && lv->decimal_point[0]) \ + (d) = lv->decimal_point[0]; \ + if (lv->thousands_sep && lv->thousands_sep[0]) \ + (t) = lv->thousands_sep[0]; \ + (g) = lv->grouping ? lv->grouping : ""; \ + if (*(g) == '\0' || *(g) == CHAR_MAX || (t) == -1) (g) = 0; \ + } \ + } \ + } \ + while (0); +#else +# define GETLOCALEDATA(d, t, g) \ + ( (d) = '.', (t) = ',', g = "\003" ) +#endif + +#ifdef FLOATING_POINT +/* + * Find the nth power of 10 + */ +static double +pow_10(n) + int n; +{ + double P; + + /* handle common cases with fast switch statement. */ + switch (n) + { + case -3: return .001; + case -2: return .01; + case -1: return .1; + case 0: return 1.; + case 1: return 10.; + case 2: return 100.; + case 3: return 1000.; + } + + if (n < 0) + { + P = .0001; + for (n += 4; n < 0; n++) + P /= 10.; + } + else + { + P = 10000.; + for (n -= 4; n > 0; n--) + P *= 10.; + } + + return P; +} + +/* + * Find the integral part of the log in base 10 + * Note: this not a real log10() + I just need and approximation(integerpart) of x in: + 10^x ~= r + * log_10(200) = 2; + * log_10(250) = 2; + * + * NOTE: do not call this with r == 0 -- an infinite loop results. + */ +static int +log_10(r) + double r; +{ + int i = 0; + double result = 1.; + + if (r < 0.) + r = -r; + + if (r < 1.) + { + while (result >= r) + { + result /= 10.; + i++; + } + return (-i); + } + else + { + while (result <= r) + { + result *= 10.; + i++; + } + return (i - 1); + } +} + +/* + * This function return the fraction part of a double + * and set in ip the integral part. + * In many ways it resemble the modf() found on most Un*x + */ +static double +integral(real, ip) + double real; + double *ip; +{ + int j; + double i, s, p; + double real_integral = 0.; + + /* take care of the obvious */ + /* equal to zero ? */ + if (real == 0.) + { + *ip = 0.; + return (0.); + } + + /* negative number ? */ + if (real < 0.) + real = -real; + + /* a fraction ? */ + if ( real < 1.) + { + *ip = 0.; + return real; + } + + /* the real work :-) */ + for (j = log_10(real); j >= 0; j--) + { + p = pow_10(j); + s = (real - real_integral)/p; + i = 0.; + while (i + 1. <= s) + i++; + real_integral += i*p; + } + *ip = real_integral; + return (real - real_integral); +} + +#define PRECISION 1.e-6 +/* + * return an ascii representation of the integral part of the number + * and set fract to be an ascii representation of the fraction part + * the container for the fraction and the integral part or staticly + * declare with fix size + */ +static char * +numtoa(number, base, precision, fract) + double number; + int base, precision; + char **fract; +{ + register int i, j; + double ip, fp; /* integer and fraction part */ + double fraction; + int digits = MAX_INT - 1; + static char integral_part[MAX_INT]; + static char fraction_part[MAX_FRACT]; + double sign; + int ch; + + /* taking care of the obvious case: 0.0 */ + if (number == 0.) + { + integral_part[0] = '0'; + integral_part[1] = '\0'; + /* The fractional part has to take the precision into account */ + for (ch = 0; ch < precision-1; ch++) + fraction_part[ch] = '0'; + fraction_part[ch] = '0'; + fraction_part[ch+1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; + } + + /* for negative numbers */ + if ((sign = number) < 0.) + { + number = -number; + digits--; /* sign consume one digit */ + } + + fraction = integral(number, &ip); + number = ip; + + /* do the integral part */ + if (ip == 0.) + { + integral_part[0] = '0'; + i = 1; + } + else + { + for ( i = 0; i < digits && number != 0.; ++i) + { + number /= base; + fp = integral(number, &ip); + ch = (int)((fp + PRECISION)*base); /* force to round */ + integral_part[i] = (ch <= 9) ? ch + '0' : ch + 'a' - 10; + if (! ISXDIGIT((unsigned char)integral_part[i])) + break; /* bail out overflow !! */ + number = ip; + } + } + + /* Oh No !! out of bound, ho well fill it up ! */ + if (number != 0.) + for (i = 0; i < digits; ++i) + integral_part[i] = '9'; + + /* put the sign ? */ + if (sign < 0.) + integral_part[i++] = '-'; + + integral_part[i] = '\0'; + + /* reverse every thing */ + for ( i--, j = 0; j < i; j++, i--) + SWAP_INT(integral_part[i], integral_part[j]); + + /* the fractional part */ + for (i=0, fp=fraction; precision > 0 && i < MAX_FRACT ; i++, precision--) + { + fraction_part[i] = (int)((fp + PRECISION)*10. + '0'); + if (! DIGIT(fraction_part[i])) /* underflow ? */ + break; + fp = (fp*10.0) - (double)(long)((fp + PRECISION)*10.); + } + fraction_part[i] = '\0'; + + if (fract != (char **)0) + *fract = fraction_part; + + return integral_part; +} +#endif + +/* for %d and friends, it puts in holder + * the representation with the right padding + */ +static void +number(p, d, base) + struct DATA *p; + unsigned long d; + int base; +{ + char *tmp, *t; + long sd; + int flags; + + /* An explicit precision turns off the zero-padding flag. */ + if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT)) + p->flags &= ~PF_ZEROPAD; + + sd = d; /* signed for ' ' padding in base 10 */ + flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; + + tmp = fmtulong (d, base, intbuf, sizeof(intbuf), flags); + t = 0; + if ((p->flags & PF_THOUSANDS)) + { + GETLOCALEDATA(decpoint, thoussep, grouping); + if (grouping && (t = groupnum (tmp))) + tmp = t; + } + + p->width -= strlen(tmp); + PAD_RIGHT(p); + + if ((p->flags & PF_DOT) && p->precision > 0) + { + p->precision -= strlen(tmp); + PAD_ZERO(p); + } + + switch (base) + { + case 10: + PUT_PLUS(sd, p, 0); + PUT_SPACE(sd, p, 0); + break; + case 8: + if (p->flags & PF_ALTFORM) + PUT_CHAR('0', p); + break; + case 16: + if (p->flags & PF_ALTFORM) + { + PUT_CHAR('0', p); + PUT_CHAR(*p->pf, p); + } + break; + } + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + PAD_LEFT(p); + FREE (t); +} + +#ifdef HAVE_LONG_LONG +/* + * identical to number() but works for `long long' + */ +static void +lnumber(p, d, base) + struct DATA *p; + unsigned long long d; + int base; +{ + char *tmp, *t; + long long sd; + int flags; + + /* An explicit precision turns off the zero-padding flag. */ + if ((p->flags & PF_ZEROPAD) && p->precision >= 0 && (p->flags & PF_DOT)) + p->flags &= ~PF_ZEROPAD; + + sd = d; /* signed for ' ' padding in base 10 */ + flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; + + tmp = fmtullong (d, base, intbuf, sizeof(intbuf), flags); + t = 0; + if ((p->flags & PF_THOUSANDS)) + { + GETLOCALEDATA(decpoint, thoussep, grouping); + if (grouping && (t = groupnum (tmp))) + tmp = t; + } + + p->width -= strlen(tmp); + PAD_RIGHT(p); + + if ((p->flags & PF_DOT) && p->precision > 0) + { + p->precision -= strlen(tmp); + PAD_ZERO(p); + } + + switch (base) + { + case 10: + PUT_PLUS(sd, p, 0); + PUT_SPACE(sd, p, 0); + break; + case 8: + if (p->flags & PF_ALTFORM) + PUT_CHAR('0', p); + break; + case 16: + if (p->flags & PF_ALTFORM) + { + PUT_CHAR('0', p); + PUT_CHAR(*p->pf, p); + } + break; + } + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + PAD_LEFT(p); + FREE (t); +} +#endif + +static void +pointer(p, d) + struct DATA *p; + unsigned long d; +{ + char *tmp; + + tmp = fmtulong(d, 16, intbuf, sizeof(intbuf), 0); + p->width -= strlen(tmp); + PAD_RIGHT(p); + + /* prefix '0x' for pointers */ + PUT_CHAR('0', p); + PUT_CHAR('x', p); + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + PAD_LEFT(p); +} + +/* %s strings */ +static void +strings(p, tmp) + struct DATA *p; + char *tmp; +{ + size_t len; + + len = strlen(tmp); + if (p->precision != NOT_FOUND) /* the smallest number */ + len = (len < p->precision ? len : p->precision); + p->width -= len; + + PUT_STRING (tmp, len, p); +} + +#if HANDLE_MULTIBYTE +/* %ls wide-character strings */ +static void +wstrings(p, tmp) + struct DATA *p; + wchar_t *tmp; +{ + size_t len; + mbstate_t mbs; + char *os; + const wchar_t *ws; + + memset (&mbs, '\0', sizeof (mbstate_t)); + ws = (const wchar_t *)tmp; + + os = (char *)NULL; + if (p->precision != NOT_FOUND) + { + os = (char *)xmalloc (p->precision + 1); + len = wcsrtombs (os, &ws, p->precision, &mbs); + } + else + { + len = wcsrtombs (NULL, &ws, 0, &mbs); + if (len != (size_t)-1) + { + memset (&mbs, '\0', sizeof (mbstate_t)); + os = (char *)xmalloc (len + 1); + (void)wcsrtombs (os, &ws, len + 1, &mbs); + } + } + if (len == (size_t)-1) + { + /* invalid multibyte sequence; bail now. */ + FREE (os); + return; + } + + p->width -= len; + PUT_STRING (os, len, p); + free (os); +} + +static void +wchars (p, wc) + struct DATA *p; + wint_t wc; +{ + char *lbuf, *l; + mbstate_t mbs; + size_t len; + + lbuf = (char *)malloc (MB_CUR_MAX+1); + if (lbuf == 0) + return; + memset (&mbs, '\0', sizeof (mbstate_t)); + len = wcrtomb (lbuf, wc, &mbs); + if (len == (size_t)-1) + /* conversion failed; bail now. */ + return; + p->width -= len; + l = lbuf; + PUT_STRING (l, len, p); + free (lbuf); +} +#endif /* HANDLE_MULTIBYTE */ + +#ifdef FLOATING_POINT + +#ifndef HAVE_ISINF_IN_LIBC +/* Half-assed versions, since we don't want to link with libm. */ +static int +isinf(d) + double d; +{ +#ifdef DBL_MAX + if (d < DBL_MIN) + return -1; + else if (d > DBL_MAX) + return 1; + else +#endif + return 0; +} +#endif + +#ifndef HAVE_ISNAN_IN_LIBC +static int +isnan(d) + double d; +{ + return 0; +} +#endif + +/* Check for [+-]infinity and NaN. If MODE == 1, we check for Infinity, else + (mode == 2) we check for NaN. This does the necessary printing. Returns + 1 if Inf or Nan, 0 if not. */ +static int +chkinfnan(p, d, mode) + struct DATA *p; + double d; + int mode; /* == 1 for inf, == 2 for nan */ +{ + int i; + char *tmp; + char *big, *small; + + i = (mode == 1) ? isinf(d) : isnan(d); + if (i == 0) + return 0; + big = (mode == 1) ? "INF" : "NAN"; + small = (mode == 1) ? "inf" : "nan"; + + tmp = (*p->pf == 'F' || *p->pf == 'G' || *p->pf == 'E') ? big : small; + + if (i < 0) + PUT_CHAR('-', p); + + while (*tmp) + { + PUT_CHAR (*tmp, p); + tmp++; + } + + return 1; +} + +/* %f %F %g %G floating point representation */ +static void +floating(p, d) + struct DATA *p; + double d; +{ + char *tmp, *tmp2, *t; + int i; + + if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); + d = ROUND(d, p); + tmp = dtoa(d, p->precision, &tmp2); + t = 0; + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + + if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) + { + /* smash the trailing zeros unless altform */ + for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) + tmp2[i] = '\0'; + if (tmp2[0] == '\0') + p->precision = 0; + } + + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - + strlen(tmp) - p->precision - + ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */ + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); + + while (*tmp) + { + PUT_CHAR(*tmp, p); /* the integral */ + tmp++; + } + FREE (t); + + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* put the '.' */ + + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + + PAD_LEFT(p); +} + +/* %e %E %g %G exponent representation */ +static void +exponent(p, d) + struct DATA *p; + double d; +{ + char *tmp, *tmp2; + int j, i, usedec; + + if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); + if (d == 0.) + j = 0; + else + { + j = log_10(d); + d = d / pow_10(j); /* get the Mantissa */ + d = ROUND(d, p); + } + tmp = dtoa(d, p->precision, &tmp2); + + usedec = 1; + /* 1 for unit, 1 for the '.', 1 for 'e|E', + * 1 for '+|-', 2 for 'exp' */ + /* calculate how much padding need */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - p->precision - 6; + + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); + + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* the '.' */ + + if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) + /* smash the trailing zeros unless altform */ + for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) + tmp2[i] = '\0'; + + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + + /* the exponent put the 'e|E' */ + if (*p->pf == 'g' || *p->pf == 'e') + PUT_CHAR('e', p); + else + PUT_CHAR('E', p); + + /* the sign of the exp */ + if (j >= 0) + PUT_CHAR('+', p); + else + { + PUT_CHAR('-', p); + j = -j; + } + + tmp = itoa(j); + /* pad out to at least two spaces. pad with `0' if the exponent is a + single digit. */ + if (j <= 9) + PUT_CHAR('0', p); + + /* the exponent */ + while (*tmp) + { + PUT_CHAR(*tmp, p); + tmp++; + } + + PAD_LEFT(p); +} +#endif + +/* Return a new string with the digits in S grouped according to the locale's + grouping info and thousands separator. If no grouping should be performed, + this returns NULL; the caller needs to check for it. */ +static char * +groupnum (s) + char *s; +{ + char *se, *ret, *re, *g; + int len, slen; + + if (grouping == 0 || *grouping <= 0 || *grouping == CHAR_MAX) + return ((char *)NULL); + + /* find min grouping to size returned string */ + for (len = *grouping, g = grouping; *g; g++) + if (*g > 0 && *g < len) + len = *g; + + slen = strlen (s); + len = slen / len + 1; + ret = (char *)xmalloc (slen + len + 1); + re = ret + slen + len; + *re = '\0'; + + g = grouping; + se = s + slen; + len = *g; + + while (se > s) + { + *--re = *--se; + + /* handle `-' inserted by numtoa() and the fmtu* family here. */ + if (se > s && se[-1] == '-') + continue; + + /* begin new group. */ + if (--len == 0 && se > s) + { + *--re = thoussep; + len = *++g; /* was g++, but that uses first char twice (glibc bug, too) */ + if (*g == '\0') + len = *--g; /* use previous grouping */ + else if (*g == CHAR_MAX) + { + do + *--re = *--se; + while (se > s); + break; + } + } + } + + if (re > ret) +#ifdef HAVE_MEMMOVE + memmove (ret, re, strlen (re) + 1); +#else + strcpy (ret, re); +#endif + + return ret; +} + +/* initialize the conversion specifiers */ +static void +init_conv_flag (p) + struct DATA *p; +{ + p->flags &= PF_ALLOCBUF; /* preserve PF_ALLOCBUF flag */ + p->precision = p->width = NOT_FOUND; + p->justify = NOT_FOUND; + p->pad = ' '; +} + +static void +init_data (p, string, length, format, mode) + struct DATA *p; + char *string; + size_t length; + const char *format; + int mode; +{ + p->length = length - 1; /* leave room for '\0' */ + p->holder = p->base = string; + p->pf = format; + p->counter = 0; + p->flags = (mode == PFM_AS) ? PF_ALLOCBUF : 0; +} + +static int +#if defined (__STDC__) +vsnprintf_internal(struct DATA *data, char *string, size_t length, const char *format, va_list args) +#else +vsnprintf_internal(data, string, length, format, args) + struct DATA *data; + char *string; + size_t length; + const char *format; + va_list args; +#endif +{ + double d; /* temporary holder */ +#ifdef HAVE_LONG_DOUBLE + long double ld; /* for later */ +#endif + unsigned long ul; +#ifdef HAVE_LONG_LONG + unsigned long long ull; +#endif + int state, i, c, n; + char *s; +#if HANDLE_MULTIBYTE + wchar_t *ws; + wint_t wc; +#endif + const char *convstart; + int negprec; + + /* Sanity check, the string length must be >= 0. C99 actually says that + LENGTH can be zero here, in the case of snprintf/vsnprintf (it's never + 0 in the case of asprintf/vasprintf), and the return value is the number + of characters that would have been written. */ + if (length < 0) + return -1; + + if (format == 0) + return 0; + + /* Reset these for each call because the locale might have changed. */ + decpoint = thoussep = 0; + grouping = 0; + + negprec = 0; + for (; c = *(data->pf); data->pf++) + { + if (c != '%') + { + PUT_CHAR (c, data); + continue; + } + + convstart = data->pf; + init_conv_flag (data); /* initialise format flags */ + + state = 1; + for (state = 1; state && *data->pf; ) + { + c = *(++data->pf); + /* fmtend = data->pf */ +#if defined (FLOATING_POINT) && defined (HAVE_LONG_DOUBLE) + if (data->flags & PF_LONGDBL) + { + switch (c) + { + case 'f': case 'F': + case 'e': case 'E': + case 'g': case 'G': +# ifdef HAVE_PRINTF_A_FORMAT + case 'a': case 'A': +# endif + STAR_ARGS (data); + ld = GETLDOUBLE (data); + ldfallback (data, convstart, data->pf, ld); + goto conv_break; + } + } +#endif /* FLOATING_POINT && HAVE_LONG_DOUBLE */ + + switch (c) + { + /* Parse format flags */ + case '\0': /* a NULL here ? ? bail out */ + *data->holder = '\0'; + return data->counter; + break; + case '#': + data->flags |= PF_ALTFORM; + continue; + case '0': + data->flags |= PF_ZEROPAD; + data->pad = '0'; + continue; + case '*': + if (data->flags & PF_DOT) + data->flags |= PF_STAR_P; + else + data->flags |= PF_STAR_W; + continue; + case '-': + if ((data->flags & PF_DOT) == 0) + { + data->flags |= PF_LADJUST; + data->justify = LEFT; + } + else + negprec = 1; + continue; + case ' ': + if ((data->flags & PF_PLUS) == 0) + data->flags |= PF_SPACE; + continue; + case '+': + if ((data->flags & PF_DOT) == 0) + { + data->flags |= PF_PLUS; + data->justify = RIGHT; + } + continue; + case '\'': + data->flags |= PF_THOUSANDS; + continue; + + case '1': case '2': case '3': + case '4': case '5': case '6': + case '7': case '8': case '9': + n = 0; + do + { + n = n * 10 + TODIGIT(c); + c = *(++data->pf); + } + while (DIGIT(c)); + data->pf--; /* went too far */ + if (n < 0) + n = 0; + if (data->flags & PF_DOT) + data->precision = negprec ? NOT_FOUND : n; + else + data->width = n; + continue; + + /* optional precision */ + case '.': + data->flags |= PF_DOT; + data->precision = 0; + continue; + + /* length modifiers */ + case 'h': + data->flags |= (data->flags & PF_SHORTINT) ? PF_SIGNEDCHAR : PF_SHORTINT; + continue; + case 'l': + data->flags |= (data->flags & PF_LONGINT) ? PF_LONGLONG : PF_LONGINT; + continue; + case 'L': + data->flags |= PF_LONGDBL; + continue; + case 'q': + data->flags |= PF_LONGLONG; + continue; + case 'j': + data->flags |= PF_INTMAX_T; + SET_SIZE_FLAGS(data, intmax_t); + continue; + case 'z': + data->flags |= PF_SIZE_T; + SET_SIZE_FLAGS(data, size_t); + continue; + case 't': + data->flags |= PF_PTRDIFF_T; + SET_SIZE_FLAGS(data, ptrdiff_t); + continue; + + /* Conversion specifiers */ +#ifdef FLOATING_POINT + case 'f': /* float, double */ + case 'F': + STAR_ARGS(data); + d = GETDOUBLE(data); + floating(data, d); +conv_break: + state = 0; + break; + case 'g': + case 'G': + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); + i = (d != 0.) ? log_10(d) : -1; + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively + * else use %e|%E + */ + if (-4 < i && i < data->precision) + { + /* reset precision */ + data->precision -= i + 1; + floating(data, d); + } + else + { + /* reduce precision by 1 because of leading digit before + decimal point in e format. */ + data->precision--; + exponent(data, d); + } + state = 0; + break; + case 'e': + case 'E': /* Exponent double */ + STAR_ARGS(data); + d = GETDOUBLE(data); + exponent(data, d); + state = 0; + break; +# ifdef HAVE_PRINTF_A_FORMAT + case 'a': + case 'A': + STAR_ARGS(data); + d = GETDOUBLE(data); + dfallback(data, convstart, data->pf, d); + state = 0; + break; +# endif /* HAVE_PRINTF_A_FORMAT */ +#endif /* FLOATING_POINT */ + case 'U': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ + case 'u': + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (unsigned long long); + lnumber(data, ull, 10); + } + else +#endif + { + ul = GETUNSIGNED(data); + number(data, ul, 10); + } + state = 0; + break; + case 'D': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ + case 'd': /* decimal */ + case 'i': + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (long long); + lnumber(data, ull, 10); + } + else +#endif + { + ul = GETSIGNED(data); + number(data, ul, 10); + } + state = 0; + break; + case 'o': /* octal */ + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (unsigned long long); + lnumber(data, ull, 8); + } + else +#endif + { + ul = GETUNSIGNED(data); + number(data, ul, 8); + } + state = 0; + break; + case 'x': + case 'X': /* hexadecimal */ + STAR_ARGS(data); +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + { + ull = GETARG (unsigned long long); + lnumber(data, ull, 16); + } + else +#endif + { + ul = GETUNSIGNED(data); + number(data, ul, 16); + } + state = 0; + break; + case 'p': + STAR_ARGS(data); + ul = (unsigned long)GETARG (void *); + pointer(data, ul); + state = 0; + break; +#if HANDLE_MULTIBYTE + case 'C': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ +#endif + case 'c': /* character */ + STAR_ARGS(data); +#if HANDLE_MULTIBYTE + if (data->flags & PF_LONGINT) + { + wc = GETARG (wint_t); + wchars (data, wc); + } + else +#endif + { + ul = GETARG (int); + PUT_CHAR(ul, data); + } + state = 0; + break; +#if HANDLE_MULTIBYTE + case 'S': + data->flags |= PF_LONGINT; + /* FALLTHROUGH */ +#endif + case 's': /* string */ + STAR_ARGS(data); +#if HANDLE_MULTIBYTE + if (data->flags & PF_LONGINT) + { + ws = GETARG (wchar_t *); + wstrings (data, ws); + } + else +#endif + { + s = GETARG (char *); + strings(data, s); + } + state = 0; + break; + case 'n': +#ifdef HAVE_LONG_LONG + if (data->flags & PF_LONGLONG) + *(GETARG (long long *)) = data->counter; + else +#endif + if (data->flags & PF_LONGINT) + *(GETARG (long *)) = data->counter; + else if (data->flags & PF_SHORTINT) + *(GETARG (short *)) = data->counter; + else + *(GETARG (int *)) = data->counter; + state = 0; + break; + case '%': /* nothing just % */ + PUT_CHAR('%', data); + state = 0; + break; + default: + /* is this an error ? maybe bail out */ + state = 0; + break; + } /* end switch */ + } /* end of `%' for loop */ + } /* end of format string for loop */ + + if (data->length >= 0) + *data->holder = '\0'; /* the end ye ! */ + + return data->counter; +} + +#if defined (FLOATING_POINT) && defined (HAVE_LONG_DOUBLE) +/* + * Printing floating point numbers accurately is an art. I'm not good + * at it. Fall back to sprintf for long double formats. + */ +static void +ldfallback (data, fs, fe, ld) + struct DATA *data; + const char *fs, *fe; + long double ld; +{ + register char *x; + char fmtbuf[FALLBACK_FMTSIZE], *obuf; + int fl; + + fl = LFALLBACK_BASE + (data->precision < 6 ? 6 : data->precision) + 2; + obuf = (char *)xmalloc (fl); + fl = fe - fs + 1; + strncpy (fmtbuf, fs, fl); + fmtbuf[fl] = '\0'; + + if ((data->flags & PF_STAR_W) && (data->flags & PF_STAR_P)) + sprintf (obuf, fmtbuf, data->width, data->precision, ld); + else if (data->flags & PF_STAR_W) + sprintf (obuf, fmtbuf, data->width, ld); + else if (data->flags & PF_STAR_P) + sprintf (obuf, fmtbuf, data->precision, ld); + else + sprintf (obuf, fmtbuf, ld); + + for (x = obuf; *x; x++) + PUT_CHAR (*x, data); + xfree (obuf); +} +#endif /* FLOATING_POINT && HAVE_LONG_DOUBLE */ + +#ifdef FLOATING_POINT +/* Used for %a, %A if the libc printf supports them. */ +static void +dfallback (data, fs, fe, d) + struct DATA *data; + const char *fs, *fe; + double d; +{ + register char *x; + char fmtbuf[FALLBACK_FMTSIZE], obuf[FALLBACK_BASE]; + int fl; + + fl = fe - fs + 1; + strncpy (fmtbuf, fs, fl); + fmtbuf[fl] = '\0'; + + if ((data->flags & PF_STAR_W) && (data->flags & PF_STAR_P)) + sprintf (obuf, fmtbuf, data->width, data->precision, d); + else if (data->flags & PF_STAR_W) + sprintf (obuf, fmtbuf, data->width, d); + else if (data->flags & PF_STAR_P) + sprintf (obuf, fmtbuf, data->precision, d); + else + sprintf (obuf, fmtbuf, d); + + for (x = obuf; *x; x++) + PUT_CHAR (*x, data); +} +#endif /* FLOATING_POINT */ + +#ifndef HAVE_SNPRINTF + +int +#if defined (__STDC__) +vsnprintf(char *string, size_t length, const char *format, va_list args) +#else +vsnprintf(string, length, format, args) + char *string; + size_t length; + const char *format; + va_list args; +#endif +{ + struct DATA data; + + if (string == 0 && length != 0) + return 0; + init_data (&data, string, length, format, PFM_SN); + return (vsnprintf_internal(&data, string, length, format, args)); +} + +int +#if defined(PREFER_STDARG) +snprintf(char *string, size_t length, const char * format, ...) +#else +snprintf(string, length, format, va_alist) + char *string; + size_t length; + const char *format; + va_dcl +#endif +{ + struct DATA data; + int rval; + va_list args; + + SH_VA_START(args, format); + + if (string == 0 && length != 0) + return 0; + init_data (&data, string, length, format, PFM_SN); + rval = vsnprintf_internal (&data, string, length, format, args); + + va_end(args); + + return rval; +} + +#endif /* HAVE_SNPRINTF */ + +#ifndef HAVE_ASPRINTF + +int +#if defined (__STDC__) +vasprintf(char **stringp, const char *format, va_list args) +#else +vasprintf(stringp, format, args) + char **stringp; + const char *format; + va_list args; +#endif +{ + struct DATA data; + char *string; + int r; + + string = (char *)xmalloc(ASBUFSIZE); + init_data (&data, string, ASBUFSIZE, format, PFM_AS); + r = vsnprintf_internal(&data, string, ASBUFSIZE, format, args); + *stringp = data.base; /* not string in case reallocated */ + return r; +} + +int +#if defined(PREFER_STDARG) +asprintf(char **stringp, const char * format, ...) +#else +asprintf(stringp, format, va_alist) + char **stringp; + const char *format; + va_dcl +#endif +{ + int rval; + va_list args; + + SH_VA_START(args, format); + + rval = vasprintf (stringp, format, args); + + va_end(args); + + return rval; +} + +#endif + +#endif + +#ifdef DRIVER + +static void +memory_error_and_abort () +{ + write (2, "out of virtual memory\n", 22); + abort (); +} + +static void * +xmalloc(bytes) + size_t bytes; +{ + void *ret; + + ret = malloc(bytes); + if (ret == 0) + memory_error_and_abort (); + return ret; +} + +static void * +xrealloc (pointer, bytes) + void *pointer; + size_t bytes; +{ + void *ret; + + ret = pointer ? realloc(pointer, bytes) : malloc(bytes); + if (ret == 0) + memory_error_and_abort (); + return ret; +} + +static void +xfree(x) + void *x; +{ + if (x) + free (x); +} + +/* set of small tests for snprintf() */ +main() +{ + char holder[100]; + char *h; + int i, si, ai; + +#ifdef HAVE_LOCALE_H + setlocale(LC_ALL, ""); +#endif + +#if 1 + si = snprintf((char *)NULL, 0, "abcde\n"); + printf("snprintf returns %d with NULL first argument and size of 0\n", si); + si = snprintf(holder, 0, "abcde\n"); + printf("snprintf returns %d with non-NULL first argument and size of 0\n", si); + si = snprintf((char *)NULL, 16, "abcde\n"); + printf("snprintf returns %d with NULL first argument and non-zero size\n", si); + +/* + printf("Suite of test for snprintf:\n"); + printf("a_format\n"); + printf("printf() format\n"); + printf("snprintf() format\n\n"); +*/ +/* Checking the field widths */ + + printf("/%%ld %%ld/, 336, 336\n"); + snprintf(holder, sizeof holder, "/%ld %ld/\n", 336, 336); + asprintf(&h, "/%ld %ld/\n", 336, 336); + printf("/%ld %ld/\n", 336, 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%d/, 336\n"); + snprintf(holder, sizeof holder, "/%d/\n", 336); + asprintf(&h, "/%d/\n", 336); + printf("/%d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%2d/, 336\n"); + snprintf(holder, sizeof holder, "/%2d/\n", 336); + asprintf(&h, "/%2d/\n", 336); + printf("/%2d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%10d/, 336\n"); + snprintf(holder, sizeof holder, "/%10d/\n", 336); + asprintf(&h, "/%10d/\n", 336); + printf("/%10d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%-10d/, 336\n"); + snprintf(holder, sizeof holder, "/%-10d/\n", 336); + asprintf(&h, "/%-10d/\n", 336); + printf("/%-10d/\n", 336); + printf("%s", holder); + printf("%s\n", h); + + +/* floating points */ + + printf("/%%f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%f/\n", 1234.56); + asprintf(&h, "/%f/\n", 1234.56); + printf("/%f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%e/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%e/\n", 1234.56); + asprintf(&h, "/%e/\n", 1234.56); + printf("/%e/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%4.2f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%4.2f/\n", 1234.56); + asprintf(&h, "/%4.2f/\n", 1234.56); + printf("/%4.2f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%3.1f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%3.1f/\n", 1234.56); + asprintf(&h, "/%3.1f/\n", 1234.56); + printf("/%3.1f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%10.3f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%10.3f/\n", 1234.56); + asprintf(&h, "/%10.3f/\n", 1234.56); + printf("/%10.3f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%10.3e/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%10.3e/\n", 1234.56); + asprintf(&h, "/%10.3e/\n", 1234.56); + printf("/%10.3e/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%+4.2f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%+4.2f/\n", 1234.56); + asprintf(&h, "/%+4.2f/\n", 1234.56); + printf("/%+4.2f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%010.2f/, 1234.56\n"); + snprintf(holder, sizeof holder, "/%010.2f/\n", 1234.56); + asprintf(&h, "/%010.2f/\n", 1234.56); + printf("/%010.2f/\n", 1234.56); + printf("%s", holder); + printf("%s\n", h); + +#define BLURB "Outstanding acting !" +/* strings precisions */ + + printf("/%%2s/, \"%s\"\n", BLURB); + snprintf(holder, sizeof holder, "/%2s/\n", BLURB); + asprintf(&h, "/%2s/\n", BLURB); + printf("/%2s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%22s/ %s\n", BLURB); + snprintf(holder, sizeof holder, "/%22s/\n", BLURB); + asprintf(&h, "/%22s/\n", BLURB); + printf("/%22s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%22.5s/ %s\n", BLURB); + snprintf(holder, sizeof holder, "/%22.5s/\n", BLURB); + asprintf(&h, "/%22.5s/\n", BLURB); + printf("/%22.5s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%-22.5s/ %s\n", BLURB); + snprintf(holder, sizeof holder, "/%-22.5s/\n", BLURB); + asprintf(&h, "/%-22.5s/\n", BLURB); + printf("/%-22.5s/\n", BLURB); + printf("%s", holder); + printf("%s\n", h); + +/* see some flags */ + + printf("%%x %%X %%#x, 31, 31, 31\n"); + snprintf(holder, sizeof holder, "%x %X %#x\n", 31, 31, 31); + asprintf(&h, "%x %X %#x\n", 31, 31, 31); + printf("%x %X %#x\n", 31, 31, 31); + printf("%s", holder); + printf("%s\n", h); + + printf("**%%d**%% d**%% d**, 42, 42, -42\n"); + snprintf(holder, sizeof holder, "**%d**% d**% d**\n", 42, 42, -42); + asprintf(&h, "**%d**% d**% d**\n", 42, 42, -42); + printf("**%d**% d**% d**\n", 42, 42, -42); + printf("%s", holder); + printf("%s\n", h); + +/* other flags */ + + printf("/%%g/, 31.4\n"); + snprintf(holder, sizeof holder, "/%g/\n", 31.4); + asprintf(&h, "/%g/\n", 31.4); + printf("/%g/\n", 31.4); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.6g/, 31.4\n"); + snprintf(holder, sizeof holder, "/%.6g/\n", 31.4); + asprintf(&h, "/%.6g/\n", 31.4); + printf("/%.6g/\n", 31.4); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.1G/, 31.4\n"); + snprintf(holder, sizeof holder, "/%.1G/\n", 31.4); + asprintf(&h, "/%.1G/\n", 31.4); + printf("/%.1G/\n", 31.4); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.1G/, 3100000000.4\n"); + snprintf(holder, sizeof holder, "/%.1G/\n", 3100000000.4); + asprintf(&h, "/%.1G/\n", 3100000000.4); + printf("/%.1G/\n", 3100000000.4); + printf("%s", holder); + printf("%s\n", h); + + printf("abc%%n\n"); + printf("abc%n", &i); printf("%d\n", i); + snprintf(holder, sizeof holder, "abc%n", &i); + printf("%s", holder); printf("%d\n\n", i); + asprintf(&h, "abc%n", &i); + printf("%s", h); printf("%d\n\n", i); + + printf("%%*.*s --> 10.10\n"); + snprintf(holder, sizeof holder, "%*.*s\n", 10, 10, BLURB); + asprintf(&h, "%*.*s\n", 10, 10, BLURB); + printf("%*.*s\n", 10, 10, BLURB); + printf("%s", holder); + printf("%s\n", h); + + printf("%%%%%%%%\n"); + snprintf(holder, sizeof holder, "%%%%\n"); + asprintf(&h, "%%%%\n"); + printf("%%%%\n"); + printf("%s", holder); + printf("%s\n", h); + +#define BIG "Hello this is a too big string for the buffer" +/* printf("A buffer to small of 10, trying to put this:\n");*/ + printf("<%%>, %s\n", BIG); + i = snprintf(holder, 10, "%s\n", BIG); + i = asprintf(&h, "%s", BIG); + printf("<%s>\n", BIG); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); + + printf ("<%%p> vsnprintf\n"); + i = snprintf(holder, 100, "%p", vsnprintf); + i = asprintf(&h, "%p", vsnprintf); + printf("<%p>\n", vsnprintf); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); + + printf ("<%%lu> LONG_MAX+1\n"); + i = snprintf(holder, 100, "%lu", (unsigned long)(LONG_MAX)+1); + i = asprintf(&h, "%lu", (unsigned long)(LONG_MAX)+1); + printf("<%lu>\n", (unsigned long)(LONG_MAX)+1); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); + +#ifdef HAVE_LONG_LONG + printf ("<%%llu> LLONG_MAX+1\n"); + i = snprintf(holder, 100, "%llu", (unsigned long long)(LLONG_MAX)+1); + i = asprintf(&h, "%llu", (unsigned long long)(LLONG_MAX)+1); + printf("<%llu>\n", (unsigned long long)(LLONG_MAX)+1); + printf("<%s>\n", holder); + printf("<%s>\n\n", h); +#endif + +#ifdef HAVE_LONG_DOUBLE + printf ("<%%6.2LE> 42.42\n"); + i = snprintf(holder, 100, "%6.2LE", (long double)42.42); + i = asprintf(&h, "%6.2LE", (long double)42.42); + printf ("<%6.2LE>\n", (long double)42.42); + printf ("<%s>\n", holder); + printf ("<%s>\n\n", h); +#endif + +#ifdef HAVE_PRINTF_A_FORMAT + printf ("<%%6.2A> 42.42\n"); + i = snprintf(holder, 100, "%6.2A", 42.42); + i = asprintf(&h, "%6.2A", 42.42); + printf ("<%6.2A>\n", 42.42); + printf ("<%s>\n", holder); + printf ("<%s>\n\n", h); + + printf ("<%%6.2LA> 42.42\n"); + i = snprintf(holder, 100, "%6.2LA", (long double)42.42); + i = asprintf(&h, "%6.2LA", (long double)42.42); + printf ("<%6.2LA>\n", (long double)42.42); + printf ("<%s>\n", holder); + printf ("<%s>\n\n", h); +#endif + + printf ("<%%.10240f> DBL_MAX\n"); + si = snprintf(holder, 100, "%.10240f", DBL_MAX); + ai = asprintf(&h, "%.10240f", DBL_MAX); + printf ("<%.10240f>\n", DBL_MAX); + printf ("<%d> <%s>\n", si, holder); + printf ("<%d> <%s>\n\n", ai, h); + + printf ("<%%.10240Lf> LDBL_MAX\n"); + si = snprintf(holder, 100, "%.10240Lf", (long double)LDBL_MAX); + ai = asprintf(&h, "%.10240Lf", (long double)LDBL_MAX); + printf ("<%.10240Lf>\n", (long double)LDBL_MAX); + printf ("<%d> <%s>\n", si, holder); + printf ("<%d> <%s>\n\n", ai, h); + + /* huh? */ + printf("/%%g/, 421.2345\n"); + snprintf(holder, sizeof holder, "/%g/\n", 421.2345); + asprintf(&h, "/%g/\n", 421.2345); + printf("/%g/\n", 421.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%g/, 4214.2345\n"); + snprintf(holder, sizeof holder, "/%g/\n", 4214.2345); + asprintf(&h, "/%g/\n", 4214.2345); + printf("/%g/\n", 4214.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.5g/, 4214.2345\n"); + snprintf(holder, sizeof holder, "/%.5g/\n", 4214.2345); + asprintf(&h, "/%.5g/\n", 4214.2345); + printf("/%.5g/\n", 4214.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%.4g/, 4214.2345\n"); + snprintf(holder, sizeof holder, "/%.4g/\n", 4214.2345); + asprintf(&h, "/%.4g/\n", 4214.2345); + printf("/%.4g/\n", 4214.2345); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'ld %%'ld/, 12345, 1234567\n"); + snprintf(holder, sizeof holder, "/%'ld %'ld/\n", 12345, 1234567); + asprintf(&h, "/%'ld %'ld/\n", 12345, 1234567); + printf("/%'ld %'ld/\n", 12345, 1234567); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'ld %%'ld/, 336, 3336\n"); + snprintf(holder, sizeof holder, "/%'ld %'ld/\n", 336, 3336); + asprintf(&h, "/%'ld %'ld/\n", 336, 3336); + printf("/%'ld %'ld/\n", 336, 3336); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'ld %%'ld/, -42786, -142786\n"); + snprintf(holder, sizeof holder, "/%'ld %'ld/\n", -42786, -142786); + asprintf(&h, "/%'ld %'ld/\n", -42786, -142786); + printf("/%'ld %'ld/\n", -42786, -142786); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'f %%'f/, 421.2345, 421234.56789\n"); + snprintf(holder, sizeof holder, "/%'f %'f/\n", 421.2345, 421234.56789); + asprintf(&h, "/%'f %'f/\n", 421.2345, 421234.56789); + printf("/%'f %'f/\n", 421.2345, 421234.56789); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'f %%'f/, -421.2345, -421234.56789\n"); + snprintf(holder, sizeof holder, "/%'f %'f/\n", -421.2345, -421234.56789); + asprintf(&h, "/%'f %'f/\n", -421.2345, -421234.56789); + printf("/%'f %'f/\n", -421.2345, -421234.56789); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'g %%'g/, 421.2345, 421234.56789\n"); + snprintf(holder, sizeof holder, "/%'g %'g/\n", 421.2345, 421234.56789); + asprintf(&h, "/%'g %'g/\n", 421.2345, 421234.56789); + printf("/%'g %'g/\n", 421.2345, 421234.56789); + printf("%s", holder); + printf("%s\n", h); + + printf("/%%'g %%'g/, -421.2345, -421234.56789\n"); + snprintf(holder, sizeof holder, "/%'g %'g/\n", -421.2345, -421234.56789); + asprintf(&h, "/%'g %'g/\n", -421.2345, -421234.56789); + printf("/%'g %'g/\n", -421.2345, -421234.56789); + printf("%s", holder); + printf("%s\n", h); +#endif + + printf("/%%'g/, 4213455.8392\n"); + snprintf(holder, sizeof holder, "/%'g/\n", 4213455.8392); + asprintf(&h, "/%'g/\n", 4213455.8392); + printf("/%'g/\n", 4213455.8392); + printf("%s", holder); + printf("%s\n", h); + + exit (0); +} +#endif diff --git a/po/LINGUAS b/po/LINGUAS index c93c6e383..80c74148d 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,2 +1,2 @@ # Set of available languages. -en@quot en@boldquot ru +en@quot en@boldquot ru sv diff --git a/po/bash-3.1.pot b/po/bash-3.1.pot new file mode 100644 index 000000000..c96e86669 --- /dev/null +++ b/po/bash-3.1.pot @@ -0,0 +1,2568 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2005-10-03 17:31-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:48 +msgid "bad array subscript" +msgstr "" + +#: arrayfunc.c:360 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "" + +#: bashhist.c:328 +#, c-format +msgid "%s: cannot create: %s" +msgstr "" + +#: bashline.c:2947 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:2996 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3025 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3059 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:194 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:233 +#, c-format +msgid "%s: cannot read: %s" +msgstr "" + +#: builtins/bind.def:248 +#, c-format +msgid "`%s': cannot unbind" +msgstr "" + +#: builtins/bind.def:283 +#, c-format +msgid "`%s': unknown function name" +msgstr "" + +#: builtins/bind.def:291 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:295 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:128 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:132 +msgid "Returns the context of the current subroutine call." +msgstr "" + +#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 +#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 +#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 +#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 +#: builtins/pushd.def:712 builtins/pushd.def:715 +msgid " " +msgstr "" + +#: builtins/caller.def:134 +msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +msgstr "" + +#: builtins/caller.def:135 +msgid "returns \"$line $subroutine $filename\"; this extra information" +msgstr "" + +#: builtins/caller.def:136 +msgid "can be used used to provide a stack trace." +msgstr "" + +#: builtins/caller.def:138 +msgid "The value of EXPR indicates how many call frames to go back before the" +msgstr "" + +#: builtins/caller.def:139 +msgid "current one; the top frame is frame 0." +msgstr "" + +#: builtins/cd.def:203 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:215 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:133 test.c:921 +msgid "too many arguments" +msgstr "" + +#: builtins/common.c:157 shell.c:474 shell.c:747 +#, c-format +msgid "%s: option requires an argument" +msgstr "" + +#: builtins/common.c:164 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:171 +#, c-format +msgid "%s: not found" +msgstr "" + +#: builtins/common.c:180 shell.c:760 +#, c-format +msgid "%s: invalid option" +msgstr "" + +#: builtins/common.c:187 +#, c-format +msgid "%s: invalid option name" +msgstr "" + +#: builtins/common.c:194 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "" + +#: builtins/common.c:201 +#, c-format +msgid "%s: invalid number" +msgstr "" + +#: builtins/common.c:208 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:215 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:222 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "" + +#: builtins/common.c:230 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:230 builtins/common.c:232 +msgid "argument" +msgstr "" + +#: builtins/common.c:232 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:240 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:248 +#, c-format +msgid "%s: no job control" +msgstr "" + +#: builtins/common.c:250 +msgid "no job control" +msgstr "" + +#: builtins/common.c:260 +#, c-format +msgid "%s: restricted" +msgstr "" + +#: builtins/common.c:262 +msgid "restricted" +msgstr "" + +#: builtins/common.c:270 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:276 +#, c-format +msgid "write error: %s" +msgstr "" + +#: builtins/common.c:484 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:550 builtins/common.c:552 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "" + +#: builtins/complete.def:251 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:381 builtins/complete.def:524 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:571 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:573 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/declare.def:105 +msgid "can only be used in a function" +msgstr "" + +#: builtins/declare.def:301 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:313 execute_cmd.c:3986 +#, c-format +msgid "%s: readonly function" +msgstr "" + +#: builtins/declare.def:401 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "" + +#: builtins/enable.def:128 builtins/enable.def:136 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:303 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "" + +#: builtins/enable.def:326 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:450 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:465 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "" + +#: builtins/evalfile.c:129 execute_cmd.c:3852 shell.c:1408 +#, c-format +msgid "%s: is a directory" +msgstr "" + +#: builtins/evalfile.c:134 +#, c-format +msgid "%s: not a regular file" +msgstr "" + +#: builtins/evalfile.c:142 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/exec.def:205 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "" + +#: builtins/exit.def:83 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:111 +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/fc.def:259 +msgid "no command found" +msgstr "" + +#: builtins/fc.def:329 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:350 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "" + +#: builtins/fg_bg.def:149 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:109 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "" + +#: builtins/hash.def:83 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:128 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/help.def:108 +msgid "Shell commands matching keywords `" +msgstr "" + +#: builtins/help.def:110 +msgid "Shell commands matching keyword `" +msgstr "" + +#: builtins/help.def:138 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:164 +#, c-format +msgid "%s: cannot open: %s" +msgstr "" + +#: builtins/help.def:182 +msgid "" +"These shell commands are defined internally. Type `help' to see this list.\n" +"Type `help name' to find out more about the function `name'.\n" +"Use `info bash' to find out more about the shell in general.\n" +"Use `man -k' or `info' to find out more about commands not in this list.\n" +"\n" +"A star (*) next to a name means that the command is disabled.\n" +"\n" +msgstr "" + +#: builtins/history.def:150 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:182 +msgid "history position" +msgstr "" + +#: builtins/history.def:400 +#, c-format +msgid "%s: history expansion failed" +msgstr "" + +#: builtins/jobs.def:99 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:187 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:250 +msgid "Unknown error" +msgstr "" + +#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 +msgid "expression expected" +msgstr "" + +#: builtins/printf.def:327 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:502 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:708 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:173 +msgid "no other directory" +msgstr "" + +#: builtins/pushd.def:440 +msgid "" +msgstr "" + +#: builtins/pushd.def:657 +msgid "Display the list of currently remembered directories. Directories" +msgstr "" + +#: builtins/pushd.def:658 +msgid "find their way onto the list with the `pushd' command; you can get" +msgstr "" + +#: builtins/pushd.def:659 +msgid "back up through the list with the `popd' command." +msgstr "" + +#: builtins/pushd.def:661 +msgid "The -l flag specifies that `dirs' should not print shorthand versions" +msgstr "" + +#: builtins/pushd.def:662 +msgid "of directories which are relative to your home directory. This means" +msgstr "" + +#: builtins/pushd.def:663 +msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +msgstr "" + +#: builtins/pushd.def:664 +msgid "causes `dirs' to print the directory stack with one entry per line," +msgstr "" + +#: builtins/pushd.def:665 +msgid "prepending the directory name with its position in the stack. The -p" +msgstr "" + +#: builtins/pushd.def:666 +msgid "flag does the same thing, but the stack position is not prepended." +msgstr "" + +#: builtins/pushd.def:667 +msgid "The -c flag clears the directory stack by deleting all of the elements." +msgstr "" + +#: builtins/pushd.def:669 +msgid "+N displays the Nth entry counting from the left of the list shown by" +msgstr "" + +#: builtins/pushd.def:670 builtins/pushd.def:673 +msgid " dirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:672 +msgid "" +"-N displays the Nth entry counting from the right of the list shown by" +msgstr "" + +#: builtins/pushd.def:678 +msgid "Adds a directory to the top of the directory stack, or rotates" +msgstr "" + +#: builtins/pushd.def:679 +msgid "the stack, making the new top of the stack the current working" +msgstr "" + +#: builtins/pushd.def:680 +msgid "directory. With no arguments, exchanges the top two directories." +msgstr "" + +#: builtins/pushd.def:682 +msgid "+N Rotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins/pushd.def:683 +msgid " from the left of the list shown by `dirs', starting with" +msgstr "" + +#: builtins/pushd.def:684 builtins/pushd.def:688 +msgid " zero) is at the top." +msgstr "" + +#: builtins/pushd.def:686 +msgid "-N Rotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins/pushd.def:687 +msgid " from the right of the list shown by `dirs', starting with" +msgstr "" + +#: builtins/pushd.def:690 +msgid "-n suppress the normal change of directory when adding directories" +msgstr "" + +#: builtins/pushd.def:691 +msgid " to the stack, so only the stack is manipulated." +msgstr "" + +#: builtins/pushd.def:693 +msgid "dir adds DIR to the directory stack at the top, making it the" +msgstr "" + +#: builtins/pushd.def:694 +msgid " new current working directory." +msgstr "" + +#: builtins/pushd.def:696 builtins/pushd.def:716 +msgid "You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins/pushd.def:701 +msgid "Removes entries from the directory stack. With no arguments," +msgstr "" + +#: builtins/pushd.def:702 +msgid "removes the top directory from the stack, and cd's to the new" +msgstr "" + +#: builtins/pushd.def:703 +msgid "top directory." +msgstr "" + +#: builtins/pushd.def:705 +msgid "+N removes the Nth entry counting from the left of the list" +msgstr "" + +#: builtins/pushd.def:706 +msgid " shown by `dirs', starting with zero. For example: `popd +0'" +msgstr "" + +#: builtins/pushd.def:707 +msgid " removes the first directory, `popd +1' the second." +msgstr "" + +#: builtins/pushd.def:709 +msgid "-N removes the Nth entry counting from the right of the list" +msgstr "" + +#: builtins/pushd.def:710 +msgid " shown by `dirs', starting with zero. For example: `popd -0'" +msgstr "" + +#: builtins/pushd.def:711 +msgid " removes the last directory, `popd -1' the next to last." +msgstr "" + +#: builtins/pushd.def:713 +msgid "-n suppress the normal change of directory when removing directories" +msgstr "" + +#: builtins/pushd.def:714 +msgid " from the stack, so only the stack is manipulated." +msgstr "" + +#: builtins/read.def:211 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:234 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/read.def:241 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/read.def:474 +#, c-format +msgid "read error: %d: %s" +msgstr "" + +#: builtins/return.def:63 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:745 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:782 +#, c-format +msgid "%s: cannot unset" +msgstr "" + +#: builtins/set.def:789 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "" + +#: builtins/set.def:800 +#, c-format +msgid "%s: not an array variable" +msgstr "" + +#: builtins/setattr.def:166 +#, c-format +msgid "%s: not a function" +msgstr "" + +#: builtins/shift.def:66 builtins/shift.def:72 +msgid "shift count" +msgstr "" + +#: builtins/shopt.def:227 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:292 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:117 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:137 +#, c-format +msgid "%s: file not found" +msgstr "" + +#: builtins/suspend.def:93 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:103 +msgid "cannot suspend a login shell" +msgstr "" + +#: builtins/type.def:232 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:253 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:273 +#, c-format +msgid "%s is a function\n" +msgstr "" + +#: builtins/type.def:298 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:319 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:339 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:344 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:370 +#, c-format +msgid "`%c': bad command" +msgstr "" + +#: builtins/ulimit.def:399 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "" + +#: builtins/ulimit.def:437 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "" + +#: builtins/umask.def:112 +msgid "octal number" +msgstr "" + +#: builtins/umask.def:226 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:281 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:165 +#, c-format +msgid "last command: %s\n" +msgstr "" + +#: error.c:173 +msgid "Aborting..." +msgstr "" + +#: error.c:260 +#, c-format +msgid "%s: warning: " +msgstr "" + +#: error.c:405 +msgid "unknown command error" +msgstr "" + +#: error.c:406 +msgid "bad command type" +msgstr "" + +#: error.c:407 +msgid "bad connector" +msgstr "" + +#: error.c:408 +msgid "bad jump" +msgstr "" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "" + +#: eval.c:176 +msgid "timed out waiting for input: auto-logout\n" +msgstr "" + +#: execute_cmd.c:471 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1036 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:3551 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" + +#: execute_cmd.c:3639 +#, c-format +msgid "%s: command not found" +msgstr "" + +#: execute_cmd.c:3876 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "" + +#: execute_cmd.c:3913 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "" + +#: execute_cmd.c:4025 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "" + +#: expr.c:240 +msgid "expression recursion level exceeded" +msgstr "" + +#: expr.c:264 +msgid "recursion stack underflow" +msgstr "" + +#: expr.c:375 +msgid "syntax error in expression" +msgstr "" + +#: expr.c:415 +msgid "attempted assignment to non-variable" +msgstr "" + +#: expr.c:436 expr.c:441 expr.c:751 +msgid "division by 0" +msgstr "" + +#: expr.c:467 +msgid "bug: bad expassign token" +msgstr "" + +#: expr.c:509 +msgid "`:' expected for conditional expression" +msgstr "" + +#: expr.c:776 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:821 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:849 +msgid "missing `)'" +msgstr "" + +#: expr.c:892 +msgid "syntax error: operand expected" +msgstr "" + +#: expr.c:1178 +msgid "invalid number" +msgstr "" + +#: expr.c:1182 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1202 +msgid "value too great for base" +msgstr "" + +#: general.c:62 +msgid "getcwd: cannot access parent directories" +msgstr "" + +#: input.c:231 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:239 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" + +#: jobs.c:923 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1308 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "" + +#: jobs.c:1981 nojobs.c:648 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" + +#: jobs.c:2180 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2435 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2657 +#, c-format +msgid "%s: job has terminated" +msgstr "" + +#: jobs.c:2666 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3452 +msgid "no job control in this shell" +msgstr "" + +#: lib/malloc/malloc.c:298 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:314 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:740 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:817 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:820 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:839 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:845 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:942 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:957 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:963 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:175 +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:182 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:218 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/malloc/watch.c:46 +msgid "allocated" +msgstr "" + +#: lib/malloc/watch.c:48 +msgid "freed" +msgstr "" + +#: lib/malloc/watch.c:50 +msgid "requesting resize" +msgstr "" + +#: lib/malloc/watch.c:52 +msgid "just resized" +msgstr "" + +#: lib/malloc/watch.c:54 +msgid "bug: unknown operation" +msgstr "" + +#: lib/malloc/watch.c:56 +#, c-format +msgid "malloc: watch alert: %p %s " +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:158 +#, c-format +msgid "%s: host unknown" +msgstr "" + +#: lib/sh/netopen.c:165 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:296 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:336 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:386 +msgid "You have mail in $_" +msgstr "" + +#: mailcheck.c:411 +msgid "You have new mail in $_" +msgstr "" + +#: mailcheck.c:427 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "" + +#: make_cmd.c:566 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "" + +#: make_cmd.c:736 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2747 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" + +#: parse.y:3043 +msgid "unexpected EOF while looking for `]]'" +msgstr "" + +#: parse.y:3048 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" + +#: parse.y:3052 +msgid "syntax error in conditional expression" +msgstr "" + +#: parse.y:3130 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3134 +msgid "expected `)'" +msgstr "" + +#: parse.y:3162 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3166 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3203 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3207 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3223 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3227 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3238 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "" + +#: parse.y:3241 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "" + +#: parse.y:3245 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "" + +#: parse.y:4461 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "" + +#: parse.y:4479 +#, c-format +msgid "syntax error near `%s'" +msgstr "" + +#: parse.y:4489 +msgid "syntax error: unexpected end of file" +msgstr "" + +#: parse.y:4489 +msgid "syntax error" +msgstr "" + +#: parse.y:4551 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "" + +#: parse.y:4710 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" + +#: pcomplete.c:1001 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:264 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "" + +#: print_cmd.c:1236 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:99 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:141 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "" + +#: redir.c:145 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "" + +#: redir.c:150 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "" + +#: redir.c:155 +#, c-format +msgid "cannot create temp file for here document: %s" +msgstr "" + +#: redir.c:509 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:956 +msgid "redirection error: cannot duplicate fd" +msgstr "" + +#: shell.c:309 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:313 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:849 +#, c-format +msgid "%c%c: invalid option" +msgstr "" + +#: shell.c:1598 +msgid "I have no name!" +msgstr "" + +#: shell.c:1733 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" + +#: shell.c:1735 +msgid "GNU long options:\n" +msgstr "" + +#: shell.c:1739 +msgid "Shell options:\n" +msgstr "" + +#: shell.c:1740 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "" + +#: shell.c:1755 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "" + +#: shell.c:1761 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" + +#: shell.c:1762 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" + +#: shell.c:1763 +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:494 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: subst.c:1123 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "" + +#: subst.c:2269 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "" + +#: subst.c:4208 subst.c:4224 +msgid "cannot make pipe for process substitution" +msgstr "" + +#: subst.c:4255 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4300 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "" + +#: subst.c:4302 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "" + +#: subst.c:4310 +#, c-format +msgid "cannout reset nodelay mode for fd %d" +msgstr "" + +#: subst.c:4320 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" + +#: subst.c:4495 +msgid "cannot make pipe for command substitution" +msgstr "" + +#: subst.c:4531 +msgid "cannot make child for command substitution" +msgstr "" + +#: subst.c:4548 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5013 +#, c-format +msgid "%s: parameter null or not set" +msgstr "" + +#: subst.c:5287 +#, c-format +msgid "%s: substring expression < 0" +msgstr "" + +#: subst.c:6058 +#, c-format +msgid "%s: bad substitution" +msgstr "" + +#: subst.c:6134 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "" + +#: subst.c:7687 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:154 +msgid "argument expected" +msgstr "" + +#: test.c:163 +#, c-format +msgid "%s: integer expression expected" +msgstr "" + +#: test.c:361 +msgid "`)' expected" +msgstr "" + +#: test.c:363 +#, c-format +msgid "`)' expected, found %s" +msgstr "" + +#: test.c:378 test.c:787 test.c:790 +#, c-format +msgid "%s: unary operator expected" +msgstr "" + +#: test.c:543 test.c:830 +#, c-format +msgid "%s: binary operator expected" +msgstr "" + +#: test.c:905 +msgid "missing `]'" +msgstr "" + +#: trap.c:194 +msgid "invalid signal number" +msgstr "" + +#: trap.c:309 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:313 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:349 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "" + +#: variables.c:320 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "" + +#: variables.c:692 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1651 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:2807 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3021 variables.c:3030 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3036 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3463 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3476 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3548 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:82 +msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +msgstr "" + +#: xmalloc.c:93 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:95 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:115 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:117 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:151 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:153 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:175 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:177 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:244 +msgid "" +" `alias' with no arguments or with the -p option prints the list\n" +" of aliases in the form alias NAME=VALUE on standard output.\n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded. Alias returns\n" +" true unless a NAME is given for which no alias has been defined." +msgstr "" + +#: builtins.c:257 +msgid "" +" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +" then remove all alias definitions." +msgstr "" + +#: builtins.c:266 +msgid "" +" Bind a key sequence to a Readline function or a macro, or set\n" +" a Readline variable. The non-option argument syntax is equivalent\n" +" to that found in ~/.inputrc, but must be passed as a single argument:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind accepts the following options:\n" +" -m keymap Use `keymap' as the keymap for the duration of " +"this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" -f filename Read key bindings from FILENAME.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input." +msgstr "" + +#: builtins.c:297 +msgid "" +" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +" break N levels." +msgstr "" + +#: builtins.c:304 +msgid "" +" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resume at the N-th enclosing loop." +msgstr "" + +#: builtins.c:311 +msgid "" +" Run a shell builtin. This is useful when you wish to rename a\n" +" shell builtin to be a function, but need the functionality of the\n" +" builtin within the function itself." +msgstr "" + +#: builtins.c:320 +msgid "" +" Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" +" returns \"$line $subroutine $filename\"; this extra information\n" +" can be used used to provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + +#: builtins.c:334 +msgid "" +" Change the current directory to DIR. The variable $HOME is the\n" +" default DIR. The variable CDPATH defines the search path for\n" +" the directory containing DIR. Alternative directory names in CDPATH\n" +" are separated by a colon (:). A null directory name is the same as\n" +" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" +" then CDPATH is not used. If the directory is not found, and the\n" +" shell option `cdable_vars' is set, then try the word as a variable\n" +" name. If that variable has a value, then cd to the value of that\n" +" variable. The -P option says to use the physical directory structure\n" +" instead of following symbolic links; the -L option forces symbolic " +"links\n" +" to be followed." +msgstr "" + +#: builtins.c:350 +msgid "" +" Print the current working directory. With the -P option, pwd prints\n" +" the physical directory, without any symbolic links; the -L option\n" +" makes pwd follow symbolic links." +msgstr "" + +#: builtins.c:358 +msgid " No effect; the command does nothing. A zero exit code is returned." +msgstr "" + +#: builtins.c:364 +msgid " Return a successful result." +msgstr "" + +#: builtins.c:370 +msgid " Return an unsuccessful result." +msgstr "" + +#: builtins.c:376 +msgid "" +" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +" function called `ls', and you wish to call the command `ls', you can\n" +" say \"command ls\". If the -p option is given, a default value is used\n" +" for PATH that is guaranteed to find all of the standard utilities. If\n" +" the -V or -v option is given, a string is printed describing COMMAND.\n" +" The -V option produces a more verbose description." +msgstr "" + +#: builtins.c:387 +msgid "" +" Declare variables and/or give them attributes. If no NAMEs are\n" +" given, then display the values of variables instead. The -p option\n" +" will display the attributes and values of each NAME.\n" +" \n" +" The flags are:\n" +" \n" +" -a\tto make NAMEs arrays (if supported)\n" +" -f\tto select from among function names only\n" +" -F\tto display function names (and line number and source file name " +"if\n" +" \tdebugging) without definitions\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -x\tto make NAMEs export\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" `let') done when the variable is assigned to.\n" +" \n" +" When displaying values of variables, -f displays a function's name\n" +" and definition. The -F option restricts the display to function\n" +" name only.\n" +" \n" +" Using `+' instead of `-' turns off the given attribute instead. When\n" +" used in a function, makes NAMEs local, as with the `local' command." +msgstr "" + +#: builtins.c:416 +msgid " Obsolete. See `declare'." +msgstr "" + +#: builtins.c:422 +msgid "" +" Create a local variable called NAME, and give it VALUE. LOCAL\n" +" can only be used within a function; it makes the variable NAME\n" +" have a visible scope restricted to that function and its children." +msgstr "" + +#: builtins.c:431 +msgid "" +" Output the ARGs. If -n is specified, the trailing newline is\n" +" suppressed. If the -e option is given, interpretation of the\n" +" following backslash-escaped characters is turned on:\n" +" \t\\a\talert (bell)\n" +" \t\\b\tbackspace\n" +" \t\\c\tsuppress trailing newline\n" +" \t\\E\tescape character\n" +" \t\\f\tform feed\n" +" \t\\n\tnew line\n" +" \t\\r\tcarriage return\n" +" \t\\t\thorizontal tab\n" +" \t\\v\tvertical tab\n" +" \t\\\\\tbackslash\n" +" \t\\num\tthe character whose ASCII code is NUM (octal).\n" +" \n" +" You can explicitly turn off the interpretation of the above characters\n" +" with the -E option." +msgstr "" + +#: builtins.c:455 +msgid "" +" Output the ARGs. If -n is specified, the trailing newline is suppressed." +msgstr "" + +#: builtins.c:462 +msgid "" +" Enable and disable builtin shell commands. This allows\n" +" you to use a disk command which has the same name as a shell\n" +" builtin without specifying a full pathname. If -n is used, the\n" +" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +" to use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'. On systems supporting dynamic\n" +" loading, the -f option may be used to load new builtins from the\n" +" shared object FILENAME. The -d option will delete a builtin\n" +" previously loaded with -f. If no non-option names are given, or\n" +" the -p option is supplied, a list of builtins is printed. The\n" +" -a option means to print every builtin with an indication of whether\n" +" or not it is enabled. The -s option restricts the output to the " +"POSIX.2\n" +" `special' builtins. The -n option displays a list of all disabled " +"builtins." +msgstr "" + +#: builtins.c:480 +msgid " Read ARGs as input to the shell and execute the resulting command(s)." +msgstr "" + +#: builtins.c:486 +msgid "" +" Getopts is used by shell procedures to parse positional parameters.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead." +msgstr "" + +#: builtins.c:521 +msgid "" +" Exec FILE, replacing this shell with the specified program.\n" +" If FILE is not specified, the redirections take effect in this\n" +" shell. If the first argument is `-l', then place a dash in the\n" +" zeroth arg passed to FILE, as login does. If the `-c' option\n" +" is supplied, FILE is executed with a null environment. The `-a'\n" +" option means to make set argv[0] of the executed process to NAME.\n" +" If the file cannot be executed and the shell is not interactive,\n" +" then the shell exits, unless the shell option `execfail' is set." +msgstr "" + +#: builtins.c:534 +msgid "" +" Exit the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:541 +msgid " Logout of a login shell." +msgstr "" + +#: builtins.c:548 +msgid "" +" fc is used to list or edit and re-execute commands from the history list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" -e ENAME selects which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" then vi.\n" +" \n" +" -l means list lines instead of editing.\n" +" -n means no line numbers listed.\n" +" -r means reverse the order of the lines (making it newest listed " +"first).\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command." +msgstr "" + +#: builtins.c:573 +msgid "" +" Place JOB_SPEC in the foreground, and make it the current job. If\n" +" JOB_SPEC is not present, the shell's notion of the current job is\n" +" used." +msgstr "" + +#: builtins.c:583 +msgid "" +" Place each JOB_SPEC in the background, as if it had been started with\n" +" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" +" job is used." +msgstr "" + +#: builtins.c:592 +msgid "" +" For each NAME, the full pathname of the command is determined and\n" +" remembered. If the -p option is supplied, PATHNAME is used as the\n" +" full pathname of NAME, and no path search is performed. The -r\n" +" option causes the shell to forget all remembered locations. The -d\n" +" option causes the shell to forget the remembered location of each NAME.\n" +" If the -t option is supplied the full pathname to which each NAME\n" +" corresponds is printed. If multiple NAME arguments are supplied with\n" +" -t, the NAME is printed before the hashed full pathname. The -l option\n" +" causes output to be displayed in a format that may be reused as input.\n" +" If no arguments are given, information about remembered commands is " +"displayed." +msgstr "" + +#: builtins.c:608 +msgid "" +" Display helpful information about builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise a list of the builtins is printed. The -s option\n" +" restricts the output for each builtin command matching PATTERN to\n" +" a short usage synopsis." +msgstr "" + +#: builtins.c:620 +msgid "" +" Display the history list with line numbers. Lines listed with\n" +" with a `*' have been modified. Argument of N says to list only\n" +" the last N lines. The `-c' option causes the history list to be\n" +" cleared by deleting all of the entries. The `-d' option deletes\n" +" the history entry at offset OFFSET. The `-w' option writes out the\n" +" current history to the history file; `-r' means to read the file and\n" +" append the contents to the history list instead. `-a' means\n" +" to append history lines from this session to the history file.\n" +" Argument `-n' means to read all history lines not already read\n" +" from the history file and append them to the history list.\n" +" \n" +" If FILENAME is given, then that is used as the history file else\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" If the -s option is supplied, the non-option ARGs are appended to\n" +" the history list as a single entry. The -p option means to perform\n" +" history expansion on each ARG and display the result, without storing\n" +" anything in the history list.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed otherwise." +msgstr "" + +#: builtins.c:648 +msgid "" +" Lists the active jobs. The -l option lists process id's in addition\n" +" to the normal information; the -p option lists process id's only.\n" +" If -n is given, only processes that have changed status since the last\n" +" notification are printed. JOBSPEC restricts output to that job. The\n" +" -r and -s options restrict output to running and stopped jobs only,\n" +" respectively. Without options, the status of all active jobs is\n" +" printed. If -x is given, COMMAND is run after all job specifications\n" +" that appear in ARGS have been replaced with the process ID of that " +"job's\n" +" process group leader." +msgstr "" + +#: builtins.c:664 +msgid "" +" By default, removes each JOBSPEC argument from the table of active jobs.\n" +" If the -h option is given, the job is not removed from the table, but " +"is\n" +" marked so that SIGHUP is not sent to the job if the shell receives a\n" +" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +"all\n" +" jobs from the job table; the -r option means to remove only running jobs." +msgstr "" + +#: builtins.c:675 +msgid "" +" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" +" lists the signal names; if arguments follow `-l' they are assumed to\n" +" be signal numbers for which names should be listed. Kill is a shell\n" +" builtin for two reasons: it allows job IDs to be used instead of\n" +" process IDs, and, if you have reached the limit on processes that\n" +" you can create, you don't have to start a process to kill another one." +msgstr "" + +#: builtins.c:687 +msgid "" +" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +" is done in fixed-width integers with no check for overflow, though\n" +" division by 0 is trapped and flagged as an error. The following\n" +" list of operators is grouped into levels of equal-precedence operators.\n" +" The levels are listed in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" +" otherwise." +msgstr "" + +#: builtins.c:730 +msgid "" +" One line is read from the standard input, or from file descriptor FD if " +"the\n" +" -u option is supplied, and the first word is assigned to the first " +"NAME,\n" +" the second word to the second NAME, and so on, with leftover words " +"assigned\n" +" to the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters. If no NAMEs are supplied, the line read is stored in the " +"REPLY\n" +" variable. If the -r option is given, this signifies `raw' input, and\n" +" backslash escaping is disabled. The -d option causes read to continue\n" +" until the first character of DELIM is read, rather than newline. If the " +"-p\n" +" option is supplied, the string PROMPT is output without a trailing " +"newline\n" +" before attempting to read. If -a is supplied, the words read are " +"assigned\n" +" to sequential indices of ARRAY, starting at zero. If -e is supplied " +"and\n" +" the shell is interactive, readline is used to obtain the line. If -n " +"is\n" +" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" +" characters have been read. The -s option causes input coming from a\n" +" terminal to not be echoed.\n" +" \n" +" The -t option causes read to time out and return failure if a complete " +"line\n" +" of input is not read within TIMEOUT seconds. If the TMOUT variable is " +"set,\n" +" its value is the default timeout. The return code is zero, unless end-" +"of-file\n" +" is encountered, read times out, or an invalid file descriptor is " +"supplied as\n" +" the argument to -u." +msgstr "" + +#: builtins.c:756 +msgid "" +" Causes a function to exit with the return value specified by N. If N\n" +" is omitted, the return status is that of the last command." +msgstr "" + +#: builtins.c:763 +msgid "" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive " +"commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status " +"of\n" +" the last command to exit with a non-zero " +"status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the 1003.2 standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not " +"match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid " +"and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed." +msgstr "" + +#: builtins.c:836 +msgid "" +" For each NAME, remove the corresponding variable or function. Given\n" +" the `-v', unset will only act on variables. Given the `-f' flag,\n" +" unset will only act on functions. With neither flag, unset first\n" +" tries to unset a variable, and if that fails, then tries to unset a\n" +" function. Some variables cannot be unset; also see readonly." +msgstr "" + +#: builtins.c:846 +msgid "" +" NAMEs are marked for automatic export to the environment of\n" +" subsequently executed commands. If the -f option is given,\n" +" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +" is given, a list of all names that are exported in this shell is\n" +" printed. An argument of `-n' says to remove the export property\n" +" from subsequent NAMEs. An argument of `--' disables further option\n" +" processing." +msgstr "" + +#: builtins.c:858 +msgid "" +" The given NAMEs are marked readonly and the values of these NAMEs may\n" +" not be changed by subsequent assignment. If the -f option is given,\n" +" then functions corresponding to the NAMEs are so marked. If no\n" +" arguments are given, or if `-p' is given, a list of all readonly names\n" +" is printed. The `-a' option means to treat each NAME as\n" +" an array variable. An argument of `--' disables further option\n" +" processing." +msgstr "" + +#: builtins.c:870 +msgid "" +" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +" not given, it is assumed to be 1." +msgstr "" + +#: builtins.c:877 builtins.c:886 +msgid "" +" Read and execute commands from FILENAME and return. The pathnames\n" +" in $PATH are used to find the directory containing FILENAME. If any\n" +" ARGUMENTS are supplied, they become the positional parameters when\n" +" FILENAME is executed." +msgstr "" + +#: builtins.c:896 +msgid "" +" Suspend the execution of this shell until it receives a SIGCONT\n" +" signal. The `-f' if specified says not to complain about this\n" +" being a login shell if it is; just suspend anyway." +msgstr "" + +#: builtins.c:905 +msgid "" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 " +"lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2." +msgstr "" + +#: builtins.c:975 +msgid "" +" This is a synonym for the \"test\" builtin, but the last\n" +" argument must be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:982 +msgid "" +" Print the accumulated user and system times for processes run from\n" +" the shell." +msgstr "" + +#: builtins.c:989 +msgid "" +" The command ARG is to be read and executed when the shell receives\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" +" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" +" is DEBUG, ARG is executed after every simple command. If the`-p' " +"option\n" +" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" +" displayed. If no arguments are supplied or if only `-p' is given, trap\n" +" prints the list of commands associated with each signal. Each " +"SIGNAL_SPEC\n" +" is either a signal name in or a signal number. Signal names\n" +" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" +" a list of signal names and their corresponding numbers. Note that a\n" +" signal can be sent to the shell with \"kill -signal $$\"." +msgstr "" + +#: builtins.c:1008 +msgid "" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" If the -t option is used, `type' outputs a single word which is one of\n" +" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" +" alias, shell reserved word, shell function, shell builtin, disk file,\n" +" or unfound, respectively.\n" +" \n" +" If the -p flag is used, `type' either returns the name of the disk\n" +" file that would be executed, or nothing if `type -t NAME' would not\n" +" return `file'.\n" +" \n" +" If the -a flag is used, `type' displays all of the places that contain\n" +" an executable named `file'. This includes aliases, builtins, and\n" +" functions, if and only if the -p flag is not also used.\n" +" \n" +" The -f flag suppresses shell function lookup.\n" +" \n" +" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" +" builtin, or function, and returns the name of the disk file that would\n" +" be executed." +msgstr "" + +#: builtins.c:1035 +msgid "" +" Ulimit provides control over the resources available to processes\n" +" started by the shell, on systems that allow such control. If an\n" +" option is given, it is interpreted as follows:\n" +" \n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -f\tthe maximum size of files created by the shell\n" +" -i the maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q the maximum number of bytes in POSIX message queues\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x the maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource;\n" +" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" +" the current soft limit, the current hard limit, and no limit, " +"respectively.\n" +" Otherwise, the current value of the specified resource is printed.\n" +" If no option is given, then -f is assumed. Values are in 1024-byte\n" +" increments, except for -t, which is in seconds, -p, which is in\n" +" increments of 512 bytes, and -u, which is an unscaled number of\n" +" processes." +msgstr "" + +#: builtins.c:1071 +msgid "" +" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +" `-S' is supplied, the current value of the mask is printed. The `-S'\n" +" option makes the output symbolic; otherwise an octal number is output.\n" +" If `-p' is supplied, and MODE is omitted, the output is in a form\n" +" that may be used as input. If MODE begins with a digit, it is\n" +" interpreted as an octal number, otherwise it is a symbolic mode string\n" +" like that accepted by chmod(1)." +msgstr "" + +#: builtins.c:1084 +msgid "" +" Wait for the specified process and report its termination status. If\n" +" N is not given, all currently active child processes are waited for,\n" +" and the return code is zero. N may be a process ID or a job\n" +" specification; if a job spec is given, all processes in the job's\n" +" pipeline are waited for." +msgstr "" + +#: builtins.c:1096 +msgid "" +" Wait for the specified process and report its termination status. If\n" +" N is not given, all currently active child processes are waited for,\n" +" and the return code is zero. N is a process ID; if it is not given,\n" +" all child processes of the shell are waited for." +msgstr "" + +#: builtins.c:1106 +msgid "" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed." +msgstr "" + +#: builtins.c:1115 +msgid "" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1." +msgstr "" + +#: builtins.c:1128 +msgid "" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed." +msgstr "" + +#: builtins.c:1144 +msgid "" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" The return status is the return status of PIPELINE. The `-p' option\n" +" prints the timing summary in a slightly different format. This uses\n" +" the value of the TIMEFORMAT variable as the output format." +msgstr "" + +#: builtins.c:1154 +msgid "" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns." +msgstr "" + +#: builtins.c:1161 +msgid "" +" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true." +msgstr "" + +#: builtins.c:1173 +msgid "" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero." +msgstr "" + +#: builtins.c:1180 +msgid "" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero." +msgstr "" + +#: builtins.c:1187 +msgid "" +" Create a simple command invoked by NAME which runs COMMANDS.\n" +" Arguments on the command line along with NAME are passed to the\n" +" function as $0 .. $n." +msgstr "" + +#: builtins.c:1195 +msgid "" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands." +msgstr "" + +#: builtins.c:1202 +msgid "" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'." +msgstr "" + +#: builtins.c:1212 +msgid "" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "" + +#: builtins.c:1219 +msgid "" +" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators\n" +" \n" +" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" +" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" +" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of " +"the\n" +" operator is used as a pattern and pattern matching is performed. The\n" +" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value." +msgstr "" + +#: builtins.c:1237 +msgid "" +" BASH_VERSION Version information for this Bash.\n" +" CDPATH A colon-separated list of directories to search\n" +" \t\tfor directries given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE The name of the file where your command history is " +"stored.\n" +" HISTFILESIZE The maximum number of lines this file can contain.\n" +" HISTSIZE The maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME The complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE The type of CPU this version of Bash is running under.\n" +" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" +" PATH A colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND A command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1 The primary prompt string.\n" +" PS2 The secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM The name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume Non-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars Characters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1292 +msgid "" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -n\tsuppress the normal change of directory when adding directories\n" +" \tto the stack, so only the stack is manipulated.\n" +" \n" +" dir\tadds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins.c:1318 +msgid "" +" Removes entries from the directory stack. With no arguments,\n" +" removes the top directory from the stack, and cd's to the new\n" +" top directory.\n" +" \n" +" +N\tremoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tremoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" -n\tsuppress the normal change of directory when removing directories\n" +" \tfrom the stack, so only the stack is manipulated.\n" +" \n" +" You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins.c:1341 +msgid "" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" The -l flag specifies that `dirs' should not print shorthand versions\n" +" of directories which are relative to your home directory. This means\n" +" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" +" causes `dirs' to print the directory stack with one entry per line,\n" +" prepending the directory name with its position in the stack. The -p\n" +" flag does the same thing, but the stack position is not prepended.\n" +" The -c flag clears the directory stack by deleting all of the elements.\n" +" \n" +" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tdisplays the Nth entry counting from the right of the list shown by\n" +" \tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins.c:1364 +msgid "" +" Toggle the values of variables controlling optional behavior.\n" +" The -s flag means to enable (set) each OPTNAME; the -u flag\n" +" unsets each OPTNAME. The -q flag suppresses output; the exit\n" +" status indicates whether each OPTNAME is set or unset. The -o\n" +" option restricts the OPTNAMEs to those defined for use with\n" +" `set -o'. With no options, or with the -p option, a list of all\n" +" settable options is displayed, with an indication of whether or\n" +" not each is set." +msgstr "" + +#: builtins.c:1377 +msgid "" +" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +" is a character string which contains three types of objects: plain\n" +" characters, which are simply copied to standard output, character " +"escape\n" +" sequences which are converted and copied to the standard output, and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument. In addition to the standard printf(1) formats, %b means to\n" +" expand backslash escape sequences in the corresponding argument, and %q\n" +" means to quote the argument in a way that can be reused as shell input.\n" +" If the -v option is supplied, the output is placed into the value of " +"the\n" +" shell variable VAR rather than being sent to the standard output." +msgstr "" + +#: builtins.c:1393 +msgid "" +" For each NAME, specify how arguments are to be completed.\n" +" If the -p option is supplied, or if no options are supplied, existing\n" +" completion specifications are printed in a way that allows them to be\n" +" reused as input. The -r option removes a completion specification for\n" +" each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" + +#: builtins.c:1405 +msgid "" +" Display the possible completions depending on the options. Intended\n" +" to be used from within a shell function generating possible " +"completions.\n" +" If the optional WORD argument is supplied, matches against WORD are\n" +" generated." +msgstr "" diff --git a/po/bash-3.2.pot b/po/bash-3.2.pot new file mode 100644 index 000000000..4a79cc404 --- /dev/null +++ b/po/bash-3.2.pot @@ -0,0 +1,2578 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2006-10-23 17:20-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:48 +msgid "bad array subscript" +msgstr "" + +#: arrayfunc.c:362 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "" + +#: bashhist.c:331 +#, c-format +msgid "%s: cannot create: %s" +msgstr "" + +#: bashline.c:3030 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3079 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3108 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3142 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:194 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:233 +#, c-format +msgid "%s: cannot read: %s" +msgstr "" + +#: builtins/bind.def:248 +#, c-format +msgid "`%s': cannot unbind" +msgstr "" + +#: builtins/bind.def:283 +#, c-format +msgid "`%s': unknown function name" +msgstr "" + +#: builtins/bind.def:291 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:295 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:128 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:131 +msgid "Returns the context of the current subroutine call." +msgstr "" + +#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 +#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 +#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 +#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 +#: builtins/pushd.def:718 builtins/pushd.def:721 +msgid " " +msgstr "" + +#: builtins/caller.def:133 +msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +msgstr "" + +#: builtins/caller.def:134 +msgid "returns \"$line $subroutine $filename\"; this extra information" +msgstr "" + +#: builtins/caller.def:135 +msgid "can be used used to provide a stack trace." +msgstr "" + +#: builtins/caller.def:137 +msgid "The value of EXPR indicates how many call frames to go back before the" +msgstr "" + +#: builtins/caller.def:138 +msgid "current one; the top frame is frame 0." +msgstr "" + +#: builtins/cd.def:204 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:216 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:133 test.c:822 +msgid "too many arguments" +msgstr "" + +#: builtins/common.c:157 shell.c:474 shell.c:748 +#, c-format +msgid "%s: option requires an argument" +msgstr "" + +#: builtins/common.c:164 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:171 +#, c-format +msgid "%s: not found" +msgstr "" + +#: builtins/common.c:180 shell.c:761 +#, c-format +msgid "%s: invalid option" +msgstr "" + +#: builtins/common.c:187 +#, c-format +msgid "%s: invalid option name" +msgstr "" + +#: builtins/common.c:194 general.c:230 general.c:235 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "" + +#: builtins/common.c:201 +#, c-format +msgid "%s: invalid number" +msgstr "" + +#: builtins/common.c:208 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:215 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:222 error.c:451 +#, c-format +msgid "%s: readonly variable" +msgstr "" + +#: builtins/common.c:230 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:230 builtins/common.c:232 +msgid "argument" +msgstr "" + +#: builtins/common.c:232 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:240 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:248 +#, c-format +msgid "%s: no job control" +msgstr "" + +#: builtins/common.c:250 +msgid "no job control" +msgstr "" + +#: builtins/common.c:260 +#, c-format +msgid "%s: restricted" +msgstr "" + +#: builtins/common.c:262 +msgid "restricted" +msgstr "" + +#: builtins/common.c:270 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:276 +#, c-format +msgid "write error: %s" +msgstr "" + +#: builtins/common.c:481 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:547 builtins/common.c:549 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "" + +#: builtins/complete.def:251 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:381 builtins/complete.def:524 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:571 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:573 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/declare.def:106 +msgid "can only be used in a function" +msgstr "" + +#: builtins/declare.def:306 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:318 execute_cmd.c:4073 +#, c-format +msgid "%s: readonly function" +msgstr "" + +#: builtins/declare.def:406 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "" + +#: builtins/enable.def:128 builtins/enable.def:136 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:303 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "" + +#: builtins/enable.def:326 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:450 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:465 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "" + +#: builtins/evalfile.c:129 execute_cmd.c:3930 shell.c:1409 +#, c-format +msgid "%s: is a directory" +msgstr "" + +#: builtins/evalfile.c:134 +#, c-format +msgid "%s: not a regular file" +msgstr "" + +#: builtins/evalfile.c:142 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/exec.def:205 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "" + +#: builtins/exit.def:83 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:111 +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/fc.def:258 +msgid "no command found" +msgstr "" + +#: builtins/fc.def:328 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:349 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "" + +#: builtins/fg_bg.def:149 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:109 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "" + +#: builtins/hash.def:84 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:130 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/help.def:108 +msgid "Shell commands matching keywords `" +msgstr "" + +#: builtins/help.def:110 +msgid "Shell commands matching keyword `" +msgstr "" + +#: builtins/help.def:138 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:164 +#, c-format +msgid "%s: cannot open: %s" +msgstr "" + +#: builtins/help.def:182 +msgid "" +"These shell commands are defined internally. Type `help' to see this list.\n" +"Type `help name' to find out more about the function `name'.\n" +"Use `info bash' to find out more about the shell in general.\n" +"Use `man -k' or `info' to find out more about commands not in this list.\n" +"\n" +"A star (*) next to a name means that the command is disabled.\n" +"\n" +msgstr "" + +#: builtins/history.def:150 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:182 +msgid "history position" +msgstr "" + +#: builtins/history.def:400 +#, c-format +msgid "%s: history expansion failed" +msgstr "" + +#: builtins/jobs.def:99 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:187 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:250 +msgid "Unknown error" +msgstr "" + +#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 +msgid "expression expected" +msgstr "" + +#: builtins/printf.def:339 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:516 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:722 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:175 +msgid "no other directory" +msgstr "" + +#: builtins/pushd.def:442 +msgid "" +msgstr "" + +#: builtins/pushd.def:663 +msgid "Display the list of currently remembered directories. Directories" +msgstr "" + +#: builtins/pushd.def:664 +msgid "find their way onto the list with the `pushd' command; you can get" +msgstr "" + +#: builtins/pushd.def:665 +msgid "back up through the list with the `popd' command." +msgstr "" + +#: builtins/pushd.def:667 +msgid "The -l flag specifies that `dirs' should not print shorthand versions" +msgstr "" + +#: builtins/pushd.def:668 +msgid "of directories which are relative to your home directory. This means" +msgstr "" + +#: builtins/pushd.def:669 +msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +msgstr "" + +#: builtins/pushd.def:670 +msgid "causes `dirs' to print the directory stack with one entry per line," +msgstr "" + +#: builtins/pushd.def:671 +msgid "prepending the directory name with its position in the stack. The -p" +msgstr "" + +#: builtins/pushd.def:672 +msgid "flag does the same thing, but the stack position is not prepended." +msgstr "" + +#: builtins/pushd.def:673 +msgid "The -c flag clears the directory stack by deleting all of the elements." +msgstr "" + +#: builtins/pushd.def:675 +msgid "+N displays the Nth entry counting from the left of the list shown by" +msgstr "" + +#: builtins/pushd.def:676 builtins/pushd.def:679 +msgid " dirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:678 +msgid "" +"-N displays the Nth entry counting from the right of the list shown by" +msgstr "" + +#: builtins/pushd.def:684 +msgid "Adds a directory to the top of the directory stack, or rotates" +msgstr "" + +#: builtins/pushd.def:685 +msgid "the stack, making the new top of the stack the current working" +msgstr "" + +#: builtins/pushd.def:686 +msgid "directory. With no arguments, exchanges the top two directories." +msgstr "" + +#: builtins/pushd.def:688 +msgid "+N Rotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins/pushd.def:689 +msgid " from the left of the list shown by `dirs', starting with" +msgstr "" + +#: builtins/pushd.def:690 builtins/pushd.def:694 +msgid " zero) is at the top." +msgstr "" + +#: builtins/pushd.def:692 +msgid "-N Rotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins/pushd.def:693 +msgid " from the right of the list shown by `dirs', starting with" +msgstr "" + +#: builtins/pushd.def:696 +msgid "-n suppress the normal change of directory when adding directories" +msgstr "" + +#: builtins/pushd.def:697 +msgid " to the stack, so only the stack is manipulated." +msgstr "" + +#: builtins/pushd.def:699 +msgid "dir adds DIR to the directory stack at the top, making it the" +msgstr "" + +#: builtins/pushd.def:700 +msgid " new current working directory." +msgstr "" + +#: builtins/pushd.def:702 builtins/pushd.def:722 +msgid "You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins/pushd.def:707 +msgid "Removes entries from the directory stack. With no arguments," +msgstr "" + +#: builtins/pushd.def:708 +msgid "removes the top directory from the stack, and cd's to the new" +msgstr "" + +#: builtins/pushd.def:709 +msgid "top directory." +msgstr "" + +#: builtins/pushd.def:711 +msgid "+N removes the Nth entry counting from the left of the list" +msgstr "" + +#: builtins/pushd.def:712 +msgid " shown by `dirs', starting with zero. For example: `popd +0'" +msgstr "" + +#: builtins/pushd.def:713 +msgid " removes the first directory, `popd +1' the second." +msgstr "" + +#: builtins/pushd.def:715 +msgid "-N removes the Nth entry counting from the right of the list" +msgstr "" + +#: builtins/pushd.def:716 +msgid " shown by `dirs', starting with zero. For example: `popd -0'" +msgstr "" + +#: builtins/pushd.def:717 +msgid " removes the last directory, `popd -1' the next to last." +msgstr "" + +#: builtins/pushd.def:719 +msgid "-n suppress the normal change of directory when removing directories" +msgstr "" + +#: builtins/pushd.def:720 +msgid " from the stack, so only the stack is manipulated." +msgstr "" + +#: builtins/read.def:210 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:233 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/read.def:240 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/read.def:478 +#, c-format +msgid "read error: %d: %s" +msgstr "" + +#: builtins/return.def:63 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:744 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:781 +#, c-format +msgid "%s: cannot unset" +msgstr "" + +#: builtins/set.def:788 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "" + +#: builtins/set.def:799 +#, c-format +msgid "%s: not an array variable" +msgstr "" + +#: builtins/setattr.def:166 +#, c-format +msgid "%s: not a function" +msgstr "" + +#: builtins/shift.def:66 builtins/shift.def:72 +msgid "shift count" +msgstr "" + +#: builtins/shopt.def:227 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:292 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:115 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:135 +#, c-format +msgid "%s: file not found" +msgstr "" + +#: builtins/suspend.def:95 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:105 +msgid "cannot suspend a login shell" +msgstr "" + +#: builtins/type.def:232 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:253 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:273 +#, c-format +msgid "%s is a function\n" +msgstr "" + +#: builtins/type.def:298 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:319 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:339 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:352 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:378 +#, c-format +msgid "`%c': bad command" +msgstr "" + +#: builtins/ulimit.def:407 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "" + +#: builtins/ulimit.def:445 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "" + +#: builtins/umask.def:112 +msgid "octal number" +msgstr "" + +#: builtins/umask.def:226 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:281 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:163 +#, c-format +msgid "last command: %s\n" +msgstr "" + +#: error.c:171 +msgid "Aborting..." +msgstr "" + +#: error.c:258 +#, c-format +msgid "%s: warning: " +msgstr "" + +#: error.c:403 +msgid "unknown command error" +msgstr "" + +#: error.c:404 +msgid "bad command type" +msgstr "" + +#: error.c:405 +msgid "bad connector" +msgstr "" + +#: error.c:406 +msgid "bad jump" +msgstr "" + +#: error.c:444 +#, c-format +msgid "%s: unbound variable" +msgstr "" + +#: eval.c:176 +msgid "timed out waiting for input: auto-logout\n" +msgstr "" + +#: execute_cmd.c:474 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1058 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:3629 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" + +#: execute_cmd.c:3717 +#, c-format +msgid "%s: command not found" +msgstr "" + +#: execute_cmd.c:3963 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "" + +#: execute_cmd.c:4000 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "" + +#: execute_cmd.c:4112 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "" + +#: expr.c:376 +msgid "syntax error in expression" +msgstr "" + +#: expr.c:416 +msgid "attempted assignment to non-variable" +msgstr "" + +#: expr.c:437 expr.c:442 expr.c:752 +msgid "division by 0" +msgstr "" + +#: expr.c:468 +msgid "bug: bad expassign token" +msgstr "" + +#: expr.c:510 +msgid "`:' expected for conditional expression" +msgstr "" + +#: expr.c:777 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:822 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:850 +msgid "missing `)'" +msgstr "" + +#: expr.c:893 expr.c:1171 +msgid "syntax error: operand expected" +msgstr "" + +#: expr.c:1173 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1251 +msgid "invalid number" +msgstr "" + +#: expr.c:1255 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1275 +msgid "value too great for base" +msgstr "" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "" + +#: input.c:237 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:245 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" + +#: jobs.c:876 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:983 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1378 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "" + +#: jobs.c:2061 nojobs.c:575 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" + +#: jobs.c:2265 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2524 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2746 +#, c-format +msgid "%s: job has terminated" +msgstr "" + +#: jobs.c:2755 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3546 +msgid "no job control in this shell" +msgstr "" + +#: lib/malloc/malloc.c:298 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:314 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:799 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:876 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:879 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:898 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:904 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1003 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1018 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1024 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:176 +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:183 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:219 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/malloc/watch.c:46 +msgid "allocated" +msgstr "" + +#: lib/malloc/watch.c:48 +msgid "freed" +msgstr "" + +#: lib/malloc/watch.c:50 +msgid "requesting resize" +msgstr "" + +#: lib/malloc/watch.c:52 +msgid "just resized" +msgstr "" + +#: lib/malloc/watch.c:54 +msgid "bug: unknown operation" +msgstr "" + +#: lib/malloc/watch.c:56 +#, c-format +msgid "malloc: watch alert: %p %s " +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:386 +msgid "You have mail in $_" +msgstr "" + +#: mailcheck.c:411 +msgid "You have new mail in $_" +msgstr "" + +#: mailcheck.c:427 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "" + +#: make_cmd.c:566 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "" + +#: make_cmd.c:741 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2759 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" + +#: parse.y:3071 +msgid "unexpected EOF while looking for `]]'" +msgstr "" + +#: parse.y:3076 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" + +#: parse.y:3080 +msgid "syntax error in conditional expression" +msgstr "" + +#: parse.y:3158 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3162 +msgid "expected `)'" +msgstr "" + +#: parse.y:3190 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3194 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3234 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3238 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3255 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3259 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3270 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "" + +#: parse.y:3273 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "" + +#: parse.y:3277 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "" + +#: parse.y:4523 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "" + +#: parse.y:4541 +#, c-format +msgid "syntax error near `%s'" +msgstr "" + +#: parse.y:4551 +msgid "syntax error: unexpected end of file" +msgstr "" + +#: parse.y:4551 +msgid "syntax error" +msgstr "" + +#: parse.y:4613 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "" + +#: parse.y:4775 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" + +#: pcomplete.c:1002 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:264 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "" + +#: print_cmd.c:1236 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:99 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:141 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "" + +#: redir.c:145 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "" + +#: redir.c:150 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "" + +#: redir.c:155 +#, c-format +msgid "cannot create temp file for here document: %s" +msgstr "" + +#: redir.c:509 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:965 +msgid "redirection error: cannot duplicate fd" +msgstr "" + +#: shell.c:309 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:313 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:850 +#, c-format +msgid "%c%c: invalid option" +msgstr "" + +#: shell.c:1600 +msgid "I have no name!" +msgstr "" + +#: shell.c:1735 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" + +#: shell.c:1737 +msgid "GNU long options:\n" +msgstr "" + +#: shell.c:1741 +msgid "Shell options:\n" +msgstr "" + +#: shell.c:1742 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "" + +#: shell.c:1757 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "" + +#: shell.c:1763 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" + +#: shell.c:1764 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" + +#: shell.c:1765 +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:557 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: subst.c:1160 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "" + +#: subst.c:2328 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "" + +#: subst.c:4265 subst.c:4281 +msgid "cannot make pipe for process substitution" +msgstr "" + +#: subst.c:4312 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4357 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "" + +#: subst.c:4359 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "" + +#: subst.c:4367 +#, c-format +msgid "cannout reset nodelay mode for fd %d" +msgstr "" + +#: subst.c:4377 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" + +#: subst.c:4552 +msgid "cannot make pipe for command substitution" +msgstr "" + +#: subst.c:4588 +msgid "cannot make child for command substitution" +msgstr "" + +#: subst.c:4605 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5068 +#, c-format +msgid "%s: parameter null or not set" +msgstr "" + +#: subst.c:5342 +#, c-format +msgid "%s: substring expression < 0" +msgstr "" + +#: subst.c:6179 +#, c-format +msgid "%s: bad substitution" +msgstr "" + +#: subst.c:6255 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "" + +#: subst.c:7826 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "" + +#: test.c:262 +msgid "`)' expected" +msgstr "" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "" + +#: test.c:806 +msgid "missing `]'" +msgstr "" + +#: trap.c:200 +msgid "invalid signal number" +msgstr "" + +#: trap.c:315 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:319 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:355 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "" + +#: variables.c:334 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "" + +#: variables.c:711 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1670 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:2813 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3030 variables.c:3039 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3045 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3472 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3485 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3557 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:82 +msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" +msgstr "" + +#: xmalloc.c:93 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:95 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:115 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:117 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:151 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:153 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:175 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:177 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:244 +msgid "" +"`alias' with no arguments or with the -p option prints the list\n" +" of aliases in the form alias NAME=VALUE on standard output.\n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded. Alias returns\n" +" true unless a NAME is given for which no alias has been defined." +msgstr "" + +#: builtins.c:257 +msgid "" +"Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +" then remove all alias definitions." +msgstr "" + +#: builtins.c:266 +msgid "" +"Bind a key sequence to a Readline function or a macro, or set\n" +" a Readline variable. The non-option argument syntax is equivalent\n" +" to that found in ~/.inputrc, but must be passed as a single argument:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind accepts the following options:\n" +" -m keymap Use `keymap' as the keymap for the duration of " +"this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" -f filename Read key bindings from FILENAME.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input." +msgstr "" + +#: builtins.c:297 +msgid "" +"Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +" break N levels." +msgstr "" + +#: builtins.c:304 +msgid "" +"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resume at the N-th enclosing loop." +msgstr "" + +#: builtins.c:311 +msgid "" +"Run a shell builtin. This is useful when you wish to rename a\n" +" shell builtin to be a function, but need the functionality of the\n" +" builtin within the function itself." +msgstr "" + +#: builtins.c:320 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR,\n" +" returns \"$line $subroutine $filename\"; this extra information\n" +" can be used to provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + +#: builtins.c:334 +msgid "" +"Change the current directory to DIR. The variable $HOME is the\n" +" default DIR. The variable CDPATH defines the search path for\n" +" the directory containing DIR. Alternative directory names in CDPATH\n" +" are separated by a colon (:). A null directory name is the same as\n" +" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" +" then CDPATH is not used. If the directory is not found, and the\n" +" shell option `cdable_vars' is set, then try the word as a variable\n" +" name. If that variable has a value, then cd to the value of that\n" +" variable. The -P option says to use the physical directory structure\n" +" instead of following symbolic links; the -L option forces symbolic " +"links\n" +" to be followed." +msgstr "" + +#: builtins.c:350 +msgid "" +"Print the current working directory. With the -P option, pwd prints\n" +" the physical directory, without any symbolic links; the -L option\n" +" makes pwd follow symbolic links." +msgstr "" + +#: builtins.c:358 +msgid "No effect; the command does nothing. A zero exit code is returned." +msgstr "" + +#: builtins.c:364 +msgid "Return a successful result." +msgstr "" + +#: builtins.c:370 +msgid "Return an unsuccessful result." +msgstr "" + +#: builtins.c:376 +msgid "" +"Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +" function called `ls', and you wish to call the command `ls', you can\n" +" say \"command ls\". If the -p option is given, a default value is used\n" +" for PATH that is guaranteed to find all of the standard utilities. If\n" +" the -V or -v option is given, a string is printed describing COMMAND.\n" +" The -V option produces a more verbose description." +msgstr "" + +#: builtins.c:387 +msgid "" +"Declare variables and/or give them attributes. If no NAMEs are\n" +" given, then display the values of variables instead. The -p option\n" +" will display the attributes and values of each NAME.\n" +" \n" +" The flags are:\n" +" \n" +" -a\tto make NAMEs arrays (if supported)\n" +" -f\tto select from among function names only\n" +" -F\tto display function names (and line number and source file name " +"if\n" +" \tdebugging) without definitions\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -x\tto make NAMEs export\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" `let') done when the variable is assigned to.\n" +" \n" +" When displaying values of variables, -f displays a function's name\n" +" and definition. The -F option restricts the display to function\n" +" name only.\n" +" \n" +" Using `+' instead of `-' turns off the given attribute instead. When\n" +" used in a function, makes NAMEs local, as with the `local' command." +msgstr "" + +#: builtins.c:416 +msgid "Obsolete. See `declare'." +msgstr "" + +#: builtins.c:422 +msgid "" +"Create a local variable called NAME, and give it VALUE. LOCAL\n" +" can only be used within a function; it makes the variable NAME\n" +" have a visible scope restricted to that function and its children." +msgstr "" + +#: builtins.c:431 +msgid "" +"Output the ARGs. If -n is specified, the trailing newline is\n" +" suppressed. If the -e option is given, interpretation of the\n" +" following backslash-escaped characters is turned on:\n" +" \t\\a\talert (bell)\n" +" \t\\b\tbackspace\n" +" \t\\c\tsuppress trailing newline\n" +" \t\\E\tescape character\n" +" \t\\f\tform feed\n" +" \t\\n\tnew line\n" +" \t\\r\tcarriage return\n" +" \t\\t\thorizontal tab\n" +" \t\\v\tvertical tab\n" +" \t\\\\\tbackslash\n" +" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t\t0 to 3 octal digits\n" +" \n" +" You can explicitly turn off the interpretation of the above characters\n" +" with the -E option." +msgstr "" + +#: builtins.c:456 +msgid "" +"Output the ARGs. If -n is specified, the trailing newline is suppressed." +msgstr "" + +#: builtins.c:463 +msgid "" +"Enable and disable builtin shell commands. This allows\n" +" you to use a disk command which has the same name as a shell\n" +" builtin without specifying a full pathname. If -n is used, the\n" +" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +" to use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'. On systems supporting dynamic\n" +" loading, the -f option may be used to load new builtins from the\n" +" shared object FILENAME. The -d option will delete a builtin\n" +" previously loaded with -f. If no non-option names are given, or\n" +" the -p option is supplied, a list of builtins is printed. The\n" +" -a option means to print every builtin with an indication of whether\n" +" or not it is enabled. The -s option restricts the output to the " +"POSIX.2\n" +" `special' builtins. The -n option displays a list of all disabled " +"builtins." +msgstr "" + +#: builtins.c:481 +msgid "Read ARGs as input to the shell and execute the resulting command(s)." +msgstr "" + +#: builtins.c:487 +msgid "" +"Getopts is used by shell procedures to parse positional parameters.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead." +msgstr "" + +#: builtins.c:522 +msgid "" +"Exec FILE, replacing this shell with the specified program.\n" +" If FILE is not specified, the redirections take effect in this\n" +" shell. If the first argument is `-l', then place a dash in the\n" +" zeroth arg passed to FILE, as login does. If the `-c' option\n" +" is supplied, FILE is executed with a null environment. The `-a'\n" +" option means to make set argv[0] of the executed process to NAME.\n" +" If the file cannot be executed and the shell is not interactive,\n" +" then the shell exits, unless the shell option `execfail' is set." +msgstr "" + +#: builtins.c:535 +msgid "" +"Exit the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:542 +msgid "Logout of a login shell." +msgstr "" + +#: builtins.c:549 +msgid "" +"fc is used to list or edit and re-execute commands from the history list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" -e ENAME selects which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" then vi.\n" +" \n" +" -l means list lines instead of editing.\n" +" -n means no line numbers listed.\n" +" -r means reverse the order of the lines (making it newest listed " +"first).\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command." +msgstr "" + +#: builtins.c:574 +msgid "" +"Place JOB_SPEC in the foreground, and make it the current job. If\n" +" JOB_SPEC is not present, the shell's notion of the current job is\n" +" used." +msgstr "" + +#: builtins.c:584 +msgid "" +"Place each JOB_SPEC in the background, as if it had been started with\n" +" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" +" job is used." +msgstr "" + +#: builtins.c:593 +msgid "" +"For each NAME, the full pathname of the command is determined and\n" +" remembered. If the -p option is supplied, PATHNAME is used as the\n" +" full pathname of NAME, and no path search is performed. The -r\n" +" option causes the shell to forget all remembered locations. The -d\n" +" option causes the shell to forget the remembered location of each NAME.\n" +" If the -t option is supplied the full pathname to which each NAME\n" +" corresponds is printed. If multiple NAME arguments are supplied with\n" +" -t, the NAME is printed before the hashed full pathname. The -l option\n" +" causes output to be displayed in a format that may be reused as input.\n" +" If no arguments are given, information about remembered commands is " +"displayed." +msgstr "" + +#: builtins.c:609 +msgid "" +"Display helpful information about builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise a list of the builtins is printed. The -s option\n" +" restricts the output for each builtin command matching PATTERN to\n" +" a short usage synopsis." +msgstr "" + +#: builtins.c:621 +msgid "" +"Display the history list with line numbers. Lines listed with\n" +" with a `*' have been modified. Argument of N says to list only\n" +" the last N lines. The `-c' option causes the history list to be\n" +" cleared by deleting all of the entries. The `-d' option deletes\n" +" the history entry at offset OFFSET. The `-w' option writes out the\n" +" current history to the history file; `-r' means to read the file and\n" +" append the contents to the history list instead. `-a' means\n" +" to append history lines from this session to the history file.\n" +" Argument `-n' means to read all history lines not already read\n" +" from the history file and append them to the history list.\n" +" \n" +" If FILENAME is given, then that is used as the history file else\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" If the -s option is supplied, the non-option ARGs are appended to\n" +" the history list as a single entry. The -p option means to perform\n" +" history expansion on each ARG and display the result, without storing\n" +" anything in the history list.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed otherwise." +msgstr "" + +#: builtins.c:649 +msgid "" +"Lists the active jobs. The -l option lists process id's in addition\n" +" to the normal information; the -p option lists process id's only.\n" +" If -n is given, only processes that have changed status since the last\n" +" notification are printed. JOBSPEC restricts output to that job. The\n" +" -r and -s options restrict output to running and stopped jobs only,\n" +" respectively. Without options, the status of all active jobs is\n" +" printed. If -x is given, COMMAND is run after all job specifications\n" +" that appear in ARGS have been replaced with the process ID of that " +"job's\n" +" process group leader." +msgstr "" + +#: builtins.c:665 +msgid "" +"By default, removes each JOBSPEC argument from the table of active jobs.\n" +" If the -h option is given, the job is not removed from the table, but " +"is\n" +" marked so that SIGHUP is not sent to the job if the shell receives a\n" +" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +"all\n" +" jobs from the job table; the -r option means to remove only running jobs." +msgstr "" + +#: builtins.c:676 +msgid "" +"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" +" lists the signal names; if arguments follow `-l' they are assumed to\n" +" be signal numbers for which names should be listed. Kill is a shell\n" +" builtin for two reasons: it allows job IDs to be used instead of\n" +" process IDs, and, if you have reached the limit on processes that\n" +" you can create, you don't have to start a process to kill another one." +msgstr "" + +#: builtins.c:688 +msgid "" +"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +" is done in fixed-width integers with no check for overflow, though\n" +" division by 0 is trapped and flagged as an error. The following\n" +" list of operators is grouped into levels of equal-precedence operators.\n" +" The levels are listed in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" +" otherwise." +msgstr "" + +#: builtins.c:731 +msgid "" +"One line is read from the standard input, or from file descriptor FD if the\n" +" -u option is supplied, and the first word is assigned to the first " +"NAME,\n" +" the second word to the second NAME, and so on, with leftover words " +"assigned\n" +" to the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters. If no NAMEs are supplied, the line read is stored in the " +"REPLY\n" +" variable. If the -r option is given, this signifies `raw' input, and\n" +" backslash escaping is disabled. The -d option causes read to continue\n" +" until the first character of DELIM is read, rather than newline. If the " +"-p\n" +" option is supplied, the string PROMPT is output without a trailing " +"newline\n" +" before attempting to read. If -a is supplied, the words read are " +"assigned\n" +" to sequential indices of ARRAY, starting at zero. If -e is supplied " +"and\n" +" the shell is interactive, readline is used to obtain the line. If -n " +"is\n" +" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" +" characters have been read. The -s option causes input coming from a\n" +" terminal to not be echoed.\n" +" \n" +" The -t option causes read to time out and return failure if a complete " +"line\n" +" of input is not read within TIMEOUT seconds. If the TMOUT variable is " +"set,\n" +" its value is the default timeout. The return code is zero, unless end-" +"of-file\n" +" is encountered, read times out, or an invalid file descriptor is " +"supplied as\n" +" the argument to -u." +msgstr "" + +#: builtins.c:757 +msgid "" +"Causes a function to exit with the return value specified by N. If N\n" +" is omitted, the return status is that of the last command." +msgstr "" + +#: builtins.c:764 +msgid "" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive " +"commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status " +"of\n" +" the last command to exit with a non-zero " +"status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the 1003.2 standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not " +"match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid " +"and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed." +msgstr "" + +#: builtins.c:837 +msgid "" +"For each NAME, remove the corresponding variable or function. Given\n" +" the `-v', unset will only act on variables. Given the `-f' flag,\n" +" unset will only act on functions. With neither flag, unset first\n" +" tries to unset a variable, and if that fails, then tries to unset a\n" +" function. Some variables cannot be unset; also see readonly." +msgstr "" + +#: builtins.c:847 +msgid "" +"NAMEs are marked for automatic export to the environment of\n" +" subsequently executed commands. If the -f option is given,\n" +" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +" is given, a list of all names that are exported in this shell is\n" +" printed. An argument of `-n' says to remove the export property\n" +" from subsequent NAMEs. An argument of `--' disables further option\n" +" processing." +msgstr "" + +#: builtins.c:859 +msgid "" +"The given NAMEs are marked readonly and the values of these NAMEs may\n" +" not be changed by subsequent assignment. If the -f option is given,\n" +" then functions corresponding to the NAMEs are so marked. If no\n" +" arguments are given, or if `-p' is given, a list of all readonly names\n" +" is printed. The `-a' option means to treat each NAME as\n" +" an array variable. An argument of `--' disables further option\n" +" processing." +msgstr "" + +#: builtins.c:871 +msgid "" +"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +" not given, it is assumed to be 1." +msgstr "" + +#: builtins.c:878 builtins.c:887 +msgid "" +"Read and execute commands from FILENAME and return. The pathnames\n" +" in $PATH are used to find the directory containing FILENAME. If any\n" +" ARGUMENTS are supplied, they become the positional parameters when\n" +" FILENAME is executed." +msgstr "" + +#: builtins.c:897 +msgid "" +"Suspend the execution of this shell until it receives a SIGCONT\n" +" signal. The `-f' if specified says not to complain about this\n" +" being a login shell if it is; just suspend anyway." +msgstr "" + +#: builtins.c:906 +msgid "" +"Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 " +"lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2." +msgstr "" + +#: builtins.c:976 +msgid "" +"This is a synonym for the \"test\" builtin, but the last\n" +" argument must be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:983 +msgid "" +"Print the accumulated user and system times for processes run from\n" +" the shell." +msgstr "" + +#: builtins.c:990 +msgid "" +"The command ARG is to be read and executed when the shell receives\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" +" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" +" is DEBUG, ARG is executed after every simple command. If the`-p' " +"option\n" +" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" +" displayed. If no arguments are supplied or if only `-p' is given, trap\n" +" prints the list of commands associated with each signal. Each " +"SIGNAL_SPEC\n" +" is either a signal name in or a signal number. Signal names\n" +" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" +" a list of signal names and their corresponding numbers. Note that a\n" +" signal can be sent to the shell with \"kill -signal $$\"." +msgstr "" + +#: builtins.c:1009 +msgid "" +"For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" If the -t option is used, `type' outputs a single word which is one of\n" +" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" +" alias, shell reserved word, shell function, shell builtin, disk file,\n" +" or unfound, respectively.\n" +" \n" +" If the -p flag is used, `type' either returns the name of the disk\n" +" file that would be executed, or nothing if `type -t NAME' would not\n" +" return `file'.\n" +" \n" +" If the -a flag is used, `type' displays all of the places that contain\n" +" an executable named `file'. This includes aliases, builtins, and\n" +" functions, if and only if the -p flag is not also used.\n" +" \n" +" The -f flag suppresses shell function lookup.\n" +" \n" +" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" +" builtin, or function, and returns the name of the disk file that would\n" +" be executed." +msgstr "" + +#: builtins.c:1036 +msgid "" +"Ulimit provides control over the resources available to processes\n" +" started by the shell, on systems that allow such control. If an\n" +" option is given, it is interpreted as follows:\n" +" \n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource;\n" +" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" +" the current soft limit, the current hard limit, and no limit, " +"respectively.\n" +" Otherwise, the current value of the specified resource is printed.\n" +" If no option is given, then -f is assumed. Values are in 1024-byte\n" +" increments, except for -t, which is in seconds, -p, which is in\n" +" increments of 512 bytes, and -u, which is an unscaled number of\n" +" processes." +msgstr "" + +#: builtins.c:1074 +msgid "" +"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +" `-S' is supplied, the current value of the mask is printed. The `-S'\n" +" option makes the output symbolic; otherwise an octal number is output.\n" +" If `-p' is supplied, and MODE is omitted, the output is in a form\n" +" that may be used as input. If MODE begins with a digit, it is\n" +" interpreted as an octal number, otherwise it is a symbolic mode string\n" +" like that accepted by chmod(1)." +msgstr "" + +#: builtins.c:1087 +msgid "" +"Wait for the specified process and report its termination status. If\n" +" N is not given, all currently active child processes are waited for,\n" +" and the return code is zero. N may be a process ID or a job\n" +" specification; if a job spec is given, all processes in the job's\n" +" pipeline are waited for." +msgstr "" + +#: builtins.c:1099 +msgid "" +"Wait for the specified process and report its termination status. If\n" +" N is not given, all currently active child processes are waited for,\n" +" and the return code is zero. N is a process ID; if it is not given,\n" +" all child processes of the shell are waited for." +msgstr "" + +#: builtins.c:1109 +msgid "" +"The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed." +msgstr "" + +#: builtins.c:1118 +msgid "" +"Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1." +msgstr "" + +#: builtins.c:1131 +msgid "" +"The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed." +msgstr "" + +#: builtins.c:1147 +msgid "" +"Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" The return status is the return status of PIPELINE. The `-p' option\n" +" prints the timing summary in a slightly different format. This uses\n" +" the value of the TIMEFORMAT variable as the output format." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns." +msgstr "" + +#: builtins.c:1164 +msgid "" +"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true." +msgstr "" + +#: builtins.c:1176 +msgid "" +"Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero." +msgstr "" + +#: builtins.c:1183 +msgid "" +"Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero." +msgstr "" + +#: builtins.c:1190 +msgid "" +"Create a simple command invoked by NAME which runs COMMANDS.\n" +" Arguments on the command line along with NAME are passed to the\n" +" function as $0 .. $n." +msgstr "" + +#: builtins.c:1198 +msgid "" +"Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands." +msgstr "" + +#: builtins.c:1205 +msgid "" +"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'." +msgstr "" + +#: builtins.c:1215 +msgid "" +"The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "" + +#: builtins.c:1222 +msgid "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators\n" +" \n" +" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" +" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" +" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of " +"the\n" +" operator is used as a pattern and pattern matching is performed. The\n" +" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value." +msgstr "" + +#: builtins.c:1240 +msgid "" +"BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directries given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1295 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -n\tsuppress the normal change of directory when adding directories\n" +" \tto the stack, so only the stack is manipulated.\n" +" \n" +" dir\tadds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins.c:1321 +msgid "" +"Removes entries from the directory stack. With no arguments,\n" +" removes the top directory from the stack, and cd's to the new\n" +" top directory.\n" +" \n" +" +N\tremoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tremoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" -n\tsuppress the normal change of directory when removing directories\n" +" \tfrom the stack, so only the stack is manipulated.\n" +" \n" +" You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins.c:1344 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" The -l flag specifies that `dirs' should not print shorthand versions\n" +" of directories which are relative to your home directory. This means\n" +" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" +" causes `dirs' to print the directory stack with one entry per line,\n" +" prepending the directory name with its position in the stack. The -p\n" +" flag does the same thing, but the stack position is not prepended.\n" +" The -c flag clears the directory stack by deleting all of the elements.\n" +" \n" +" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tdisplays the Nth entry counting from the right of the list shown by\n" +" \tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins.c:1367 +msgid "" +"Toggle the values of variables controlling optional behavior.\n" +" The -s flag means to enable (set) each OPTNAME; the -u flag\n" +" unsets each OPTNAME. The -q flag suppresses output; the exit\n" +" status indicates whether each OPTNAME is set or unset. The -o\n" +" option restricts the OPTNAMEs to those defined for use with\n" +" `set -o'. With no options, or with the -p option, a list of all\n" +" settable options is displayed, with an indication of whether or\n" +" not each is set." +msgstr "" + +#: builtins.c:1380 +msgid "" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +" is a character string which contains three types of objects: plain\n" +" characters, which are simply copied to standard output, character " +"escape\n" +" sequences which are converted and copied to the standard output, and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument. In addition to the standard printf(1) formats, %b means to\n" +" expand backslash escape sequences in the corresponding argument, and %q\n" +" means to quote the argument in a way that can be reused as shell input.\n" +" If the -v option is supplied, the output is placed into the value of " +"the\n" +" shell variable VAR rather than being sent to the standard output." +msgstr "" + +#: builtins.c:1396 +msgid "" +"For each NAME, specify how arguments are to be completed.\n" +" If the -p option is supplied, or if no options are supplied, existing\n" +" completion specifications are printed in a way that allows them to be\n" +" reused as input. The -r option removes a completion specification for\n" +" each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" + +#: builtins.c:1408 +msgid "" +"Display the possible completions depending on the options. Intended\n" +" to be used from within a shell function generating possible " +"completions.\n" +" If the optional WORD argument is supplied, matches against WORD are\n" +" generated." +msgstr "" diff --git a/po/bash.pot b/po/bash.pot index c96e86669..4a79cc404 100644 --- a/po/bash.pot +++ b/po/bash.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\n" +"POT-Creation-Date: 2006-10-23 17:20-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -19,31 +19,31 @@ msgstr "" msgid "bad array subscript" msgstr "" -#: arrayfunc.c:360 +#: arrayfunc.c:362 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "" -#: bashhist.c:328 +#: bashhist.c:331 #, c-format msgid "%s: cannot create: %s" msgstr "" -#: bashline.c:2947 +#: bashline.c:3030 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:2996 +#: bashline.c:3079 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3025 +#: bashline.c:3108 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3059 +#: bashline.c:3142 #, c-format msgid "%s: missing colon separator" msgstr "" @@ -82,51 +82,51 @@ msgstr "" msgid "only meaningful in a `for', `while', or `until' loop" msgstr "" -#: builtins/caller.def:132 +#: builtins/caller.def:131 msgid "Returns the context of the current subroutine call." msgstr "" -#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 -#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 -#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 -#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 -#: builtins/pushd.def:712 builtins/pushd.def:715 +#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 +#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 +#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 +#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 +#: builtins/pushd.def:718 builtins/pushd.def:721 msgid " " msgstr "" -#: builtins/caller.def:134 +#: builtins/caller.def:133 msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," msgstr "" -#: builtins/caller.def:135 +#: builtins/caller.def:134 msgid "returns \"$line $subroutine $filename\"; this extra information" msgstr "" -#: builtins/caller.def:136 +#: builtins/caller.def:135 msgid "can be used used to provide a stack trace." msgstr "" -#: builtins/caller.def:138 +#: builtins/caller.def:137 msgid "The value of EXPR indicates how many call frames to go back before the" msgstr "" -#: builtins/caller.def:139 +#: builtins/caller.def:138 msgid "current one; the top frame is frame 0." msgstr "" -#: builtins/cd.def:203 +#: builtins/cd.def:204 msgid "HOME not set" msgstr "" -#: builtins/cd.def:215 +#: builtins/cd.def:216 msgid "OLDPWD not set" msgstr "" -#: builtins/common.c:133 test.c:921 +#: builtins/common.c:133 test.c:822 msgid "too many arguments" msgstr "" -#: builtins/common.c:157 shell.c:474 shell.c:747 +#: builtins/common.c:157 shell.c:474 shell.c:748 #, c-format msgid "%s: option requires an argument" msgstr "" @@ -141,7 +141,7 @@ msgstr "" msgid "%s: not found" msgstr "" -#: builtins/common.c:180 shell.c:760 +#: builtins/common.c:180 shell.c:761 #, c-format msgid "%s: invalid option" msgstr "" @@ -151,7 +151,7 @@ msgstr "" msgid "%s: invalid option name" msgstr "" -#: builtins/common.c:194 general.c:231 general.c:236 +#: builtins/common.c:194 general.c:230 general.c:235 #, c-format msgid "`%s': not a valid identifier" msgstr "" @@ -171,7 +171,7 @@ msgstr "" msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:222 error.c:453 +#: builtins/common.c:222 error.c:451 #, c-format msgid "%s: readonly variable" msgstr "" @@ -223,12 +223,12 @@ msgstr "" msgid "write error: %s" msgstr "" -#: builtins/common.c:484 +#: builtins/common.c:481 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "" -#: builtins/common.c:550 builtins/common.c:552 +#: builtins/common.c:547 builtins/common.c:549 #, c-format msgid "%s: ambiguous job spec" msgstr "" @@ -251,20 +251,20 @@ msgstr "" msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/declare.def:105 +#: builtins/declare.def:106 msgid "can only be used in a function" msgstr "" -#: builtins/declare.def:301 +#: builtins/declare.def:306 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:313 execute_cmd.c:3986 +#: builtins/declare.def:318 execute_cmd.c:4073 #, c-format msgid "%s: readonly function" msgstr "" -#: builtins/declare.def:401 +#: builtins/declare.def:406 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "" @@ -293,7 +293,7 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "" -#: builtins/evalfile.c:129 execute_cmd.c:3852 shell.c:1408 +#: builtins/evalfile.c:129 execute_cmd.c:3930 shell.c:1409 #, c-format msgid "%s: is a directory" msgstr "" @@ -321,15 +321,15 @@ msgstr "" msgid "There are stopped jobs.\n" msgstr "" -#: builtins/fc.def:259 +#: builtins/fc.def:258 msgid "no command found" msgstr "" -#: builtins/fc.def:329 +#: builtins/fc.def:328 msgid "history specification" msgstr "" -#: builtins/fc.def:350 +#: builtins/fc.def:349 #, c-format msgid "%s: cannot open temp file: %s" msgstr "" @@ -349,11 +349,11 @@ msgstr "" msgid "%s: option requires an argument -- %c\n" msgstr "" -#: builtins/hash.def:83 +#: builtins/hash.def:84 msgid "hashing disabled" msgstr "" -#: builtins/hash.def:128 +#: builtins/hash.def:130 #, c-format msgid "%s: hash table empty\n" msgstr "" @@ -414,197 +414,197 @@ msgstr "" msgid "Unknown error" msgstr "" -#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 +#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 msgid "expression expected" msgstr "" -#: builtins/printf.def:327 +#: builtins/printf.def:339 #, c-format msgid "`%s': missing format character" msgstr "" -#: builtins/printf.def:502 +#: builtins/printf.def:516 #, c-format msgid "`%c': invalid format character" msgstr "" -#: builtins/printf.def:708 +#: builtins/printf.def:722 msgid "missing hex digit for \\x" msgstr "" -#: builtins/pushd.def:173 +#: builtins/pushd.def:175 msgid "no other directory" msgstr "" -#: builtins/pushd.def:440 +#: builtins/pushd.def:442 msgid "" msgstr "" -#: builtins/pushd.def:657 +#: builtins/pushd.def:663 msgid "Display the list of currently remembered directories. Directories" msgstr "" -#: builtins/pushd.def:658 +#: builtins/pushd.def:664 msgid "find their way onto the list with the `pushd' command; you can get" msgstr "" -#: builtins/pushd.def:659 +#: builtins/pushd.def:665 msgid "back up through the list with the `popd' command." msgstr "" -#: builtins/pushd.def:661 +#: builtins/pushd.def:667 msgid "The -l flag specifies that `dirs' should not print shorthand versions" msgstr "" -#: builtins/pushd.def:662 +#: builtins/pushd.def:668 msgid "of directories which are relative to your home directory. This means" msgstr "" -#: builtins/pushd.def:663 +#: builtins/pushd.def:669 msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" msgstr "" -#: builtins/pushd.def:664 +#: builtins/pushd.def:670 msgid "causes `dirs' to print the directory stack with one entry per line," msgstr "" -#: builtins/pushd.def:665 +#: builtins/pushd.def:671 msgid "prepending the directory name with its position in the stack. The -p" msgstr "" -#: builtins/pushd.def:666 +#: builtins/pushd.def:672 msgid "flag does the same thing, but the stack position is not prepended." msgstr "" -#: builtins/pushd.def:667 +#: builtins/pushd.def:673 msgid "The -c flag clears the directory stack by deleting all of the elements." msgstr "" -#: builtins/pushd.def:669 +#: builtins/pushd.def:675 msgid "+N displays the Nth entry counting from the left of the list shown by" msgstr "" -#: builtins/pushd.def:670 builtins/pushd.def:673 +#: builtins/pushd.def:676 builtins/pushd.def:679 msgid " dirs when invoked without options, starting with zero." msgstr "" -#: builtins/pushd.def:672 +#: builtins/pushd.def:678 msgid "" "-N displays the Nth entry counting from the right of the list shown by" msgstr "" -#: builtins/pushd.def:678 +#: builtins/pushd.def:684 msgid "Adds a directory to the top of the directory stack, or rotates" msgstr "" -#: builtins/pushd.def:679 +#: builtins/pushd.def:685 msgid "the stack, making the new top of the stack the current working" msgstr "" -#: builtins/pushd.def:680 +#: builtins/pushd.def:686 msgid "directory. With no arguments, exchanges the top two directories." msgstr "" -#: builtins/pushd.def:682 +#: builtins/pushd.def:688 msgid "+N Rotates the stack so that the Nth directory (counting" msgstr "" -#: builtins/pushd.def:683 +#: builtins/pushd.def:689 msgid " from the left of the list shown by `dirs', starting with" msgstr "" -#: builtins/pushd.def:684 builtins/pushd.def:688 +#: builtins/pushd.def:690 builtins/pushd.def:694 msgid " zero) is at the top." msgstr "" -#: builtins/pushd.def:686 +#: builtins/pushd.def:692 msgid "-N Rotates the stack so that the Nth directory (counting" msgstr "" -#: builtins/pushd.def:687 +#: builtins/pushd.def:693 msgid " from the right of the list shown by `dirs', starting with" msgstr "" -#: builtins/pushd.def:690 +#: builtins/pushd.def:696 msgid "-n suppress the normal change of directory when adding directories" msgstr "" -#: builtins/pushd.def:691 +#: builtins/pushd.def:697 msgid " to the stack, so only the stack is manipulated." msgstr "" -#: builtins/pushd.def:693 +#: builtins/pushd.def:699 msgid "dir adds DIR to the directory stack at the top, making it the" msgstr "" -#: builtins/pushd.def:694 +#: builtins/pushd.def:700 msgid " new current working directory." msgstr "" -#: builtins/pushd.def:696 builtins/pushd.def:716 +#: builtins/pushd.def:702 builtins/pushd.def:722 msgid "You can see the directory stack with the `dirs' command." msgstr "" -#: builtins/pushd.def:701 +#: builtins/pushd.def:707 msgid "Removes entries from the directory stack. With no arguments," msgstr "" -#: builtins/pushd.def:702 +#: builtins/pushd.def:708 msgid "removes the top directory from the stack, and cd's to the new" msgstr "" -#: builtins/pushd.def:703 +#: builtins/pushd.def:709 msgid "top directory." msgstr "" -#: builtins/pushd.def:705 +#: builtins/pushd.def:711 msgid "+N removes the Nth entry counting from the left of the list" msgstr "" -#: builtins/pushd.def:706 +#: builtins/pushd.def:712 msgid " shown by `dirs', starting with zero. For example: `popd +0'" msgstr "" -#: builtins/pushd.def:707 +#: builtins/pushd.def:713 msgid " removes the first directory, `popd +1' the second." msgstr "" -#: builtins/pushd.def:709 +#: builtins/pushd.def:715 msgid "-N removes the Nth entry counting from the right of the list" msgstr "" -#: builtins/pushd.def:710 +#: builtins/pushd.def:716 msgid " shown by `dirs', starting with zero. For example: `popd -0'" msgstr "" -#: builtins/pushd.def:711 +#: builtins/pushd.def:717 msgid " removes the last directory, `popd -1' the next to last." msgstr "" -#: builtins/pushd.def:713 +#: builtins/pushd.def:719 msgid "-n suppress the normal change of directory when removing directories" msgstr "" -#: builtins/pushd.def:714 +#: builtins/pushd.def:720 msgid " from the stack, so only the stack is manipulated." msgstr "" -#: builtins/read.def:211 +#: builtins/read.def:210 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:234 +#: builtins/read.def:233 #, c-format msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/read.def:241 +#: builtins/read.def:240 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/read.def:474 +#: builtins/read.def:478 #, c-format msgid "read error: %d: %s" msgstr "" @@ -613,21 +613,21 @@ msgstr "" msgid "can only `return' from a function or sourced script" msgstr "" -#: builtins/set.def:745 +#: builtins/set.def:744 msgid "cannot simultaneously unset a function and a variable" msgstr "" -#: builtins/set.def:782 +#: builtins/set.def:781 #, c-format msgid "%s: cannot unset" msgstr "" -#: builtins/set.def:789 +#: builtins/set.def:788 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "" -#: builtins/set.def:800 +#: builtins/set.def:799 #, c-format msgid "%s: not an array variable" msgstr "" @@ -650,20 +650,20 @@ msgstr "" msgid "%s: invalid shell option name" msgstr "" -#: builtins/source.def:117 +#: builtins/source.def:115 msgid "filename argument required" msgstr "" -#: builtins/source.def:137 +#: builtins/source.def:135 #, c-format msgid "%s: file not found" msgstr "" -#: builtins/suspend.def:93 +#: builtins/suspend.def:95 msgid "cannot suspend" msgstr "" -#: builtins/suspend.def:103 +#: builtins/suspend.def:105 msgid "cannot suspend a login shell" msgstr "" @@ -697,22 +697,22 @@ msgstr "" msgid "%s is hashed (%s)\n" msgstr "" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:352 #, c-format msgid "%s: invalid limit argument" msgstr "" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:378 #, c-format msgid "`%c': bad command" msgstr "" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:407 #, c-format msgid "%s: cannot get limit: %s" msgstr "" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:445 #, c-format msgid "%s: cannot modify limit: %s" msgstr "" @@ -731,37 +731,37 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:165 +#: error.c:163 #, c-format msgid "last command: %s\n" msgstr "" -#: error.c:173 +#: error.c:171 msgid "Aborting..." msgstr "" -#: error.c:260 +#: error.c:258 #, c-format msgid "%s: warning: " msgstr "" -#: error.c:405 +#: error.c:403 msgid "unknown command error" msgstr "" -#: error.c:406 +#: error.c:404 msgid "bad command type" msgstr "" -#: error.c:407 +#: error.c:405 msgid "bad connector" msgstr "" -#: error.c:408 +#: error.c:406 msgid "bad jump" msgstr "" -#: error.c:446 +#: error.c:444 #, c-format msgid "%s: unbound variable" msgstr "" @@ -770,147 +770,156 @@ msgstr "" msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:471 +#: execute_cmd.c:474 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1036 +#: execute_cmd.c:1058 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:3551 +#: execute_cmd.c:3629 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:3639 +#: execute_cmd.c:3717 #, c-format msgid "%s: command not found" msgstr "" -#: execute_cmd.c:3876 +#: execute_cmd.c:3963 #, c-format msgid "%s: %s: bad interpreter" msgstr "" -#: execute_cmd.c:3913 +#: execute_cmd.c:4000 #, c-format msgid "%s: cannot execute binary file" msgstr "" -#: execute_cmd.c:4025 +#: execute_cmd.c:4112 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "" -#: expr.c:375 +#: expr.c:376 msgid "syntax error in expression" msgstr "" -#: expr.c:415 +#: expr.c:416 msgid "attempted assignment to non-variable" msgstr "" -#: expr.c:436 expr.c:441 expr.c:751 +#: expr.c:437 expr.c:442 expr.c:752 msgid "division by 0" msgstr "" -#: expr.c:467 +#: expr.c:468 msgid "bug: bad expassign token" msgstr "" -#: expr.c:509 +#: expr.c:510 msgid "`:' expected for conditional expression" msgstr "" -#: expr.c:776 +#: expr.c:777 msgid "exponent less than 0" msgstr "" -#: expr.c:821 +#: expr.c:822 msgid "identifier expected after pre-increment or pre-decrement" msgstr "" -#: expr.c:849 +#: expr.c:850 msgid "missing `)'" msgstr "" -#: expr.c:892 +#: expr.c:893 expr.c:1171 msgid "syntax error: operand expected" msgstr "" -#: expr.c:1178 +#: expr.c:1173 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1251 msgid "invalid number" msgstr "" -#: expr.c:1182 +#: expr.c:1255 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1202 +#: expr.c:1275 msgid "value too great for base" msgstr "" -#: general.c:62 +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:231 +#: input.c:237 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" msgstr "" -#: input.c:239 +#: input.c:245 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "" -#: jobs.c:923 +#: jobs.c:876 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:983 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "" -#: jobs.c:1308 +#: jobs.c:1378 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "" -#: jobs.c:1981 nojobs.c:648 +#: jobs.c:2061 nojobs.c:575 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2180 +#: jobs.c:2265 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2435 +#: jobs.c:2524 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2657 +#: jobs.c:2746 #, c-format msgid "%s: job has terminated" msgstr "" -#: jobs.c:2666 +#: jobs.c:2755 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3452 +#: jobs.c:3546 msgid "no job control in this shell" msgstr "" @@ -926,48 +935,48 @@ msgid "" "malloc: %s:%d: assertion botched\r\n" msgstr "" -#: lib/malloc/malloc.c:740 +#: lib/malloc/malloc.c:799 msgid "malloc: block on free list clobbered" msgstr "" -#: lib/malloc/malloc.c:817 +#: lib/malloc/malloc.c:876 msgid "free: called with already freed block argument" msgstr "" -#: lib/malloc/malloc.c:820 +#: lib/malloc/malloc.c:879 msgid "free: called with unallocated block argument" msgstr "" -#: lib/malloc/malloc.c:839 +#: lib/malloc/malloc.c:898 msgid "free: underflow detected; mh_nbytes out of range" msgstr "" -#: lib/malloc/malloc.c:845 +#: lib/malloc/malloc.c:904 msgid "free: start and end chunk sizes differ" msgstr "" -#: lib/malloc/malloc.c:942 +#: lib/malloc/malloc.c:1003 msgid "realloc: called with unallocated block argument" msgstr "" -#: lib/malloc/malloc.c:957 +#: lib/malloc/malloc.c:1018 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "" -#: lib/malloc/malloc.c:963 +#: lib/malloc/malloc.c:1024 msgid "realloc: start and end chunk sizes differ" msgstr "" -#: lib/malloc/table.c:175 +#: lib/malloc/table.c:176 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" msgstr "" -#: lib/malloc/table.c:182 +#: lib/malloc/table.c:183 #, c-format msgid "register_alloc: %p already in table as allocated?\n" msgstr "" -#: lib/malloc/table.c:218 +#: lib/malloc/table.c:219 #, c-format msgid "register_free: %p already in table as free?\n" msgstr "" @@ -1001,22 +1010,22 @@ msgstr "" msgid "invalid base" msgstr "" -#: lib/sh/netopen.c:158 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "" @@ -1051,108 +1060,108 @@ msgstr "" msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:736 +#: make_cmd.c:741 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2747 +#: parse.y:2759 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3043 +#: parse.y:3071 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3048 +#: parse.y:3076 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3052 +#: parse.y:3080 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:3130 +#: parse.y:3158 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3134 +#: parse.y:3162 msgid "expected `)'" msgstr "" -#: parse.y:3162 +#: parse.y:3190 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3166 +#: parse.y:3194 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3203 +#: parse.y:3234 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3207 +#: parse.y:3238 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3223 +#: parse.y:3255 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3227 +#: parse.y:3259 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3238 +#: parse.y:3270 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3241 +#: parse.y:3273 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3245 +#: parse.y:3277 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:4461 +#: parse.y:4523 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:4479 +#: parse.y:4541 #, c-format msgid "syntax error near `%s'" msgstr "" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error: unexpected end of file" msgstr "" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error" msgstr "" -#: parse.y:4551 +#: parse.y:4613 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "" -#: parse.y:4710 +#: parse.y:4775 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1001 +#: pcomplete.c:1002 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1200,7 +1209,7 @@ msgstr "" msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:956 +#: redir.c:965 msgid "redirection error: cannot duplicate fd" msgstr "" @@ -1212,227 +1221,227 @@ msgstr "" msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:849 +#: shell.c:850 #, c-format msgid "%c%c: invalid option" msgstr "" -#: shell.c:1598 +#: shell.c:1600 msgid "I have no name!" msgstr "" -#: shell.c:1733 +#: shell.c:1735 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" msgstr "" -#: shell.c:1735 +#: shell.c:1737 msgid "GNU long options:\n" msgstr "" -#: shell.c:1739 +#: shell.c:1741 msgid "Shell options:\n" msgstr "" -#: shell.c:1740 +#: shell.c:1742 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1755 +#: shell.c:1757 #, c-format msgid "\t-%s or -o option\n" msgstr "" -#: shell.c:1761 +#: shell.c:1763 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1762 +#: shell.c:1764 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1763 +#: shell.c:1765 msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:494 +#: sig.c:557 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: subst.c:1123 +#: subst.c:1160 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2269 +#: subst.c:2328 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4208 subst.c:4224 +#: subst.c:4265 subst.c:4281 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4255 +#: subst.c:4312 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4300 +#: subst.c:4357 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:4302 +#: subst.c:4359 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:4310 +#: subst.c:4367 #, c-format msgid "cannout reset nodelay mode for fd %d" msgstr "" -#: subst.c:4320 +#: subst.c:4377 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4495 +#: subst.c:4552 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4531 +#: subst.c:4588 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4548 +#: subst.c:4605 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5013 +#: subst.c:5068 #, c-format msgid "%s: parameter null or not set" msgstr "" -#: subst.c:5287 +#: subst.c:5342 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6058 +#: subst.c:6179 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6134 +#: subst.c:6255 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7687 +#: subst.c:7826 #, c-format msgid "no match: %s" msgstr "" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "" -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "" -#: test.c:378 test.c:787 test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "" -#: test.c:543 test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "" -#: trap.c:194 +#: trap.c:200 msgid "invalid signal number" msgstr "" -#: trap.c:309 +#: trap.c:315 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:313 +#: trap.c:319 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:349 +#: trap.c:355 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:320 +#: variables.c:334 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:692 +#: variables.c:711 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1651 +#: variables.c:1670 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:2807 +#: variables.c:2813 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3021 variables.c:3030 +#: variables.c:3030 variables.c:3039 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3036 +#: variables.c:3045 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3463 +#: variables.c:3472 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3476 +#: variables.c:3485 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3548 +#: variables.c:3557 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" #: version.c:82 -msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" msgstr "" #: xmalloc.c:93 @@ -1477,7 +1486,7 @@ msgstr "" #: builtins.c:244 msgid "" -" `alias' with no arguments or with the -p option prints the list\n" +"`alias' with no arguments or with the -p option prints the list\n" " of aliases in the form alias NAME=VALUE on standard output.\n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" @@ -1487,13 +1496,13 @@ msgstr "" #: builtins.c:257 msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +"Remove NAMEs from the list of defined aliases. If the -a option is given,\n" " then remove all alias definitions." msgstr "" #: builtins.c:266 msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" +"Bind a key sequence to a Readline function or a macro, or set\n" " a Readline variable. The non-option argument syntax is equivalent\n" " to that found in ~/.inputrc, but must be passed as a single argument:\n" " bind '\"\\C-x\\C-r\": re-read-init-file'.\n" @@ -1527,30 +1536,30 @@ msgstr "" #: builtins.c:297 msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +"Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" " break N levels." msgstr "" #: builtins.c:304 msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" " If N is specified, resume at the N-th enclosing loop." msgstr "" #: builtins.c:311 msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" +"Run a shell builtin. This is useful when you wish to rename a\n" " shell builtin to be a function, but need the functionality of the\n" " builtin within the function itself." msgstr "" #: builtins.c:320 msgid "" -" Returns the context of the current subroutine call.\n" +"Returns the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" +" Without EXPR, returns \"$line $filename\". With EXPR,\n" " returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" can be used to provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" " current one; the top frame is frame 0." @@ -1558,7 +1567,7 @@ msgstr "" #: builtins.c:334 msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" +"Change the current directory to DIR. The variable $HOME is the\n" " default DIR. The variable CDPATH defines the search path for\n" " the directory containing DIR. Alternative directory names in CDPATH\n" " are separated by a colon (:). A null directory name is the same as\n" @@ -1574,26 +1583,26 @@ msgstr "" #: builtins.c:350 msgid "" -" Print the current working directory. With the -P option, pwd prints\n" +"Print the current working directory. With the -P option, pwd prints\n" " the physical directory, without any symbolic links; the -L option\n" " makes pwd follow symbolic links." msgstr "" #: builtins.c:358 -msgid " No effect; the command does nothing. A zero exit code is returned." +msgid "No effect; the command does nothing. A zero exit code is returned." msgstr "" #: builtins.c:364 -msgid " Return a successful result." +msgid "Return a successful result." msgstr "" #: builtins.c:370 -msgid " Return an unsuccessful result." +msgid "Return an unsuccessful result." msgstr "" #: builtins.c:376 msgid "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +"Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" " function called `ls', and you wish to call the command `ls', you can\n" " say \"command ls\". If the -p option is given, a default value is used\n" " for PATH that is guaranteed to find all of the standard utilities. If\n" @@ -1603,7 +1612,7 @@ msgstr "" #: builtins.c:387 msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" +"Declare variables and/or give them attributes. If no NAMEs are\n" " given, then display the values of variables instead. The -p option\n" " will display the attributes and values of each NAME.\n" " \n" @@ -1631,19 +1640,19 @@ msgid "" msgstr "" #: builtins.c:416 -msgid " Obsolete. See `declare'." +msgid "Obsolete. See `declare'." msgstr "" #: builtins.c:422 msgid "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" +"Create a local variable called NAME, and give it VALUE. LOCAL\n" " can only be used within a function; it makes the variable NAME\n" " have a visible scope restricted to that function and its children." msgstr "" #: builtins.c:431 msgid "" -" Output the ARGs. If -n is specified, the trailing newline is\n" +"Output the ARGs. If -n is specified, the trailing newline is\n" " suppressed. If the -e option is given, interpretation of the\n" " following backslash-escaped characters is turned on:\n" " \t\\a\talert (bell)\n" @@ -1656,20 +1665,21 @@ msgid "" " \t\\t\thorizontal tab\n" " \t\\v\tvertical tab\n" " \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" +" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t\t0 to 3 octal digits\n" " \n" " You can explicitly turn off the interpretation of the above characters\n" " with the -E option." msgstr "" -#: builtins.c:455 +#: builtins.c:456 msgid "" -" Output the ARGs. If -n is specified, the trailing newline is suppressed." +"Output the ARGs. If -n is specified, the trailing newline is suppressed." msgstr "" -#: builtins.c:462 +#: builtins.c:463 msgid "" -" Enable and disable builtin shell commands. This allows\n" +"Enable and disable builtin shell commands. This allows\n" " you to use a disk command which has the same name as a shell\n" " builtin without specifying a full pathname. If -n is used, the\n" " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" @@ -1686,13 +1696,13 @@ msgid "" "builtins." msgstr "" -#: builtins.c:480 -msgid " Read ARGs as input to the shell and execute the resulting command(s)." +#: builtins.c:481 +msgid "Read ARGs as input to the shell and execute the resulting command(s)." msgstr "" -#: builtins.c:486 +#: builtins.c:487 msgid "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Getopts is used by shell procedures to parse positional parameters.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1724,9 +1734,9 @@ msgid "" " more arguments are given, they are parsed instead." msgstr "" -#: builtins.c:521 +#: builtins.c:522 msgid "" -" Exec FILE, replacing this shell with the specified program.\n" +"Exec FILE, replacing this shell with the specified program.\n" " If FILE is not specified, the redirections take effect in this\n" " shell. If the first argument is `-l', then place a dash in the\n" " zeroth arg passed to FILE, as login does. If the `-c' option\n" @@ -1736,19 +1746,19 @@ msgid "" " then the shell exits, unless the shell option `execfail' is set." msgstr "" -#: builtins.c:534 +#: builtins.c:535 msgid "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -#: builtins.c:541 -msgid " Logout of a login shell." +#: builtins.c:542 +msgid "Logout of a login shell." msgstr "" -#: builtins.c:548 +#: builtins.c:549 msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"fc is used to list or edit and re-execute commands from the history list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" @@ -1770,23 +1780,23 @@ msgid "" " the last command." msgstr "" -#: builtins.c:573 +#: builtins.c:574 msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" +"Place JOB_SPEC in the foreground, and make it the current job. If\n" " JOB_SPEC is not present, the shell's notion of the current job is\n" " used." msgstr "" -#: builtins.c:583 +#: builtins.c:584 msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" +"Place each JOB_SPEC in the background, as if it had been started with\n" " `&'. If JOB_SPEC is not present, the shell's notion of the current\n" " job is used." msgstr "" -#: builtins.c:592 +#: builtins.c:593 msgid "" -" For each NAME, the full pathname of the command is determined and\n" +"For each NAME, the full pathname of the command is determined and\n" " remembered. If the -p option is supplied, PATHNAME is used as the\n" " full pathname of NAME, and no path search is performed. The -r\n" " option causes the shell to forget all remembered locations. The -d\n" @@ -1799,18 +1809,18 @@ msgid "" "displayed." msgstr "" -#: builtins.c:608 +#: builtins.c:609 msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display helpful information about builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" " otherwise a list of the builtins is printed. The -s option\n" " restricts the output for each builtin command matching PATTERN to\n" " a short usage synopsis." msgstr "" -#: builtins.c:620 +#: builtins.c:621 msgid "" -" Display the history list with line numbers. Lines listed with\n" +"Display the history list with line numbers. Lines listed with\n" " with a `*' have been modified. Argument of N says to list only\n" " the last N lines. The `-c' option causes the history list to be\n" " cleared by deleting all of the entries. The `-d' option deletes\n" @@ -1833,9 +1843,9 @@ msgid "" " with each displayed history entry. No time stamps are printed otherwise." msgstr "" -#: builtins.c:648 +#: builtins.c:649 msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" +"Lists the active jobs. The -l option lists process id's in addition\n" " to the normal information; the -p option lists process id's only.\n" " If -n is given, only processes that have changed status since the last\n" " notification are printed. JOBSPEC restricts output to that job. The\n" @@ -1847,9 +1857,9 @@ msgid "" " process group leader." msgstr "" -#: builtins.c:664 +#: builtins.c:665 msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" +"By default, removes each JOBSPEC argument from the table of active jobs.\n" " If the -h option is given, the job is not removed from the table, but " "is\n" " marked so that SIGHUP is not sent to the job if the shell receives a\n" @@ -1858,9 +1868,9 @@ msgid "" " jobs from the job table; the -r option means to remove only running jobs." msgstr "" -#: builtins.c:675 +#: builtins.c:676 msgid "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" " SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" " lists the signal names; if arguments follow `-l' they are assumed to\n" " be signal numbers for which names should be listed. Kill is a shell\n" @@ -1869,9 +1879,9 @@ msgid "" " you can create, you don't have to start a process to kill another one." msgstr "" -#: builtins.c:687 +#: builtins.c:688 msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" " is done in fixed-width integers with no check for overflow, though\n" " division by 0 is trapped and flagged as an error. The following\n" " list of operators is grouped into levels of equal-precedence operators.\n" @@ -1911,10 +1921,9 @@ msgid "" " otherwise." msgstr "" -#: builtins.c:730 +#: builtins.c:731 msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" +"One line is read from the standard input, or from file descriptor FD if the\n" " -u option is supplied, and the first word is assigned to the first " "NAME,\n" " the second word to the second NAME, and so on, with leftover words " @@ -1950,15 +1959,15 @@ msgid "" " the argument to -u." msgstr "" -#: builtins.c:756 +#: builtins.c:757 msgid "" -" Causes a function to exit with the return value specified by N. If N\n" +"Causes a function to exit with the return value specified by N. If N\n" " is omitted, the return status is that of the last command." msgstr "" -#: builtins.c:763 +#: builtins.c:764 msgid "" -" -a Mark variables which are modified or created for export.\n" +" -a Mark variables which are modified or created for export.\n" " -b Notify of job termination immediately.\n" " -e Exit immediately if a command exits with a non-zero status.\n" " -f Disable file name generation (globbing).\n" @@ -2034,18 +2043,18 @@ msgid "" " ARGs are given, all shell variables are printed." msgstr "" -#: builtins.c:836 +#: builtins.c:837 msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" +"For each NAME, remove the corresponding variable or function. Given\n" " the `-v', unset will only act on variables. Given the `-f' flag,\n" " unset will only act on functions. With neither flag, unset first\n" " tries to unset a variable, and if that fails, then tries to unset a\n" " function. Some variables cannot be unset; also see readonly." msgstr "" -#: builtins.c:846 +#: builtins.c:847 msgid "" -" NAMEs are marked for automatic export to the environment of\n" +"NAMEs are marked for automatic export to the environment of\n" " subsequently executed commands. If the -f option is given,\n" " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" " is given, a list of all names that are exported in this shell is\n" @@ -2054,9 +2063,9 @@ msgid "" " processing." msgstr "" -#: builtins.c:858 +#: builtins.c:859 msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" +"The given NAMEs are marked readonly and the values of these NAMEs may\n" " not be changed by subsequent assignment. If the -f option is given,\n" " then functions corresponding to the NAMEs are so marked. If no\n" " arguments are given, or if `-p' is given, a list of all readonly names\n" @@ -2065,30 +2074,30 @@ msgid "" " processing." msgstr "" -#: builtins.c:870 +#: builtins.c:871 msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" " not given, it is assumed to be 1." msgstr "" -#: builtins.c:877 builtins.c:886 +#: builtins.c:878 builtins.c:887 msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" +"Read and execute commands from FILENAME and return. The pathnames\n" " in $PATH are used to find the directory containing FILENAME. If any\n" " ARGUMENTS are supplied, they become the positional parameters when\n" " FILENAME is executed." msgstr "" -#: builtins.c:896 +#: builtins.c:897 msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" +"Suspend the execution of this shell until it receives a SIGCONT\n" " signal. The `-f' if specified says not to complain about this\n" " being a login shell if it is; just suspend anyway." msgstr "" -#: builtins.c:905 +#: builtins.c:906 msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" @@ -2158,21 +2167,21 @@ msgid "" " than ARG2." msgstr "" -#: builtins.c:975 +#: builtins.c:976 msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" +"This is a synonym for the \"test\" builtin, but the last\n" " argument must be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:982 +#: builtins.c:983 msgid "" -" Print the accumulated user and system times for processes run from\n" +"Print the accumulated user and system times for processes run from\n" " the shell." msgstr "" -#: builtins.c:989 +#: builtins.c:990 msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"The command ARG is to be read and executed when the shell receives\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" @@ -2190,9 +2199,9 @@ msgid "" " signal can be sent to the shell with \"kill -signal $$\"." msgstr "" -#: builtins.c:1008 +#: builtins.c:1009 msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" +"For each NAME, indicate how it would be interpreted if used as a\n" " command name.\n" " \n" " If the -t option is used, `type' outputs a single word which is one of\n" @@ -2215,9 +2224,9 @@ msgid "" " be executed." msgstr "" -#: builtins.c:1035 +#: builtins.c:1036 msgid "" -" Ulimit provides control over the resources available to processes\n" +"Ulimit provides control over the resources available to processes\n" " started by the shell, on systems that allow such control. If an\n" " option is given, it is interpreted as follows:\n" " \n" @@ -2226,18 +2235,20 @@ msgid "" " -a\tall current limits are reported\n" " -c\tthe maximum size of core files created\n" " -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" " -l\tthe maximum size a process may lock into memory\n" " -m\tthe maximum resident set size\n" " -n\tthe maximum number of open file descriptors\n" " -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" " -s\tthe maximum stack size\n" " -t\tthe maximum amount of cpu time in seconds\n" " -u\tthe maximum number of user processes\n" " -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" +" -x\tthe maximum number of file locks\n" " \n" " If LIMIT is given, it is the new value of the specified resource;\n" " the special LIMIT values `soft', `hard', and `unlimited' stand for\n" @@ -2250,9 +2261,9 @@ msgid "" " processes." msgstr "" -#: builtins.c:1071 +#: builtins.c:1074 msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" " `-S' is supplied, the current value of the mask is printed. The `-S'\n" " option makes the output symbolic; otherwise an octal number is output.\n" " If `-p' is supplied, and MODE is omitted, the output is in a form\n" @@ -2261,34 +2272,34 @@ msgid "" " like that accepted by chmod(1)." msgstr "" -#: builtins.c:1084 +#: builtins.c:1087 msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N may be a process ID or a job\n" " specification; if a job spec is given, all processes in the job's\n" " pipeline are waited for." msgstr "" -#: builtins.c:1096 +#: builtins.c:1099 msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N is a process ID; if it is not given,\n" " all child processes of the shell are waited for." msgstr "" -#: builtins.c:1106 +#: builtins.c:1109 msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +"The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" " the COMMANDS are executed." msgstr "" -#: builtins.c:1115 +#: builtins.c:1118 msgid "" -" Equivalent to\n" +"Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" @@ -2298,9 +2309,9 @@ msgid "" " omitted, it behaves as if it evaluates to 1." msgstr "" -#: builtins.c:1128 +#: builtins.c:1131 msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2313,24 +2324,24 @@ msgid "" " until a break command is executed." msgstr "" -#: builtins.c:1144 +#: builtins.c:1147 msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" " The return status is the return status of PIPELINE. The `-p' option\n" " prints the timing summary in a slightly different format. This uses\n" " the value of the TIMEFORMAT variable as the output format." msgstr "" -#: builtins.c:1154 +#: builtins.c:1157 msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" " `|' is used to separate multiple patterns." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" " `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -2343,49 +2354,49 @@ msgid "" " if no condition tested true." msgstr "" -#: builtins.c:1173 +#: builtins.c:1176 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `while' COMMANDS has an exit status of zero." msgstr "" -#: builtins.c:1180 +#: builtins.c:1183 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `until' COMMANDS has an exit status which is not zero." msgstr "" -#: builtins.c:1187 +#: builtins.c:1190 msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" +"Create a simple command invoked by NAME which runs COMMANDS.\n" " Arguments on the command line along with NAME are passed to the\n" " function as $0 .. $n." msgstr "" -#: builtins.c:1195 +#: builtins.c:1198 msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" +"Run a set of commands in a group. This is one way to redirect an\n" " entire set of commands." msgstr "" -#: builtins.c:1202 +#: builtins.c:1205 msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" " argument to `bg'." msgstr "" -#: builtins.c:1212 +#: builtins.c:1215 msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" +"The EXPRESSION is evaluated according to the rules for arithmetic\n" " evaluation. Equivalent to \"let EXPRESSION\"." msgstr "" -#: builtins.c:1219 +#: builtins.c:1222 msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the `test' builtin, and may be combined using the following " @@ -2403,22 +2414,21 @@ msgid "" " determine the expression's value." msgstr "" -#: builtins.c:1237 +#: builtins.c:1240 msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" +"BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" " \t\tfor directries given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -2427,19 +2437,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -2447,7 +2457,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -2456,9 +2466,9 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1292 +#: builtins.c:1295 msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" @@ -2479,9 +2489,9 @@ msgid "" " You can see the directory stack with the `dirs' command." msgstr "" -#: builtins.c:1318 +#: builtins.c:1321 msgid "" -" Removes entries from the directory stack. With no arguments,\n" +"Removes entries from the directory stack. With no arguments,\n" " removes the top directory from the stack, and cd's to the new\n" " top directory.\n" " \n" @@ -2499,9 +2509,9 @@ msgid "" " You can see the directory stack with the `dirs' command." msgstr "" -#: builtins.c:1341 +#: builtins.c:1344 msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" @@ -2520,9 +2530,9 @@ msgid "" " \tdirs when invoked without options, starting with zero." msgstr "" -#: builtins.c:1364 +#: builtins.c:1367 msgid "" -" Toggle the values of variables controlling optional behavior.\n" +"Toggle the values of variables controlling optional behavior.\n" " The -s flag means to enable (set) each OPTNAME; the -u flag\n" " unsets each OPTNAME. The -q flag suppresses output; the exit\n" " status indicates whether each OPTNAME is set or unset. The -o\n" @@ -2532,9 +2542,9 @@ msgid "" " not each is set." msgstr "" -#: builtins.c:1377 +#: builtins.c:1380 msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" " is a character string which contains three types of objects: plain\n" " characters, which are simply copied to standard output, character " "escape\n" @@ -2549,18 +2559,18 @@ msgid "" " shell variable VAR rather than being sent to the standard output." msgstr "" -#: builtins.c:1393 +#: builtins.c:1396 msgid "" -" For each NAME, specify how arguments are to be completed.\n" +"For each NAME, specify how arguments are to be completed.\n" " If the -p option is supplied, or if no options are supplied, existing\n" " completion specifications are printed in a way that allows them to be\n" " reused as input. The -r option removes a completion specification for\n" " each NAME, or, if no NAMEs are supplied, all completion specifications." msgstr "" -#: builtins.c:1405 +#: builtins.c:1408 msgid "" -" Display the possible completions depending on the options. Intended\n" +"Display the possible completions depending on the options. Intended\n" " to be used from within a shell function generating possible " "completions.\n" " If the optional WORD argument is supplied, matches against WORD are\n" diff --git a/po/en@boldquot.gmo b/po/en@boldquot.gmo index dd5008ca8..4a0ac27e1 100644 Binary files a/po/en@boldquot.gmo and b/po/en@boldquot.gmo differ diff --git a/po/en@boldquot.po b/po/en@boldquot.po index b27555499..efc1b02db 100644 --- a/po/en@boldquot.po +++ b/po/en@boldquot.po @@ -31,7 +31,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bash 3.1-beta1\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\n" +"POT-Creation-Date: 2006-10-23 17:20-0400\n" "PO-Revision-Date: 2005-10-03 17:31-0400\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -44,31 +44,31 @@ msgstr "" msgid "bad array subscript" msgstr "bad array subscript" -#: arrayfunc.c:360 +#: arrayfunc.c:362 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: cannot assign to non-numeric index" -#: bashhist.c:328 +#: bashhist.c:331 #, c-format msgid "%s: cannot create: %s" msgstr "%s: cannot create: %s" -#: bashline.c:2947 +#: bashline.c:3030 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: cannot find keymap for command" -#: bashline.c:2996 +#: bashline.c:3079 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: first non-whitespace character is not ‘\"’" -#: bashline.c:3025 +#: bashline.c:3108 #, c-format msgid "no closing `%c' in %s" msgstr "no closing ‘%c’ in %s" -#: bashline.c:3059 +#: bashline.c:3142 #, c-format msgid "%s: missing colon separator" msgstr "%s: missing colon separator" @@ -107,51 +107,51 @@ msgstr "%s can be invoked via " msgid "only meaningful in a `for', `while', or `until' loop" msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop" -#: builtins/caller.def:132 +#: builtins/caller.def:131 msgid "Returns the context of the current subroutine call." msgstr "Returns the context of the current subroutine call." -#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 -#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 -#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 -#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 -#: builtins/pushd.def:712 builtins/pushd.def:715 +#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 +#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 +#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 +#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 +#: builtins/pushd.def:718 builtins/pushd.def:721 msgid " " msgstr " " -#: builtins/caller.def:134 +#: builtins/caller.def:133 msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," msgstr "Without EXPR, returns returns “$line $filename”. With EXPR," -#: builtins/caller.def:135 +#: builtins/caller.def:134 msgid "returns \"$line $subroutine $filename\"; this extra information" msgstr "returns “$line $subroutine $filename”; this extra information" -#: builtins/caller.def:136 +#: builtins/caller.def:135 msgid "can be used used to provide a stack trace." msgstr "can be used used to provide a stack trace." -#: builtins/caller.def:138 +#: builtins/caller.def:137 msgid "The value of EXPR indicates how many call frames to go back before the" msgstr "The value of EXPR indicates how many call frames to go back before the" -#: builtins/caller.def:139 +#: builtins/caller.def:138 msgid "current one; the top frame is frame 0." msgstr "current one; the top frame is frame 0." -#: builtins/cd.def:203 +#: builtins/cd.def:204 msgid "HOME not set" msgstr "HOME not set" -#: builtins/cd.def:215 +#: builtins/cd.def:216 msgid "OLDPWD not set" msgstr "OLDPWD not set" -#: builtins/common.c:133 test.c:921 +#: builtins/common.c:133 test.c:822 msgid "too many arguments" msgstr "too many arguments" -#: builtins/common.c:157 shell.c:474 shell.c:747 +#: builtins/common.c:157 shell.c:474 shell.c:748 #, c-format msgid "%s: option requires an argument" msgstr "%s: option requires an argument" @@ -166,7 +166,7 @@ msgstr "%s: numeric argument required" msgid "%s: not found" msgstr "%s: not found" -#: builtins/common.c:180 shell.c:760 +#: builtins/common.c:180 shell.c:761 #, c-format msgid "%s: invalid option" msgstr "%s: invalid option" @@ -176,7 +176,7 @@ msgstr "%s: invalid option" msgid "%s: invalid option name" msgstr "%s: invalid option name" -#: builtins/common.c:194 general.c:231 general.c:236 +#: builtins/common.c:194 general.c:230 general.c:235 #, c-format msgid "`%s': not a valid identifier" msgstr "‘%s’: not a valid identifier" @@ -196,7 +196,7 @@ msgstr "%s: invalid signal specification" msgid "`%s': not a pid or valid job spec" msgstr "‘%s’: not a pid or valid job spec" -#: builtins/common.c:222 error.c:453 +#: builtins/common.c:222 error.c:451 #, c-format msgid "%s: readonly variable" msgstr "%s: readonly variable" @@ -248,12 +248,12 @@ msgstr "%s: not a shell builtin" msgid "write error: %s" msgstr "write error: %s" -#: builtins/common.c:484 +#: builtins/common.c:481 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "%s: error retrieving current directory: %s: %s\n" -#: builtins/common.c:550 builtins/common.c:552 +#: builtins/common.c:547 builtins/common.c:549 #, c-format msgid "%s: ambiguous job spec" msgstr "%s: ambiguous job spec" @@ -276,20 +276,20 @@ msgstr "warning: -F option may not work as you expect" msgid "warning: -C option may not work as you expect" msgstr "warning: -C option may not work as you expect" -#: builtins/declare.def:105 +#: builtins/declare.def:106 msgid "can only be used in a function" msgstr "can only be used in a function" -#: builtins/declare.def:301 +#: builtins/declare.def:306 msgid "cannot use `-f' to make functions" msgstr "cannot use ‘-f’ to make functions" -#: builtins/declare.def:313 execute_cmd.c:3986 +#: builtins/declare.def:318 execute_cmd.c:4073 #, c-format msgid "%s: readonly function" msgstr "%s: readonly function" -#: builtins/declare.def:401 +#: builtins/declare.def:406 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: cannot destroy array variables in this way" @@ -318,7 +318,7 @@ msgstr "%s: not dynamically loaded" msgid "%s: cannot delete: %s" msgstr "%s: cannot delete: %s" -#: builtins/evalfile.c:129 execute_cmd.c:3852 shell.c:1408 +#: builtins/evalfile.c:129 execute_cmd.c:3930 shell.c:1409 #, c-format msgid "%s: is a directory" msgstr "%s: is a directory" @@ -346,15 +346,15 @@ msgstr "not login shell: use ‘exit’" msgid "There are stopped jobs.\n" msgstr "There are stopped jobs.\n" -#: builtins/fc.def:259 +#: builtins/fc.def:258 msgid "no command found" msgstr "no command found" -#: builtins/fc.def:329 +#: builtins/fc.def:328 msgid "history specification" msgstr "history specification" -#: builtins/fc.def:350 +#: builtins/fc.def:349 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: cannot open temp file: %s" @@ -374,11 +374,11 @@ msgstr "%s: illegal option -- %c\n" msgid "%s: option requires an argument -- %c\n" msgstr "%s: option requires an argument -- %c\n" -#: builtins/hash.def:83 +#: builtins/hash.def:84 msgid "hashing disabled" msgstr "hashing disabled" -#: builtins/hash.def:128 +#: builtins/hash.def:130 #, c-format msgid "%s: hash table empty\n" msgstr "%s: hash table empty\n" @@ -450,207 +450,207 @@ msgstr "%s: arguments must be process or job IDs" msgid "Unknown error" msgstr "Unknown error" -#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 +#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 msgid "expression expected" msgstr "expression expected" -#: builtins/printf.def:327 +#: builtins/printf.def:339 #, c-format msgid "`%s': missing format character" msgstr "‘%s’: missing format character" -#: builtins/printf.def:502 +#: builtins/printf.def:516 #, c-format msgid "`%c': invalid format character" msgstr "‘%c’: invalid format character" -#: builtins/printf.def:708 +#: builtins/printf.def:722 msgid "missing hex digit for \\x" msgstr "missing hex digit for \\x" -#: builtins/pushd.def:173 +#: builtins/pushd.def:175 msgid "no other directory" msgstr "no other directory" -#: builtins/pushd.def:440 +#: builtins/pushd.def:442 msgid "" msgstr "" -#: builtins/pushd.def:657 +#: builtins/pushd.def:663 msgid "Display the list of currently remembered directories. Directories" msgstr "Display the list of currently remembered directories. Directories" -#: builtins/pushd.def:658 +#: builtins/pushd.def:664 msgid "find their way onto the list with the `pushd' command; you can get" msgstr "" "find their way onto the list with the ‘pushd’ command; you can get" -#: builtins/pushd.def:659 +#: builtins/pushd.def:665 msgid "back up through the list with the `popd' command." msgstr "back up through the list with the ‘popd’ command." -#: builtins/pushd.def:661 +#: builtins/pushd.def:667 msgid "The -l flag specifies that `dirs' should not print shorthand versions" msgstr "" "The -l flag specifies that ‘dirs’ should not print shorthand versions" -#: builtins/pushd.def:662 +#: builtins/pushd.def:668 msgid "of directories which are relative to your home directory. This means" msgstr "of directories which are relative to your home directory. This means" -#: builtins/pushd.def:663 +#: builtins/pushd.def:669 msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" msgstr "" "that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’. The -v " "flag" -#: builtins/pushd.def:664 +#: builtins/pushd.def:670 msgid "causes `dirs' to print the directory stack with one entry per line," msgstr "" "causes ‘dirs’ to print the directory stack with one entry per line," -#: builtins/pushd.def:665 +#: builtins/pushd.def:671 msgid "prepending the directory name with its position in the stack. The -p" msgstr "prepending the directory name with its position in the stack. The -p" -#: builtins/pushd.def:666 +#: builtins/pushd.def:672 msgid "flag does the same thing, but the stack position is not prepended." msgstr "flag does the same thing, but the stack position is not prepended." -#: builtins/pushd.def:667 +#: builtins/pushd.def:673 msgid "The -c flag clears the directory stack by deleting all of the elements." msgstr "" "The -c flag clears the directory stack by deleting all of the elements." -#: builtins/pushd.def:669 +#: builtins/pushd.def:675 msgid "+N displays the Nth entry counting from the left of the list shown by" msgstr "" "+N displays the Nth entry counting from the left of the list shown by" -#: builtins/pushd.def:670 builtins/pushd.def:673 +#: builtins/pushd.def:676 builtins/pushd.def:679 msgid " dirs when invoked without options, starting with zero." msgstr " dirs when invoked without options, starting with zero." -#: builtins/pushd.def:672 +#: builtins/pushd.def:678 msgid "" "-N displays the Nth entry counting from the right of the list shown by" msgstr "" "-N displays the Nth entry counting from the right of the list shown by" -#: builtins/pushd.def:678 +#: builtins/pushd.def:684 msgid "Adds a directory to the top of the directory stack, or rotates" msgstr "Adds a directory to the top of the directory stack, or rotates" -#: builtins/pushd.def:679 +#: builtins/pushd.def:685 msgid "the stack, making the new top of the stack the current working" msgstr "the stack, making the new top of the stack the current working" -#: builtins/pushd.def:680 +#: builtins/pushd.def:686 msgid "directory. With no arguments, exchanges the top two directories." msgstr "directory. With no arguments, exchanges the top two directories." -#: builtins/pushd.def:682 +#: builtins/pushd.def:688 msgid "+N Rotates the stack so that the Nth directory (counting" msgstr "+N Rotates the stack so that the Nth directory (counting" -#: builtins/pushd.def:683 +#: builtins/pushd.def:689 msgid " from the left of the list shown by `dirs', starting with" msgstr " from the left of the list shown by ‘dirs’, starting with" -#: builtins/pushd.def:684 builtins/pushd.def:688 +#: builtins/pushd.def:690 builtins/pushd.def:694 msgid " zero) is at the top." msgstr " zero) is at the top." -#: builtins/pushd.def:686 +#: builtins/pushd.def:692 msgid "-N Rotates the stack so that the Nth directory (counting" msgstr "-N Rotates the stack so that the Nth directory (counting" -#: builtins/pushd.def:687 +#: builtins/pushd.def:693 msgid " from the right of the list shown by `dirs', starting with" msgstr " from the right of the list shown by ‘dirs’, starting with" -#: builtins/pushd.def:690 +#: builtins/pushd.def:696 msgid "-n suppress the normal change of directory when adding directories" msgstr "-n suppress the normal change of directory when adding directories" -#: builtins/pushd.def:691 +#: builtins/pushd.def:697 msgid " to the stack, so only the stack is manipulated." msgstr " to the stack, so only the stack is manipulated." -#: builtins/pushd.def:693 +#: builtins/pushd.def:699 msgid "dir adds DIR to the directory stack at the top, making it the" msgstr "dir adds DIR to the directory stack at the top, making it the" -#: builtins/pushd.def:694 +#: builtins/pushd.def:700 msgid " new current working directory." msgstr " new current working directory." -#: builtins/pushd.def:696 builtins/pushd.def:716 +#: builtins/pushd.def:702 builtins/pushd.def:722 msgid "You can see the directory stack with the `dirs' command." msgstr "You can see the directory stack with the ‘dirs’ command." -#: builtins/pushd.def:701 +#: builtins/pushd.def:707 msgid "Removes entries from the directory stack. With no arguments," msgstr "Removes entries from the directory stack. With no arguments," -#: builtins/pushd.def:702 +#: builtins/pushd.def:708 msgid "removes the top directory from the stack, and cd's to the new" msgstr "removes the top directory from the stack, and cd's to the new" -#: builtins/pushd.def:703 +#: builtins/pushd.def:709 msgid "top directory." msgstr "top directory." -#: builtins/pushd.def:705 +#: builtins/pushd.def:711 msgid "+N removes the Nth entry counting from the left of the list" msgstr "+N removes the Nth entry counting from the left of the list" -#: builtins/pushd.def:706 +#: builtins/pushd.def:712 msgid " shown by `dirs', starting with zero. For example: `popd +0'" msgstr "" " shown by ‘dirs’, starting with zero. For example: ‘popd +0’" -#: builtins/pushd.def:707 +#: builtins/pushd.def:713 msgid " removes the first directory, `popd +1' the second." msgstr " removes the first directory, ‘popd +1’ the second." -#: builtins/pushd.def:709 +#: builtins/pushd.def:715 msgid "-N removes the Nth entry counting from the right of the list" msgstr "-N removes the Nth entry counting from the right of the list" -#: builtins/pushd.def:710 +#: builtins/pushd.def:716 msgid " shown by `dirs', starting with zero. For example: `popd -0'" msgstr "" " shown by ‘dirs’, starting with zero. For example: ‘popd -0’" -#: builtins/pushd.def:711 +#: builtins/pushd.def:717 msgid " removes the last directory, `popd -1' the next to last." msgstr " removes the last directory, ‘popd -1’ the next to last." -#: builtins/pushd.def:713 +#: builtins/pushd.def:719 msgid "-n suppress the normal change of directory when removing directories" msgstr "-n suppress the normal change of directory when removing directories" -#: builtins/pushd.def:714 +#: builtins/pushd.def:720 msgid " from the stack, so only the stack is manipulated." msgstr " from the stack, so only the stack is manipulated." -#: builtins/read.def:211 +#: builtins/read.def:210 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: invalid timeout specification" -#: builtins/read.def:234 +#: builtins/read.def:233 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: invalid file descriptor specification" -#: builtins/read.def:241 +#: builtins/read.def:240 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: invalid file descriptor: %s" -#: builtins/read.def:474 +#: builtins/read.def:478 #, c-format msgid "read error: %d: %s" msgstr "read error: %d: %s" @@ -659,21 +659,21 @@ msgstr "read error: %d: %s" msgid "can only `return' from a function or sourced script" msgstr "can only ‘return’ from a function or sourced script" -#: builtins/set.def:745 +#: builtins/set.def:744 msgid "cannot simultaneously unset a function and a variable" msgstr "cannot simultaneously unset a function and a variable" -#: builtins/set.def:782 +#: builtins/set.def:781 #, c-format msgid "%s: cannot unset" msgstr "%s: cannot unset" -#: builtins/set.def:789 +#: builtins/set.def:788 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: cannot unset: readonly %s" -#: builtins/set.def:800 +#: builtins/set.def:799 #, c-format msgid "%s: not an array variable" msgstr "%s: not an array variable" @@ -696,20 +696,20 @@ msgstr "cannot set and unset shell options simultaneously" msgid "%s: invalid shell option name" msgstr "%s: invalid shell option name" -#: builtins/source.def:117 +#: builtins/source.def:115 msgid "filename argument required" msgstr "filename argument required" -#: builtins/source.def:137 +#: builtins/source.def:135 #, c-format msgid "%s: file not found" msgstr "%s: file not found" -#: builtins/suspend.def:93 +#: builtins/suspend.def:95 msgid "cannot suspend" msgstr "cannot suspend" -#: builtins/suspend.def:103 +#: builtins/suspend.def:105 msgid "cannot suspend a login shell" msgstr "cannot suspend a login shell" @@ -743,22 +743,22 @@ msgstr "%s is %s\n" msgid "%s is hashed (%s)\n" msgstr "%s is hashed (%s)\n" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:352 #, c-format msgid "%s: invalid limit argument" msgstr "%s: invalid limit argument" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:378 #, c-format msgid "`%c': bad command" msgstr "‘%c’: bad command" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:407 #, c-format msgid "%s: cannot get limit: %s" msgstr "%s: cannot get limit: %s" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:445 #, c-format msgid "%s: cannot modify limit: %s" msgstr "%s: cannot modify limit: %s" @@ -777,37 +777,37 @@ msgstr "‘%c’: invalid symbolic mode operator" msgid "`%c': invalid symbolic mode character" msgstr "‘%c’: invalid symbolic mode character" -#: error.c:165 +#: error.c:163 #, c-format msgid "last command: %s\n" msgstr "last command: %s\n" -#: error.c:173 +#: error.c:171 msgid "Aborting..." msgstr "Aborting..." -#: error.c:260 +#: error.c:258 #, c-format msgid "%s: warning: " msgstr "%s: warning: " -#: error.c:405 +#: error.c:403 msgid "unknown command error" msgstr "unknown command error" -#: error.c:406 +#: error.c:404 msgid "bad command type" msgstr "bad command type" -#: error.c:407 +#: error.c:405 msgid "bad connector" msgstr "bad connector" -#: error.c:408 +#: error.c:406 msgid "bad jump" msgstr "bad jump" -#: error.c:446 +#: error.c:444 #, c-format msgid "%s: unbound variable" msgstr "%s: unbound variable" @@ -816,147 +816,157 @@ msgstr "%s: unbound variable" msgid "timed out waiting for input: auto-logout\n" msgstr "timed out waiting for input: auto-logout\n" -#: execute_cmd.c:471 +#: execute_cmd.c:474 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "cannot redirect standard input from /dev/null: %s" -#: execute_cmd.c:1036 +#: execute_cmd.c:1058 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: ‘%c’: invalid format character" -#: execute_cmd.c:3551 +#: execute_cmd.c:3629 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restricted: cannot specify ‘/’ in command names" -#: execute_cmd.c:3639 +#: execute_cmd.c:3717 #, c-format msgid "%s: command not found" msgstr "%s: command not found" -#: execute_cmd.c:3876 +#: execute_cmd.c:3963 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: bad interpreter" -#: execute_cmd.c:3913 +#: execute_cmd.c:4000 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: cannot execute binary file" -#: execute_cmd.c:4025 +#: execute_cmd.c:4112 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "cannot duplicate fd %d to fd %d" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "expression recursion level exceeded" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "recursion stack underflow" -#: expr.c:375 +#: expr.c:376 msgid "syntax error in expression" msgstr "syntax error in expression" -#: expr.c:415 +#: expr.c:416 msgid "attempted assignment to non-variable" msgstr "attempted assignment to non-variable" -#: expr.c:436 expr.c:441 expr.c:751 +#: expr.c:437 expr.c:442 expr.c:752 msgid "division by 0" msgstr "division by 0" -#: expr.c:467 +#: expr.c:468 msgid "bug: bad expassign token" msgstr "bug: bad expassign token" -#: expr.c:509 +#: expr.c:510 msgid "`:' expected for conditional expression" msgstr "‘:’ expected for conditional expression" -#: expr.c:776 +#: expr.c:777 msgid "exponent less than 0" msgstr "exponent less than 0" -#: expr.c:821 +#: expr.c:822 msgid "identifier expected after pre-increment or pre-decrement" msgstr "identifier expected after pre-increment or pre-decrement" -#: expr.c:849 +#: expr.c:850 msgid "missing `)'" msgstr "missing ‘)’" -#: expr.c:892 +#: expr.c:893 expr.c:1171 msgid "syntax error: operand expected" msgstr "syntax error: operand expected" -#: expr.c:1178 +#: expr.c:1173 +#, fuzzy +msgid "syntax error: invalid arithmetic operator" +msgstr "syntax error: arithmetic expression required" + +#: expr.c:1251 msgid "invalid number" msgstr "invalid number" -#: expr.c:1182 +#: expr.c:1255 msgid "invalid arithmetic base" msgstr "invalid arithmetic base" -#: expr.c:1202 +#: expr.c:1275 msgid "value too great for base" msgstr "value too great for base" -#: general.c:62 +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "getcwd: cannot access parent directories" -#: input.c:231 +#: input.c:237 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" msgstr "cannot allocate new file descriptor for bash input from fd %d" -#: input.c:239 +#: input.c:245 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "save_bash_input: buffer already exists for new fd %d" -#: jobs.c:923 +#: jobs.c:876 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:983 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "deleting stopped job %d with process group %ld" -#: jobs.c:1308 +#: jobs.c:1378 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "describe_pid: %ld: no such pid" -#: jobs.c:1981 nojobs.c:648 +#: jobs.c:2061 nojobs.c:575 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld is not a child of this shell" -#: jobs.c:2180 +#: jobs.c:2265 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: No record of process %ld" -#: jobs.c:2435 +#: jobs.c:2524 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: job %d is stopped" -#: jobs.c:2657 +#: jobs.c:2746 #, c-format msgid "%s: job has terminated" msgstr "%s: job has terminated" -#: jobs.c:2666 +#: jobs.c:2755 #, c-format msgid "%s: job %d already in background" msgstr "%s: job %d already in background" -#: jobs.c:3452 +#: jobs.c:3546 msgid "no job control in this shell" msgstr "no job control in this shell" @@ -974,48 +984,48 @@ msgstr "" "\r\n" "malloc: %s:%d: assertion botched\r\n" -#: lib/malloc/malloc.c:740 +#: lib/malloc/malloc.c:799 msgid "malloc: block on free list clobbered" msgstr "malloc: block on free list clobbered" -#: lib/malloc/malloc.c:817 +#: lib/malloc/malloc.c:876 msgid "free: called with already freed block argument" msgstr "free: called with already freed block argument" -#: lib/malloc/malloc.c:820 +#: lib/malloc/malloc.c:879 msgid "free: called with unallocated block argument" msgstr "free: called with unallocated block argument" -#: lib/malloc/malloc.c:839 +#: lib/malloc/malloc.c:898 msgid "free: underflow detected; mh_nbytes out of range" msgstr "free: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:845 +#: lib/malloc/malloc.c:904 msgid "free: start and end chunk sizes differ" msgstr "free: start and end chunk sizes differ" -#: lib/malloc/malloc.c:942 +#: lib/malloc/malloc.c:1003 msgid "realloc: called with unallocated block argument" msgstr "realloc: called with unallocated block argument" -#: lib/malloc/malloc.c:957 +#: lib/malloc/malloc.c:1018 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "realloc: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:963 +#: lib/malloc/malloc.c:1024 msgid "realloc: start and end chunk sizes differ" msgstr "realloc: start and end chunk sizes differ" -#: lib/malloc/table.c:175 +#: lib/malloc/table.c:176 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" msgstr "register_alloc: alloc table is full with FIND_ALLOC?\n" -#: lib/malloc/table.c:182 +#: lib/malloc/table.c:183 #, c-format msgid "register_alloc: %p already in table as allocated?\n" msgstr "register_alloc: %p already in table as allocated?\n" -#: lib/malloc/table.c:218 +#: lib/malloc/table.c:219 #, c-format msgid "register_free: %p already in table as free?\n" msgstr "register_free: %p already in table as free?\n" @@ -1049,22 +1059,22 @@ msgstr "malloc: watch alert: %p %s " msgid "invalid base" msgstr "invalid base" -#: lib/sh/netopen.c:158 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "%s: host unknown" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "%s: invalid service" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "%s: bad network path specification" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "network operations not supported" @@ -1099,108 +1109,108 @@ msgstr "syntax error: ‘((%s))’" msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: bad instruction type %d" -#: make_cmd.c:736 +#: make_cmd.c:741 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: redirection instruction ‘%d’ out of range" -#: parse.y:2747 +#: parse.y:2759 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "unexpected EOF while looking for matching ‘%c’" -#: parse.y:3043 +#: parse.y:3071 msgid "unexpected EOF while looking for `]]'" msgstr "unexpected EOF while looking for ‘]]’" -#: parse.y:3048 +#: parse.y:3076 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error in conditional expression: unexpected token ‘%s’" -#: parse.y:3052 +#: parse.y:3080 msgid "syntax error in conditional expression" msgstr "syntax error in conditional expression" -#: parse.y:3130 +#: parse.y:3158 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "unexpected token ‘%s’, expected ‘)’" -#: parse.y:3134 +#: parse.y:3162 msgid "expected `)'" msgstr "expected ‘)’" -#: parse.y:3162 +#: parse.y:3190 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "unexpected argument ‘%s’ to conditional unary operator" -#: parse.y:3166 +#: parse.y:3194 msgid "unexpected argument to conditional unary operator" msgstr "unexpected argument to conditional unary operator" -#: parse.y:3203 +#: parse.y:3234 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "unexpected token ‘%s’, conditional binary operator expected" -#: parse.y:3207 +#: parse.y:3238 msgid "conditional binary operator expected" msgstr "conditional binary operator expected" -#: parse.y:3223 +#: parse.y:3255 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "unexpected argument ‘%s’ to conditional binary operator" -#: parse.y:3227 +#: parse.y:3259 msgid "unexpected argument to conditional binary operator" msgstr "unexpected argument to conditional binary operator" -#: parse.y:3238 +#: parse.y:3270 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "unexpected token ‘%c’ in conditional command" -#: parse.y:3241 +#: parse.y:3273 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "unexpected token ‘%s’ in conditional command" -#: parse.y:3245 +#: parse.y:3277 #, c-format msgid "unexpected token %d in conditional command" msgstr "unexpected token %d in conditional command" -#: parse.y:4461 +#: parse.y:4523 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntax error near unexpected token ‘%s’" -#: parse.y:4479 +#: parse.y:4541 #, c-format msgid "syntax error near `%s'" msgstr "syntax error near ‘%s’" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error: unexpected end of file" msgstr "syntax error: unexpected end of file" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error" msgstr "syntax error" -#: parse.y:4551 +#: parse.y:4613 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use “%s” to leave the shell.\n" -#: parse.y:4710 +#: parse.y:4775 msgid "unexpected EOF while looking for matching `)'" msgstr "unexpected EOF while looking for matching ‘)’" -#: pcomplete.c:1001 +#: pcomplete.c:1002 #, c-format msgid "completion: function `%s' not found" msgstr "completion: function ‘%s’ not found" @@ -1248,7 +1258,7 @@ msgstr "cannot create temp file for here document: %s" msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port not supported without networking" -#: redir.c:956 +#: redir.c:965 msgid "redirection error: cannot duplicate fd" msgstr "redirection error: cannot duplicate fd" @@ -1260,16 +1270,16 @@ msgstr "could not find /tmp, please create!" msgid "/tmp must be a valid directory name" msgstr "/tmp must be a valid directory name" -#: shell.c:849 +#: shell.c:850 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: invalid option" -#: shell.c:1598 +#: shell.c:1600 msgid "I have no name!" msgstr "I have no name!" -#: shell.c:1733 +#: shell.c:1735 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1278,215 +1288,216 @@ msgstr "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" -#: shell.c:1735 +#: shell.c:1737 msgid "GNU long options:\n" msgstr "GNU long options:\n" -#: shell.c:1739 +#: shell.c:1741 msgid "Shell options:\n" msgstr "Shell options:\n" -#: shell.c:1740 +#: shell.c:1742 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -#: shell.c:1755 +#: shell.c:1757 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s or -o option\n" -#: shell.c:1761 +#: shell.c:1763 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" "Type ‘%s -c “help set”’ for more information about shell " "options.\n" -#: shell.c:1762 +#: shell.c:1764 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" "Type ‘%s -c help’ for more information about shell builtin commands.\n" -#: shell.c:1763 +#: shell.c:1765 msgid "Use the `bashbug' command to report bugs.\n" msgstr "Use the ‘bashbug’ command to report bugs.\n" -#: sig.c:494 +#: sig.c:557 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: invalid operation" -#: subst.c:1123 +#: subst.c:1160 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "bad substitution: no closing ‘%s’ in %s" -#: subst.c:2269 +#: subst.c:2328 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: cannot assign list to array member" -#: subst.c:4208 subst.c:4224 +#: subst.c:4265 subst.c:4281 msgid "cannot make pipe for process substitution" msgstr "cannot make pipe for process substitution" -#: subst.c:4255 +#: subst.c:4312 msgid "cannot make child for process substitution" msgstr "cannot make child for process substitution" -#: subst.c:4300 +#: subst.c:4357 #, c-format msgid "cannot open named pipe %s for reading" msgstr "cannot open named pipe %s for reading" -#: subst.c:4302 +#: subst.c:4359 #, c-format msgid "cannot open named pipe %s for writing" msgstr "cannot open named pipe %s for writing" -#: subst.c:4310 +#: subst.c:4367 #, c-format msgid "cannout reset nodelay mode for fd %d" msgstr "cannout reset nodelay mode for fd %d" -#: subst.c:4320 +#: subst.c:4377 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "cannot duplicate named pipe %s as fd %d" -#: subst.c:4495 +#: subst.c:4552 msgid "cannot make pipe for command substitution" msgstr "cannot make pipe for command substitution" -#: subst.c:4531 +#: subst.c:4588 msgid "cannot make child for command substitution" msgstr "cannot make child for command substitution" -#: subst.c:4548 +#: subst.c:4605 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: cannot duplicate pipe as fd 1" -#: subst.c:5013 +#: subst.c:5068 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter null or not set" -#: subst.c:5287 +#: subst.c:5342 #, c-format msgid "%s: substring expression < 0" msgstr "%s: substring expression < 0" -#: subst.c:6058 +#: subst.c:6179 #, c-format msgid "%s: bad substitution" msgstr "%s: bad substitution" -#: subst.c:6134 +#: subst.c:6255 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: cannot assign in this way" -#: subst.c:7687 +#: subst.c:7826 #, c-format msgid "no match: %s" msgstr "no match: %s" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "argument expected" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "%s: integer expression expected" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "‘)’ expected" -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "‘)’ expected, found %s" -#: test.c:378 test.c:787 test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "%s: unary operator expected" -#: test.c:543 test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "%s: binary operator expected" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "missing ‘]’" -#: trap.c:194 +#: trap.c:200 msgid "invalid signal number" msgstr "invalid signal number" -#: trap.c:309 +#: trap.c:315 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: bad value in trap_list[%d]: %p" -#: trap.c:313 +#: trap.c:319 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -#: trap.c:349 +#: trap.c:355 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: bad signal %d" -#: variables.c:320 +#: variables.c:334 #, c-format msgid "error importing function definition for `%s'" msgstr "error importing function definition for ‘%s’" -#: variables.c:692 +#: variables.c:711 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shell level (%d) too high, resetting to 1" -#: variables.c:1651 +#: variables.c:1670 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no function context at current scope" -#: variables.c:2807 +#: variables.c:2813 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no function context at current scope" -#: variables.c:3021 variables.c:3030 +#: variables.c:3030 variables.c:3039 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "invalid character %d in exportstr for %s" -#: variables.c:3036 +#: variables.c:3045 #, c-format msgid "no `=' in exportstr for %s" msgstr "no ‘=’ in exportstr for %s" -#: variables.c:3463 +#: variables.c:3472 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: head of shell_variables not a function context" -#: variables.c:3476 +#: variables.c:3485 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no global_variables context" -#: variables.c:3548 +#: variables.c:3557 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "pop_scope: head of shell_variables not a temporary environment scope" #: version.c:82 -msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +#, fuzzy +msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n" #: xmalloc.c:93 @@ -1530,8 +1541,9 @@ msgid "xrealloc: %s:%d: cannot allocate %lu bytes" msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" #: builtins.c:244 +#, fuzzy msgid "" -" `alias' with no arguments or with the -p option prints the list\n" +"`alias' with no arguments or with the -p option prints the list\n" " of aliases in the form alias NAME=VALUE on standard output.\n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" @@ -1546,16 +1558,18 @@ msgstr "" " true unless a NAME is given for which no alias has been defined." #: builtins.c:257 +#, fuzzy msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +"Remove NAMEs from the list of defined aliases. If the -a option is given,\n" " then remove all alias definitions." msgstr "" " Remove NAMEs from the list of defined aliases. If the -a option is given,\n" " then remove all alias definitions." #: builtins.c:266 +#, fuzzy msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" +"Bind a key sequence to a Readline function or a macro, or set\n" " a Readline variable. The non-option argument syntax is equivalent\n" " to that found in ~/.inputrc, but must be passed as a single argument:\n" " bind '\"\\C-x\\C-r\": re-read-init-file'.\n" @@ -1618,24 +1632,27 @@ msgstr "" " in a form that can be reused as input." #: builtins.c:297 +#, fuzzy msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +"Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" " break N levels." msgstr "" " Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" " break N levels." #: builtins.c:304 +#, fuzzy msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" " If N is specified, resume at the N-th enclosing loop." msgstr "" " Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" " If N is specified, resume at the N-th enclosing loop." #: builtins.c:311 +#, fuzzy msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" +"Run a shell builtin. This is useful when you wish to rename a\n" " shell builtin to be a function, but need the functionality of the\n" " builtin within the function itself." msgstr "" @@ -1644,12 +1661,13 @@ msgstr "" " builtin within the function itself." #: builtins.c:320 +#, fuzzy msgid "" -" Returns the context of the current subroutine call.\n" +"Returns the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" +" Without EXPR, returns \"$line $filename\". With EXPR,\n" " returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" can be used to provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" " current one; the top frame is frame 0." @@ -1664,8 +1682,9 @@ msgstr "" " current one; the top frame is frame 0." #: builtins.c:334 +#, fuzzy msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" +"Change the current directory to DIR. The variable $HOME is the\n" " default DIR. The variable CDPATH defines the search path for\n" " the directory containing DIR. Alternative directory names in CDPATH\n" " are separated by a colon (:). A null directory name is the same as\n" @@ -1693,8 +1712,9 @@ msgstr "" " to be followed." #: builtins.c:350 +#, fuzzy msgid "" -" Print the current working directory. With the -P option, pwd prints\n" +"Print the current working directory. With the -P option, pwd prints\n" " the physical directory, without any symbolic links; the -L option\n" " makes pwd follow symbolic links." msgstr "" @@ -1703,20 +1723,24 @@ msgstr "" " makes pwd follow symbolic links." #: builtins.c:358 -msgid " No effect; the command does nothing. A zero exit code is returned." +#, fuzzy +msgid "No effect; the command does nothing. A zero exit code is returned." msgstr " No effect; the command does nothing. A zero exit code is returned." #: builtins.c:364 -msgid " Return a successful result." +#, fuzzy +msgid "Return a successful result." msgstr " Return a successful result." #: builtins.c:370 -msgid " Return an unsuccessful result." +#, fuzzy +msgid "Return an unsuccessful result." msgstr " Return an unsuccessful result." #: builtins.c:376 +#, fuzzy msgid "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +"Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" " function called `ls', and you wish to call the command `ls', you can\n" " say \"command ls\". If the -p option is given, a default value is used\n" " for PATH that is guaranteed to find all of the standard utilities. If\n" @@ -1733,8 +1757,9 @@ msgstr "" " The -V option produces a more verbose description." #: builtins.c:387 +#, fuzzy msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" +"Declare variables and/or give them attributes. If no NAMEs are\n" " given, then display the values of variables instead. The -p option\n" " will display the attributes and values of each NAME.\n" " \n" @@ -1788,12 +1813,14 @@ msgstr "" " used in a function, makes NAMEs local, as with the ‘local’ command." #: builtins.c:416 -msgid " Obsolete. See `declare'." +#, fuzzy +msgid "Obsolete. See `declare'." msgstr " Obsolete. See ‘declare’." #: builtins.c:422 +#, fuzzy msgid "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" +"Create a local variable called NAME, and give it VALUE. LOCAL\n" " can only be used within a function; it makes the variable NAME\n" " have a visible scope restricted to that function and its children." msgstr "" @@ -1802,8 +1829,9 @@ msgstr "" " have a visible scope restricted to that function and its children." #: builtins.c:431 +#, fuzzy msgid "" -" Output the ARGs. If -n is specified, the trailing newline is\n" +"Output the ARGs. If -n is specified, the trailing newline is\n" " suppressed. If the -e option is given, interpretation of the\n" " following backslash-escaped characters is turned on:\n" " \t\\a\talert (bell)\n" @@ -1816,7 +1844,8 @@ msgid "" " \t\\t\thorizontal tab\n" " \t\\v\tvertical tab\n" " \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" +" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t\t0 to 3 octal digits\n" " \n" " You can explicitly turn off the interpretation of the above characters\n" " with the -E option." @@ -1839,15 +1868,17 @@ msgstr "" " You can explicitly turn off the interpretation of the above characters\n" " with the -E option." -#: builtins.c:455 +#: builtins.c:456 +#, fuzzy msgid "" -" Output the ARGs. If -n is specified, the trailing newline is suppressed." +"Output the ARGs. If -n is specified, the trailing newline is suppressed." msgstr "" " Output the ARGs. If -n is specified, the trailing newline is suppressed." -#: builtins.c:462 +#: builtins.c:463 +#, fuzzy msgid "" -" Enable and disable builtin shell commands. This allows\n" +"Enable and disable builtin shell commands. This allows\n" " you to use a disk command which has the same name as a shell\n" " builtin without specifying a full pathname. If -n is used, the\n" " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" @@ -1879,13 +1910,15 @@ msgstr "" " ‘special’ builtins. The -n option displays a list of all disabled " "builtins." -#: builtins.c:480 -msgid " Read ARGs as input to the shell and execute the resulting command(s)." +#: builtins.c:481 +#, fuzzy +msgid "Read ARGs as input to the shell and execute the resulting command(s)." msgstr " Read ARGs as input to the shell and execute the resulting command(s)." -#: builtins.c:486 +#: builtins.c:487 +#, fuzzy msgid "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Getopts is used by shell procedures to parse positional parameters.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1950,9 +1983,10 @@ msgstr "" " Getopts normally parses the positional parameters ($0 - $9), but if\n" " more arguments are given, they are parsed instead." -#: builtins.c:521 +#: builtins.c:522 +#, fuzzy msgid "" -" Exec FILE, replacing this shell with the specified program.\n" +"Exec FILE, replacing this shell with the specified program.\n" " If FILE is not specified, the redirections take effect in this\n" " shell. If the first argument is `-l', then place a dash in the\n" " zeroth arg passed to FILE, as login does. If the `-c' option\n" @@ -1970,21 +2004,24 @@ msgstr "" " If the file cannot be executed and the shell is not interactive,\n" " then the shell exits, unless the shell option ‘execfail’ is set." -#: builtins.c:534 +#: builtins.c:535 +#, fuzzy msgid "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" " Exit the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." -#: builtins.c:541 -msgid " Logout of a login shell." +#: builtins.c:542 +#, fuzzy +msgid "Logout of a login shell." msgstr " Logout of a login shell." -#: builtins.c:548 +#: builtins.c:549 +#, fuzzy msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"fc is used to list or edit and re-execute commands from the history list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" @@ -2028,9 +2065,10 @@ msgstr "" "executes\n" " the last command." -#: builtins.c:573 +#: builtins.c:574 +#, fuzzy msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" +"Place JOB_SPEC in the foreground, and make it the current job. If\n" " JOB_SPEC is not present, the shell's notion of the current job is\n" " used." msgstr "" @@ -2038,9 +2076,10 @@ msgstr "" " JOB_SPEC is not present, the shell's notion of the current job is\n" " used." -#: builtins.c:583 +#: builtins.c:584 +#, fuzzy msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" +"Place each JOB_SPEC in the background, as if it had been started with\n" " `&'. If JOB_SPEC is not present, the shell's notion of the current\n" " job is used." msgstr "" @@ -2049,9 +2088,10 @@ msgstr "" "current\n" " job is used." -#: builtins.c:592 +#: builtins.c:593 +#, fuzzy msgid "" -" For each NAME, the full pathname of the command is determined and\n" +"For each NAME, the full pathname of the command is determined and\n" " remembered. If the -p option is supplied, PATHNAME is used as the\n" " full pathname of NAME, and no path search is performed. The -r\n" " option causes the shell to forget all remembered locations. The -d\n" @@ -2075,9 +2115,10 @@ msgstr "" " If no arguments are given, information about remembered commands is " "displayed." -#: builtins.c:608 +#: builtins.c:609 +#, fuzzy msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display helpful information about builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" " otherwise a list of the builtins is printed. The -s option\n" " restricts the output for each builtin command matching PATTERN to\n" @@ -2089,9 +2130,10 @@ msgstr "" " restricts the output for each builtin command matching PATTERN to\n" " a short usage synopsis." -#: builtins.c:620 +#: builtins.c:621 +#, fuzzy msgid "" -" Display the history list with line numbers. Lines listed with\n" +"Display the history list with line numbers. Lines listed with\n" " with a `*' have been modified. Argument of N says to list only\n" " the last N lines. The `-c' option causes the history list to be\n" " cleared by deleting all of the entries. The `-d' option deletes\n" @@ -2137,9 +2179,10 @@ msgstr "" " as a format string for strftime(3) to print the time stamp associated\n" " with each displayed history entry. No time stamps are printed otherwise." -#: builtins.c:648 +#: builtins.c:649 +#, fuzzy msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" +"Lists the active jobs. The -l option lists process id's in addition\n" " to the normal information; the -p option lists process id's only.\n" " If -n is given, only processes that have changed status since the last\n" " notification are printed. JOBSPEC restricts output to that job. The\n" @@ -2161,9 +2204,10 @@ msgstr "" "job's\n" " process group leader." -#: builtins.c:664 +#: builtins.c:665 +#, fuzzy msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" +"By default, removes each JOBSPEC argument from the table of active jobs.\n" " If the -h option is given, the job is not removed from the table, but " "is\n" " marked so that SIGHUP is not sent to the job if the shell receives a\n" @@ -2179,9 +2223,10 @@ msgstr "" "all\n" " jobs from the job table; the -r option means to remove only running jobs." -#: builtins.c:675 +#: builtins.c:676 +#, fuzzy msgid "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" " SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" " lists the signal names; if arguments follow `-l' they are assumed to\n" " be signal numbers for which names should be listed. Kill is a shell\n" @@ -2199,9 +2244,10 @@ msgstr "" " process IDs, and, if you have reached the limit on processes that\n" " you can create, you don't have to start a process to kill another one." -#: builtins.c:687 +#: builtins.c:688 +#, fuzzy msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" " is done in fixed-width integers with no check for overflow, though\n" " division by 0 is trapped and flagged as an error. The following\n" " list of operators is grouped into levels of equal-precedence operators.\n" @@ -2279,10 +2325,10 @@ msgstr "" " If the last ARG evaluates to 0, let returns 1; 0 is returned\n" " otherwise." -#: builtins.c:730 +#: builtins.c:731 +#, fuzzy msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" +"One line is read from the standard input, or from file descriptor FD if the\n" " -u option is supplied, and the first word is assigned to the first " "NAME,\n" " the second word to the second NAME, and so on, with leftover words " @@ -2354,17 +2400,19 @@ msgstr "" "supplied as\n" " the argument to -u." -#: builtins.c:756 +#: builtins.c:757 +#, fuzzy msgid "" -" Causes a function to exit with the return value specified by N. If N\n" +"Causes a function to exit with the return value specified by N. If N\n" " is omitted, the return status is that of the last command." msgstr "" " Causes a function to exit with the return value specified by N. If N\n" " is omitted, the return status is that of the last command." -#: builtins.c:763 +#: builtins.c:764 +#, fuzzy msgid "" -" -a Mark variables which are modified or created for export.\n" +" -a Mark variables which are modified or created for export.\n" " -b Notify of job termination immediately.\n" " -e Exit immediately if a command exits with a non-zero status.\n" " -f Disable file name generation (globbing).\n" @@ -2514,9 +2562,10 @@ msgstr "" " parameters and are assigned, in order, to $1, $2, .. $n. If no\n" " ARGs are given, all shell variables are printed." -#: builtins.c:836 +#: builtins.c:837 +#, fuzzy msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" +"For each NAME, remove the corresponding variable or function. Given\n" " the `-v', unset will only act on variables. Given the `-f' flag,\n" " unset will only act on functions. With neither flag, unset first\n" " tries to unset a variable, and if that fails, then tries to unset a\n" @@ -2529,9 +2578,10 @@ msgstr "" " tries to unset a variable, and if that fails, then tries to unset a\n" " function. Some variables cannot be unset; also see readonly." -#: builtins.c:846 +#: builtins.c:847 +#, fuzzy msgid "" -" NAMEs are marked for automatic export to the environment of\n" +"NAMEs are marked for automatic export to the environment of\n" " subsequently executed commands. If the -f option is given,\n" " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" " is given, a list of all names that are exported in this shell is\n" @@ -2548,9 +2598,10 @@ msgstr "" "option\n" " processing." -#: builtins.c:858 +#: builtins.c:859 +#, fuzzy msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" +"The given NAMEs are marked readonly and the values of these NAMEs may\n" " not be changed by subsequent assignment. If the -f option is given,\n" " then functions corresponding to the NAMEs are so marked. If no\n" " arguments are given, or if `-p' is given, a list of all readonly names\n" @@ -2567,17 +2618,19 @@ msgstr "" " an array variable. An argument of ‘--’ disables further option\n" " processing." -#: builtins.c:870 +#: builtins.c:871 +#, fuzzy msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" " not given, it is assumed to be 1." msgstr "" " The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" " not given, it is assumed to be 1." -#: builtins.c:877 builtins.c:886 +#: builtins.c:878 builtins.c:887 +#, fuzzy msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" +"Read and execute commands from FILENAME and return. The pathnames\n" " in $PATH are used to find the directory containing FILENAME. If any\n" " ARGUMENTS are supplied, they become the positional parameters when\n" " FILENAME is executed." @@ -2587,9 +2640,10 @@ msgstr "" " ARGUMENTS are supplied, they become the positional parameters when\n" " FILENAME is executed." -#: builtins.c:896 +#: builtins.c:897 +#, fuzzy msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" +"Suspend the execution of this shell until it receives a SIGCONT\n" " signal. The `-f' if specified says not to complain about this\n" " being a login shell if it is; just suspend anyway." msgstr "" @@ -2597,9 +2651,10 @@ msgstr "" " signal. The ‘-f’ if specified says not to complain about this\n" " being a login shell if it is; just suspend anyway." -#: builtins.c:905 +#: builtins.c:906 +#, fuzzy msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" @@ -2737,25 +2792,28 @@ msgstr "" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" " than ARG2." -#: builtins.c:975 +#: builtins.c:976 +#, fuzzy msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" +"This is a synonym for the \"test\" builtin, but the last\n" " argument must be a literal `]', to match the opening `['." msgstr "" " This is a synonym for the “test” builtin, but the last\n" " argument must be a literal ‘]’, to match the opening ‘[’." -#: builtins.c:982 +#: builtins.c:983 +#, fuzzy msgid "" -" Print the accumulated user and system times for processes run from\n" +"Print the accumulated user and system times for processes run from\n" " the shell." msgstr "" " Print the accumulated user and system times for processes run from\n" " the shell." -#: builtins.c:989 +#: builtins.c:990 +#, fuzzy msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"The command ARG is to be read and executed when the shell receives\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" @@ -2792,9 +2850,10 @@ msgstr "" " a list of signal names and their corresponding numbers. Note that a\n" " signal can be sent to the shell with “kill -signal $$”." -#: builtins.c:1008 +#: builtins.c:1009 +#, fuzzy msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" +"For each NAME, indicate how it would be interpreted if used as a\n" " command name.\n" " \n" " If the -t option is used, `type' outputs a single word which is one of\n" @@ -2843,9 +2902,10 @@ msgstr "" " builtin, or function, and returns the name of the disk file that would\n" " be executed." -#: builtins.c:1035 +#: builtins.c:1036 +#, fuzzy msgid "" -" Ulimit provides control over the resources available to processes\n" +"Ulimit provides control over the resources available to processes\n" " started by the shell, on systems that allow such control. If an\n" " option is given, it is interpreted as follows:\n" " \n" @@ -2854,18 +2914,20 @@ msgid "" " -a\tall current limits are reported\n" " -c\tthe maximum size of core files created\n" " -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" " -l\tthe maximum size a process may lock into memory\n" " -m\tthe maximum resident set size\n" " -n\tthe maximum number of open file descriptors\n" " -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" " -s\tthe maximum stack size\n" " -t\tthe maximum amount of cpu time in seconds\n" " -u\tthe maximum number of user processes\n" " -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" +" -x\tthe maximum number of file locks\n" " \n" " If LIMIT is given, it is the new value of the specified resource;\n" " the special LIMIT values `soft', `hard', and `unlimited' stand for\n" @@ -2910,9 +2972,10 @@ msgstr "" " increments of 512 bytes, and -u, which is an unscaled number of\n" " processes." -#: builtins.c:1071 +#: builtins.c:1074 +#, fuzzy msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" " `-S' is supplied, the current value of the mask is printed. The `-S'\n" " option makes the output symbolic; otherwise an octal number is output.\n" " If `-p' is supplied, and MODE is omitted, the output is in a form\n" @@ -2929,9 +2992,10 @@ msgstr "" " interpreted as an octal number, otherwise it is a symbolic mode string\n" " like that accepted by chmod(1)." -#: builtins.c:1084 +#: builtins.c:1087 +#, fuzzy msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N may be a process ID or a job\n" " specification; if a job spec is given, all processes in the job's\n" @@ -2943,9 +3007,10 @@ msgstr "" " specification; if a job spec is given, all processes in the job's\n" " pipeline are waited for." -#: builtins.c:1096 +#: builtins.c:1099 +#, fuzzy msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N is a process ID; if it is not given,\n" " all child processes of the shell are waited for." @@ -2955,9 +3020,10 @@ msgstr "" " and the return code is zero. N is a process ID; if it is not given,\n" " all child processes of the shell are waited for." -#: builtins.c:1106 +#: builtins.c:1109 +#, fuzzy msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +"The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" " the COMMANDS are executed." @@ -2968,9 +3034,10 @@ msgstr "" " assumed. For each element in WORDS, NAME is set to that element, and\n" " the COMMANDS are executed." -#: builtins.c:1115 +#: builtins.c:1118 +#, fuzzy msgid "" -" Equivalent to\n" +"Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" @@ -2988,9 +3055,10 @@ msgstr "" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" " omitted, it behaves as if it evaluates to 1." -#: builtins.c:1128 +#: builtins.c:1131 +#, fuzzy msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -3015,9 +3083,10 @@ msgstr "" " in the variable REPLY. COMMANDS are executed after each selection\n" " until a break command is executed." -#: builtins.c:1144 +#: builtins.c:1147 +#, fuzzy msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" " The return status is the return status of PIPELINE. The `-p' option\n" " prints the timing summary in a slightly different format. This uses\n" @@ -3030,17 +3099,19 @@ msgstr "" " prints the timing summary in a slightly different format. This uses\n" " the value of the TIMEFORMAT variable as the output format." -#: builtins.c:1154 +#: builtins.c:1157 +#, fuzzy msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" " `|' is used to separate multiple patterns." msgstr "" " Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" " ‘|’ is used to separate multiple patterns." -#: builtins.c:1161 +#: builtins.c:1164 +#, fuzzy msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" " `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -3065,25 +3136,28 @@ msgstr "" "zero\n" " if no condition tested true." -#: builtins.c:1173 +#: builtins.c:1176 +#, fuzzy msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `while' COMMANDS has an exit status of zero." msgstr "" " Expand and execute COMMANDS as long as the final command in the\n" " ‘while’ COMMANDS has an exit status of zero." -#: builtins.c:1180 +#: builtins.c:1183 +#, fuzzy msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `until' COMMANDS has an exit status which is not zero." msgstr "" " Expand and execute COMMANDS as long as the final command in the\n" " ‘until’ COMMANDS has an exit status which is not zero." -#: builtins.c:1187 +#: builtins.c:1190 +#, fuzzy msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" +"Create a simple command invoked by NAME which runs COMMANDS.\n" " Arguments on the command line along with NAME are passed to the\n" " function as $0 .. $n." msgstr "" @@ -3091,17 +3165,19 @@ msgstr "" " Arguments on the command line along with NAME are passed to the\n" " function as $0 .. $n." -#: builtins.c:1195 +#: builtins.c:1198 +#, fuzzy msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" +"Run a set of commands in a group. This is one way to redirect an\n" " entire set of commands." msgstr "" " Run a set of commands in a group. This is one way to redirect an\n" " entire set of commands." -#: builtins.c:1202 +#: builtins.c:1205 +#, fuzzy msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" @@ -3113,17 +3189,19 @@ msgstr "" " the background, as if the job specification had been supplied as an\n" " argument to ‘bg’." -#: builtins.c:1212 +#: builtins.c:1215 +#, fuzzy msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" +"The EXPRESSION is evaluated according to the rules for arithmetic\n" " evaluation. Equivalent to \"let EXPRESSION\"." msgstr "" " The EXPRESSION is evaluated according to the rules for arithmetic\n" " evaluation. Equivalent to “let EXPRESSION”." -#: builtins.c:1219 +#: builtins.c:1222 +#, fuzzy msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the `test' builtin, and may be combined using the following " @@ -3157,22 +3235,22 @@ msgstr "" " && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" " determine the expression's value." -#: builtins.c:1237 +#: builtins.c:1240 +#, fuzzy msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" +"BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" " \t\tfor directries given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -3181,19 +3259,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -3201,7 +3279,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -3259,9 +3337,10 @@ msgstr "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" -#: builtins.c:1292 +#: builtins.c:1295 +#, fuzzy msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" @@ -3301,9 +3380,10 @@ msgstr "" " \n" " You can see the directory stack with the ‘dirs’ command." -#: builtins.c:1318 +#: builtins.c:1321 +#, fuzzy msgid "" -" Removes entries from the directory stack. With no arguments,\n" +"Removes entries from the directory stack. With no arguments,\n" " removes the top directory from the stack, and cd's to the new\n" " top directory.\n" " \n" @@ -3339,9 +3419,10 @@ msgstr "" " \n" " You can see the directory stack with the ‘dirs’ command." -#: builtins.c:1341 +#: builtins.c:1344 +#, fuzzy msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" @@ -3381,9 +3462,10 @@ msgstr "" " -N\tdisplays the Nth entry counting from the right of the list shown by\n" " \tdirs when invoked without options, starting with zero." -#: builtins.c:1364 +#: builtins.c:1367 +#, fuzzy msgid "" -" Toggle the values of variables controlling optional behavior.\n" +"Toggle the values of variables controlling optional behavior.\n" " The -s flag means to enable (set) each OPTNAME; the -u flag\n" " unsets each OPTNAME. The -q flag suppresses output; the exit\n" " status indicates whether each OPTNAME is set or unset. The -o\n" @@ -3401,9 +3483,10 @@ msgstr "" " settable options is displayed, with an indication of whether or\n" " not each is set." -#: builtins.c:1377 +#: builtins.c:1380 +#, fuzzy msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" " is a character string which contains three types of objects: plain\n" " characters, which are simply copied to standard output, character " "escape\n" @@ -3431,9 +3514,10 @@ msgstr "" "the\n" " shell variable VAR rather than being sent to the standard output." -#: builtins.c:1393 +#: builtins.c:1396 +#, fuzzy msgid "" -" For each NAME, specify how arguments are to be completed.\n" +"For each NAME, specify how arguments are to be completed.\n" " If the -p option is supplied, or if no options are supplied, existing\n" " completion specifications are printed in a way that allows them to be\n" " reused as input. The -r option removes a completion specification for\n" @@ -3445,9 +3529,10 @@ msgstr "" " reused as input. The -r option removes a completion specification for\n" " each NAME, or, if no NAMEs are supplied, all completion specifications." -#: builtins.c:1405 +#: builtins.c:1408 +#, fuzzy msgid "" -" Display the possible completions depending on the options. Intended\n" +"Display the possible completions depending on the options. Intended\n" " to be used from within a shell function generating possible " "completions.\n" " If the optional WORD argument is supplied, matches against WORD are\n" diff --git a/po/en@quot.gmo b/po/en@quot.gmo index 9dc7c43eb..312af303f 100644 Binary files a/po/en@quot.gmo and b/po/en@quot.gmo differ diff --git a/po/en@quot.po b/po/en@quot.po index fd0407c1d..ff7bf33c1 100644 --- a/po/en@quot.po +++ b/po/en@quot.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU bash 3.1-beta1\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\n" +"POT-Creation-Date: 2006-10-23 17:20-0400\n" "PO-Revision-Date: 2005-10-03 17:31-0400\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -41,31 +41,31 @@ msgstr "" msgid "bad array subscript" msgstr "bad array subscript" -#: arrayfunc.c:360 +#: arrayfunc.c:362 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: cannot assign to non-numeric index" -#: bashhist.c:328 +#: bashhist.c:331 #, c-format msgid "%s: cannot create: %s" msgstr "%s: cannot create: %s" -#: bashline.c:2947 +#: bashline.c:3030 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: cannot find keymap for command" -#: bashline.c:2996 +#: bashline.c:3079 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: first non-whitespace character is not ‘\"’" -#: bashline.c:3025 +#: bashline.c:3108 #, c-format msgid "no closing `%c' in %s" msgstr "no closing ‘%c’ in %s" -#: bashline.c:3059 +#: bashline.c:3142 #, c-format msgid "%s: missing colon separator" msgstr "%s: missing colon separator" @@ -104,51 +104,51 @@ msgstr "%s can be invoked via " msgid "only meaningful in a `for', `while', or `until' loop" msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop" -#: builtins/caller.def:132 +#: builtins/caller.def:131 msgid "Returns the context of the current subroutine call." msgstr "Returns the context of the current subroutine call." -#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 -#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 -#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 -#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 -#: builtins/pushd.def:712 builtins/pushd.def:715 +#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 +#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 +#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 +#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 +#: builtins/pushd.def:718 builtins/pushd.def:721 msgid " " msgstr " " -#: builtins/caller.def:134 +#: builtins/caller.def:133 msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," msgstr "Without EXPR, returns returns “$line $filename”. With EXPR," -#: builtins/caller.def:135 +#: builtins/caller.def:134 msgid "returns \"$line $subroutine $filename\"; this extra information" msgstr "returns “$line $subroutine $filename”; this extra information" -#: builtins/caller.def:136 +#: builtins/caller.def:135 msgid "can be used used to provide a stack trace." msgstr "can be used used to provide a stack trace." -#: builtins/caller.def:138 +#: builtins/caller.def:137 msgid "The value of EXPR indicates how many call frames to go back before the" msgstr "The value of EXPR indicates how many call frames to go back before the" -#: builtins/caller.def:139 +#: builtins/caller.def:138 msgid "current one; the top frame is frame 0." msgstr "current one; the top frame is frame 0." -#: builtins/cd.def:203 +#: builtins/cd.def:204 msgid "HOME not set" msgstr "HOME not set" -#: builtins/cd.def:215 +#: builtins/cd.def:216 msgid "OLDPWD not set" msgstr "OLDPWD not set" -#: builtins/common.c:133 test.c:921 +#: builtins/common.c:133 test.c:822 msgid "too many arguments" msgstr "too many arguments" -#: builtins/common.c:157 shell.c:474 shell.c:747 +#: builtins/common.c:157 shell.c:474 shell.c:748 #, c-format msgid "%s: option requires an argument" msgstr "%s: option requires an argument" @@ -163,7 +163,7 @@ msgstr "%s: numeric argument required" msgid "%s: not found" msgstr "%s: not found" -#: builtins/common.c:180 shell.c:760 +#: builtins/common.c:180 shell.c:761 #, c-format msgid "%s: invalid option" msgstr "%s: invalid option" @@ -173,7 +173,7 @@ msgstr "%s: invalid option" msgid "%s: invalid option name" msgstr "%s: invalid option name" -#: builtins/common.c:194 general.c:231 general.c:236 +#: builtins/common.c:194 general.c:230 general.c:235 #, c-format msgid "`%s': not a valid identifier" msgstr "‘%s’: not a valid identifier" @@ -193,7 +193,7 @@ msgstr "%s: invalid signal specification" msgid "`%s': not a pid or valid job spec" msgstr "‘%s’: not a pid or valid job spec" -#: builtins/common.c:222 error.c:453 +#: builtins/common.c:222 error.c:451 #, c-format msgid "%s: readonly variable" msgstr "%s: readonly variable" @@ -245,12 +245,12 @@ msgstr "%s: not a shell builtin" msgid "write error: %s" msgstr "write error: %s" -#: builtins/common.c:484 +#: builtins/common.c:481 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "%s: error retrieving current directory: %s: %s\n" -#: builtins/common.c:550 builtins/common.c:552 +#: builtins/common.c:547 builtins/common.c:549 #, c-format msgid "%s: ambiguous job spec" msgstr "%s: ambiguous job spec" @@ -273,20 +273,20 @@ msgstr "warning: -F option may not work as you expect" msgid "warning: -C option may not work as you expect" msgstr "warning: -C option may not work as you expect" -#: builtins/declare.def:105 +#: builtins/declare.def:106 msgid "can only be used in a function" msgstr "can only be used in a function" -#: builtins/declare.def:301 +#: builtins/declare.def:306 msgid "cannot use `-f' to make functions" msgstr "cannot use ‘-f’ to make functions" -#: builtins/declare.def:313 execute_cmd.c:3986 +#: builtins/declare.def:318 execute_cmd.c:4073 #, c-format msgid "%s: readonly function" msgstr "%s: readonly function" -#: builtins/declare.def:401 +#: builtins/declare.def:406 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: cannot destroy array variables in this way" @@ -315,7 +315,7 @@ msgstr "%s: not dynamically loaded" msgid "%s: cannot delete: %s" msgstr "%s: cannot delete: %s" -#: builtins/evalfile.c:129 execute_cmd.c:3852 shell.c:1408 +#: builtins/evalfile.c:129 execute_cmd.c:3930 shell.c:1409 #, c-format msgid "%s: is a directory" msgstr "%s: is a directory" @@ -343,15 +343,15 @@ msgstr "not login shell: use ‘exit’" msgid "There are stopped jobs.\n" msgstr "There are stopped jobs.\n" -#: builtins/fc.def:259 +#: builtins/fc.def:258 msgid "no command found" msgstr "no command found" -#: builtins/fc.def:329 +#: builtins/fc.def:328 msgid "history specification" msgstr "history specification" -#: builtins/fc.def:350 +#: builtins/fc.def:349 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: cannot open temp file: %s" @@ -371,11 +371,11 @@ msgstr "%s: illegal option -- %c\n" msgid "%s: option requires an argument -- %c\n" msgstr "%s: option requires an argument -- %c\n" -#: builtins/hash.def:83 +#: builtins/hash.def:84 msgid "hashing disabled" msgstr "hashing disabled" -#: builtins/hash.def:128 +#: builtins/hash.def:130 #, c-format msgid "%s: hash table empty\n" msgstr "%s: hash table empty\n" @@ -444,200 +444,200 @@ msgstr "%s: arguments must be process or job IDs" msgid "Unknown error" msgstr "Unknown error" -#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 +#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 msgid "expression expected" msgstr "expression expected" -#: builtins/printf.def:327 +#: builtins/printf.def:339 #, c-format msgid "`%s': missing format character" msgstr "‘%s’: missing format character" -#: builtins/printf.def:502 +#: builtins/printf.def:516 #, c-format msgid "`%c': invalid format character" msgstr "‘%c’: invalid format character" -#: builtins/printf.def:708 +#: builtins/printf.def:722 msgid "missing hex digit for \\x" msgstr "missing hex digit for \\x" -#: builtins/pushd.def:173 +#: builtins/pushd.def:175 msgid "no other directory" msgstr "no other directory" -#: builtins/pushd.def:440 +#: builtins/pushd.def:442 msgid "" msgstr "" -#: builtins/pushd.def:657 +#: builtins/pushd.def:663 msgid "Display the list of currently remembered directories. Directories" msgstr "Display the list of currently remembered directories. Directories" -#: builtins/pushd.def:658 +#: builtins/pushd.def:664 msgid "find their way onto the list with the `pushd' command; you can get" msgstr "find their way onto the list with the ‘pushd’ command; you can get" -#: builtins/pushd.def:659 +#: builtins/pushd.def:665 msgid "back up through the list with the `popd' command." msgstr "back up through the list with the ‘popd’ command." -#: builtins/pushd.def:661 +#: builtins/pushd.def:667 msgid "The -l flag specifies that `dirs' should not print shorthand versions" msgstr "The -l flag specifies that ‘dirs’ should not print shorthand versions" -#: builtins/pushd.def:662 +#: builtins/pushd.def:668 msgid "of directories which are relative to your home directory. This means" msgstr "of directories which are relative to your home directory. This means" -#: builtins/pushd.def:663 +#: builtins/pushd.def:669 msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" msgstr "that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’. The -v flag" -#: builtins/pushd.def:664 +#: builtins/pushd.def:670 msgid "causes `dirs' to print the directory stack with one entry per line," msgstr "causes ‘dirs’ to print the directory stack with one entry per line," -#: builtins/pushd.def:665 +#: builtins/pushd.def:671 msgid "prepending the directory name with its position in the stack. The -p" msgstr "prepending the directory name with its position in the stack. The -p" -#: builtins/pushd.def:666 +#: builtins/pushd.def:672 msgid "flag does the same thing, but the stack position is not prepended." msgstr "flag does the same thing, but the stack position is not prepended." -#: builtins/pushd.def:667 +#: builtins/pushd.def:673 msgid "The -c flag clears the directory stack by deleting all of the elements." msgstr "" "The -c flag clears the directory stack by deleting all of the elements." -#: builtins/pushd.def:669 +#: builtins/pushd.def:675 msgid "+N displays the Nth entry counting from the left of the list shown by" msgstr "" "+N displays the Nth entry counting from the left of the list shown by" -#: builtins/pushd.def:670 builtins/pushd.def:673 +#: builtins/pushd.def:676 builtins/pushd.def:679 msgid " dirs when invoked without options, starting with zero." msgstr " dirs when invoked without options, starting with zero." -#: builtins/pushd.def:672 +#: builtins/pushd.def:678 msgid "" "-N displays the Nth entry counting from the right of the list shown by" msgstr "" "-N displays the Nth entry counting from the right of the list shown by" -#: builtins/pushd.def:678 +#: builtins/pushd.def:684 msgid "Adds a directory to the top of the directory stack, or rotates" msgstr "Adds a directory to the top of the directory stack, or rotates" -#: builtins/pushd.def:679 +#: builtins/pushd.def:685 msgid "the stack, making the new top of the stack the current working" msgstr "the stack, making the new top of the stack the current working" -#: builtins/pushd.def:680 +#: builtins/pushd.def:686 msgid "directory. With no arguments, exchanges the top two directories." msgstr "directory. With no arguments, exchanges the top two directories." -#: builtins/pushd.def:682 +#: builtins/pushd.def:688 msgid "+N Rotates the stack so that the Nth directory (counting" msgstr "+N Rotates the stack so that the Nth directory (counting" -#: builtins/pushd.def:683 +#: builtins/pushd.def:689 msgid " from the left of the list shown by `dirs', starting with" msgstr " from the left of the list shown by ‘dirs’, starting with" -#: builtins/pushd.def:684 builtins/pushd.def:688 +#: builtins/pushd.def:690 builtins/pushd.def:694 msgid " zero) is at the top." msgstr " zero) is at the top." -#: builtins/pushd.def:686 +#: builtins/pushd.def:692 msgid "-N Rotates the stack so that the Nth directory (counting" msgstr "-N Rotates the stack so that the Nth directory (counting" -#: builtins/pushd.def:687 +#: builtins/pushd.def:693 msgid " from the right of the list shown by `dirs', starting with" msgstr " from the right of the list shown by ‘dirs’, starting with" -#: builtins/pushd.def:690 +#: builtins/pushd.def:696 msgid "-n suppress the normal change of directory when adding directories" msgstr "-n suppress the normal change of directory when adding directories" -#: builtins/pushd.def:691 +#: builtins/pushd.def:697 msgid " to the stack, so only the stack is manipulated." msgstr " to the stack, so only the stack is manipulated." -#: builtins/pushd.def:693 +#: builtins/pushd.def:699 msgid "dir adds DIR to the directory stack at the top, making it the" msgstr "dir adds DIR to the directory stack at the top, making it the" -#: builtins/pushd.def:694 +#: builtins/pushd.def:700 msgid " new current working directory." msgstr " new current working directory." -#: builtins/pushd.def:696 builtins/pushd.def:716 +#: builtins/pushd.def:702 builtins/pushd.def:722 msgid "You can see the directory stack with the `dirs' command." msgstr "You can see the directory stack with the ‘dirs’ command." -#: builtins/pushd.def:701 +#: builtins/pushd.def:707 msgid "Removes entries from the directory stack. With no arguments," msgstr "Removes entries from the directory stack. With no arguments," -#: builtins/pushd.def:702 +#: builtins/pushd.def:708 msgid "removes the top directory from the stack, and cd's to the new" msgstr "removes the top directory from the stack, and cd's to the new" -#: builtins/pushd.def:703 +#: builtins/pushd.def:709 msgid "top directory." msgstr "top directory." -#: builtins/pushd.def:705 +#: builtins/pushd.def:711 msgid "+N removes the Nth entry counting from the left of the list" msgstr "+N removes the Nth entry counting from the left of the list" -#: builtins/pushd.def:706 +#: builtins/pushd.def:712 msgid " shown by `dirs', starting with zero. For example: `popd +0'" msgstr " shown by ‘dirs’, starting with zero. For example: ‘popd +0’" -#: builtins/pushd.def:707 +#: builtins/pushd.def:713 msgid " removes the first directory, `popd +1' the second." msgstr " removes the first directory, ‘popd +1’ the second." -#: builtins/pushd.def:709 +#: builtins/pushd.def:715 msgid "-N removes the Nth entry counting from the right of the list" msgstr "-N removes the Nth entry counting from the right of the list" -#: builtins/pushd.def:710 +#: builtins/pushd.def:716 msgid " shown by `dirs', starting with zero. For example: `popd -0'" msgstr " shown by ‘dirs’, starting with zero. For example: ‘popd -0’" -#: builtins/pushd.def:711 +#: builtins/pushd.def:717 msgid " removes the last directory, `popd -1' the next to last." msgstr " removes the last directory, ‘popd -1’ the next to last." -#: builtins/pushd.def:713 +#: builtins/pushd.def:719 msgid "-n suppress the normal change of directory when removing directories" msgstr "-n suppress the normal change of directory when removing directories" -#: builtins/pushd.def:714 +#: builtins/pushd.def:720 msgid " from the stack, so only the stack is manipulated." msgstr " from the stack, so only the stack is manipulated." -#: builtins/read.def:211 +#: builtins/read.def:210 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: invalid timeout specification" -#: builtins/read.def:234 +#: builtins/read.def:233 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: invalid file descriptor specification" -#: builtins/read.def:241 +#: builtins/read.def:240 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: invalid file descriptor: %s" -#: builtins/read.def:474 +#: builtins/read.def:478 #, c-format msgid "read error: %d: %s" msgstr "read error: %d: %s" @@ -646,21 +646,21 @@ msgstr "read error: %d: %s" msgid "can only `return' from a function or sourced script" msgstr "can only ‘return’ from a function or sourced script" -#: builtins/set.def:745 +#: builtins/set.def:744 msgid "cannot simultaneously unset a function and a variable" msgstr "cannot simultaneously unset a function and a variable" -#: builtins/set.def:782 +#: builtins/set.def:781 #, c-format msgid "%s: cannot unset" msgstr "%s: cannot unset" -#: builtins/set.def:789 +#: builtins/set.def:788 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: cannot unset: readonly %s" -#: builtins/set.def:800 +#: builtins/set.def:799 #, c-format msgid "%s: not an array variable" msgstr "%s: not an array variable" @@ -683,20 +683,20 @@ msgstr "cannot set and unset shell options simultaneously" msgid "%s: invalid shell option name" msgstr "%s: invalid shell option name" -#: builtins/source.def:117 +#: builtins/source.def:115 msgid "filename argument required" msgstr "filename argument required" -#: builtins/source.def:137 +#: builtins/source.def:135 #, c-format msgid "%s: file not found" msgstr "%s: file not found" -#: builtins/suspend.def:93 +#: builtins/suspend.def:95 msgid "cannot suspend" msgstr "cannot suspend" -#: builtins/suspend.def:103 +#: builtins/suspend.def:105 msgid "cannot suspend a login shell" msgstr "cannot suspend a login shell" @@ -730,22 +730,22 @@ msgstr "%s is %s\n" msgid "%s is hashed (%s)\n" msgstr "%s is hashed (%s)\n" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:352 #, c-format msgid "%s: invalid limit argument" msgstr "%s: invalid limit argument" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:378 #, c-format msgid "`%c': bad command" msgstr "‘%c’: bad command" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:407 #, c-format msgid "%s: cannot get limit: %s" msgstr "%s: cannot get limit: %s" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:445 #, c-format msgid "%s: cannot modify limit: %s" msgstr "%s: cannot modify limit: %s" @@ -764,37 +764,37 @@ msgstr "‘%c’: invalid symbolic mode operator" msgid "`%c': invalid symbolic mode character" msgstr "‘%c’: invalid symbolic mode character" -#: error.c:165 +#: error.c:163 #, c-format msgid "last command: %s\n" msgstr "last command: %s\n" -#: error.c:173 +#: error.c:171 msgid "Aborting..." msgstr "Aborting..." -#: error.c:260 +#: error.c:258 #, c-format msgid "%s: warning: " msgstr "%s: warning: " -#: error.c:405 +#: error.c:403 msgid "unknown command error" msgstr "unknown command error" -#: error.c:406 +#: error.c:404 msgid "bad command type" msgstr "bad command type" -#: error.c:407 +#: error.c:405 msgid "bad connector" msgstr "bad connector" -#: error.c:408 +#: error.c:406 msgid "bad jump" msgstr "bad jump" -#: error.c:446 +#: error.c:444 #, c-format msgid "%s: unbound variable" msgstr "%s: unbound variable" @@ -803,147 +803,157 @@ msgstr "%s: unbound variable" msgid "timed out waiting for input: auto-logout\n" msgstr "timed out waiting for input: auto-logout\n" -#: execute_cmd.c:471 +#: execute_cmd.c:474 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "cannot redirect standard input from /dev/null: %s" -#: execute_cmd.c:1036 +#: execute_cmd.c:1058 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: ‘%c’: invalid format character" -#: execute_cmd.c:3551 +#: execute_cmd.c:3629 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restricted: cannot specify ‘/’ in command names" -#: execute_cmd.c:3639 +#: execute_cmd.c:3717 #, c-format msgid "%s: command not found" msgstr "%s: command not found" -#: execute_cmd.c:3876 +#: execute_cmd.c:3963 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: bad interpreter" -#: execute_cmd.c:3913 +#: execute_cmd.c:4000 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: cannot execute binary file" -#: execute_cmd.c:4025 +#: execute_cmd.c:4112 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "cannot duplicate fd %d to fd %d" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "expression recursion level exceeded" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "recursion stack underflow" -#: expr.c:375 +#: expr.c:376 msgid "syntax error in expression" msgstr "syntax error in expression" -#: expr.c:415 +#: expr.c:416 msgid "attempted assignment to non-variable" msgstr "attempted assignment to non-variable" -#: expr.c:436 expr.c:441 expr.c:751 +#: expr.c:437 expr.c:442 expr.c:752 msgid "division by 0" msgstr "division by 0" -#: expr.c:467 +#: expr.c:468 msgid "bug: bad expassign token" msgstr "bug: bad expassign token" -#: expr.c:509 +#: expr.c:510 msgid "`:' expected for conditional expression" msgstr "‘:’ expected for conditional expression" -#: expr.c:776 +#: expr.c:777 msgid "exponent less than 0" msgstr "exponent less than 0" -#: expr.c:821 +#: expr.c:822 msgid "identifier expected after pre-increment or pre-decrement" msgstr "identifier expected after pre-increment or pre-decrement" -#: expr.c:849 +#: expr.c:850 msgid "missing `)'" msgstr "missing ‘)’" -#: expr.c:892 +#: expr.c:893 expr.c:1171 msgid "syntax error: operand expected" msgstr "syntax error: operand expected" -#: expr.c:1178 +#: expr.c:1173 +#, fuzzy +msgid "syntax error: invalid arithmetic operator" +msgstr "syntax error: arithmetic expression required" + +#: expr.c:1251 msgid "invalid number" msgstr "invalid number" -#: expr.c:1182 +#: expr.c:1255 msgid "invalid arithmetic base" msgstr "invalid arithmetic base" -#: expr.c:1202 +#: expr.c:1275 msgid "value too great for base" msgstr "value too great for base" -#: general.c:62 +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "getcwd: cannot access parent directories" -#: input.c:231 +#: input.c:237 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" msgstr "cannot allocate new file descriptor for bash input from fd %d" -#: input.c:239 +#: input.c:245 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "save_bash_input: buffer already exists for new fd %d" -#: jobs.c:923 +#: jobs.c:876 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:983 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "deleting stopped job %d with process group %ld" -#: jobs.c:1308 +#: jobs.c:1378 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "describe_pid: %ld: no such pid" -#: jobs.c:1981 nojobs.c:648 +#: jobs.c:2061 nojobs.c:575 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: pid %ld is not a child of this shell" -#: jobs.c:2180 +#: jobs.c:2265 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: No record of process %ld" -#: jobs.c:2435 +#: jobs.c:2524 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: job %d is stopped" -#: jobs.c:2657 +#: jobs.c:2746 #, c-format msgid "%s: job has terminated" msgstr "%s: job has terminated" -#: jobs.c:2666 +#: jobs.c:2755 #, c-format msgid "%s: job %d already in background" msgstr "%s: job %d already in background" -#: jobs.c:3452 +#: jobs.c:3546 msgid "no job control in this shell" msgstr "no job control in this shell" @@ -961,48 +971,48 @@ msgstr "" "\r\n" "malloc: %s:%d: assertion botched\r\n" -#: lib/malloc/malloc.c:740 +#: lib/malloc/malloc.c:799 msgid "malloc: block on free list clobbered" msgstr "malloc: block on free list clobbered" -#: lib/malloc/malloc.c:817 +#: lib/malloc/malloc.c:876 msgid "free: called with already freed block argument" msgstr "free: called with already freed block argument" -#: lib/malloc/malloc.c:820 +#: lib/malloc/malloc.c:879 msgid "free: called with unallocated block argument" msgstr "free: called with unallocated block argument" -#: lib/malloc/malloc.c:839 +#: lib/malloc/malloc.c:898 msgid "free: underflow detected; mh_nbytes out of range" msgstr "free: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:845 +#: lib/malloc/malloc.c:904 msgid "free: start and end chunk sizes differ" msgstr "free: start and end chunk sizes differ" -#: lib/malloc/malloc.c:942 +#: lib/malloc/malloc.c:1003 msgid "realloc: called with unallocated block argument" msgstr "realloc: called with unallocated block argument" -#: lib/malloc/malloc.c:957 +#: lib/malloc/malloc.c:1018 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "realloc: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:963 +#: lib/malloc/malloc.c:1024 msgid "realloc: start and end chunk sizes differ" msgstr "realloc: start and end chunk sizes differ" -#: lib/malloc/table.c:175 +#: lib/malloc/table.c:176 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" msgstr "register_alloc: alloc table is full with FIND_ALLOC?\n" -#: lib/malloc/table.c:182 +#: lib/malloc/table.c:183 #, c-format msgid "register_alloc: %p already in table as allocated?\n" msgstr "register_alloc: %p already in table as allocated?\n" -#: lib/malloc/table.c:218 +#: lib/malloc/table.c:219 #, c-format msgid "register_free: %p already in table as free?\n" msgstr "register_free: %p already in table as free?\n" @@ -1036,22 +1046,22 @@ msgstr "malloc: watch alert: %p %s " msgid "invalid base" msgstr "invalid base" -#: lib/sh/netopen.c:158 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "%s: host unknown" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "%s: invalid service" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "%s: bad network path specification" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "network operations not supported" @@ -1086,108 +1096,108 @@ msgstr "syntax error: ‘((%s))’" msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: bad instruction type %d" -#: make_cmd.c:736 +#: make_cmd.c:741 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: redirection instruction ‘%d’ out of range" -#: parse.y:2747 +#: parse.y:2759 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "unexpected EOF while looking for matching ‘%c’" -#: parse.y:3043 +#: parse.y:3071 msgid "unexpected EOF while looking for `]]'" msgstr "unexpected EOF while looking for ‘]]’" -#: parse.y:3048 +#: parse.y:3076 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error in conditional expression: unexpected token ‘%s’" -#: parse.y:3052 +#: parse.y:3080 msgid "syntax error in conditional expression" msgstr "syntax error in conditional expression" -#: parse.y:3130 +#: parse.y:3158 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "unexpected token ‘%s’, expected ‘)’" -#: parse.y:3134 +#: parse.y:3162 msgid "expected `)'" msgstr "expected ‘)’" -#: parse.y:3162 +#: parse.y:3190 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "unexpected argument ‘%s’ to conditional unary operator" -#: parse.y:3166 +#: parse.y:3194 msgid "unexpected argument to conditional unary operator" msgstr "unexpected argument to conditional unary operator" -#: parse.y:3203 +#: parse.y:3234 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "unexpected token ‘%s’, conditional binary operator expected" -#: parse.y:3207 +#: parse.y:3238 msgid "conditional binary operator expected" msgstr "conditional binary operator expected" -#: parse.y:3223 +#: parse.y:3255 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "unexpected argument ‘%s’ to conditional binary operator" -#: parse.y:3227 +#: parse.y:3259 msgid "unexpected argument to conditional binary operator" msgstr "unexpected argument to conditional binary operator" -#: parse.y:3238 +#: parse.y:3270 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "unexpected token ‘%c’ in conditional command" -#: parse.y:3241 +#: parse.y:3273 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "unexpected token ‘%s’ in conditional command" -#: parse.y:3245 +#: parse.y:3277 #, c-format msgid "unexpected token %d in conditional command" msgstr "unexpected token %d in conditional command" -#: parse.y:4461 +#: parse.y:4523 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntax error near unexpected token ‘%s’" -#: parse.y:4479 +#: parse.y:4541 #, c-format msgid "syntax error near `%s'" msgstr "syntax error near ‘%s’" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error: unexpected end of file" msgstr "syntax error: unexpected end of file" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error" msgstr "syntax error" -#: parse.y:4551 +#: parse.y:4613 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use “%s” to leave the shell.\n" -#: parse.y:4710 +#: parse.y:4775 msgid "unexpected EOF while looking for matching `)'" msgstr "unexpected EOF while looking for matching ‘)’" -#: pcomplete.c:1001 +#: pcomplete.c:1002 #, c-format msgid "completion: function `%s' not found" msgstr "completion: function ‘%s’ not found" @@ -1235,7 +1245,7 @@ msgstr "cannot create temp file for here document: %s" msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port not supported without networking" -#: redir.c:956 +#: redir.c:965 msgid "redirection error: cannot duplicate fd" msgstr "redirection error: cannot duplicate fd" @@ -1247,16 +1257,16 @@ msgstr "could not find /tmp, please create!" msgid "/tmp must be a valid directory name" msgstr "/tmp must be a valid directory name" -#: shell.c:849 +#: shell.c:850 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: invalid option" -#: shell.c:1598 +#: shell.c:1600 msgid "I have no name!" msgstr "I have no name!" -#: shell.c:1733 +#: shell.c:1735 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1265,212 +1275,213 @@ msgstr "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" -#: shell.c:1735 +#: shell.c:1737 msgid "GNU long options:\n" msgstr "GNU long options:\n" -#: shell.c:1739 +#: shell.c:1741 msgid "Shell options:\n" msgstr "Shell options:\n" -#: shell.c:1740 +#: shell.c:1742 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" -#: shell.c:1755 +#: shell.c:1757 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s or -o option\n" -#: shell.c:1761 +#: shell.c:1763 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "Type ‘%s -c “help set”’ for more information about shell options.\n" -#: shell.c:1762 +#: shell.c:1764 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "Type ‘%s -c help’ for more information about shell builtin commands.\n" -#: shell.c:1763 +#: shell.c:1765 msgid "Use the `bashbug' command to report bugs.\n" msgstr "Use the ‘bashbug’ command to report bugs.\n" -#: sig.c:494 +#: sig.c:557 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: invalid operation" -#: subst.c:1123 +#: subst.c:1160 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "bad substitution: no closing ‘%s’ in %s" -#: subst.c:2269 +#: subst.c:2328 #, c-format msgid "%s: cannot assign list to array member" msgstr "%s: cannot assign list to array member" -#: subst.c:4208 subst.c:4224 +#: subst.c:4265 subst.c:4281 msgid "cannot make pipe for process substitution" msgstr "cannot make pipe for process substitution" -#: subst.c:4255 +#: subst.c:4312 msgid "cannot make child for process substitution" msgstr "cannot make child for process substitution" -#: subst.c:4300 +#: subst.c:4357 #, c-format msgid "cannot open named pipe %s for reading" msgstr "cannot open named pipe %s for reading" -#: subst.c:4302 +#: subst.c:4359 #, c-format msgid "cannot open named pipe %s for writing" msgstr "cannot open named pipe %s for writing" -#: subst.c:4310 +#: subst.c:4367 #, c-format msgid "cannout reset nodelay mode for fd %d" msgstr "cannout reset nodelay mode for fd %d" -#: subst.c:4320 +#: subst.c:4377 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "cannot duplicate named pipe %s as fd %d" -#: subst.c:4495 +#: subst.c:4552 msgid "cannot make pipe for command substitution" msgstr "cannot make pipe for command substitution" -#: subst.c:4531 +#: subst.c:4588 msgid "cannot make child for command substitution" msgstr "cannot make child for command substitution" -#: subst.c:4548 +#: subst.c:4605 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: cannot duplicate pipe as fd 1" -#: subst.c:5013 +#: subst.c:5068 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter null or not set" -#: subst.c:5287 +#: subst.c:5342 #, c-format msgid "%s: substring expression < 0" msgstr "%s: substring expression < 0" -#: subst.c:6058 +#: subst.c:6179 #, c-format msgid "%s: bad substitution" msgstr "%s: bad substitution" -#: subst.c:6134 +#: subst.c:6255 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: cannot assign in this way" -#: subst.c:7687 +#: subst.c:7826 #, c-format msgid "no match: %s" msgstr "no match: %s" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "argument expected" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "%s: integer expression expected" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "‘)’ expected" -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "‘)’ expected, found %s" -#: test.c:378 test.c:787 test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "%s: unary operator expected" -#: test.c:543 test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "%s: binary operator expected" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "missing ‘]’" -#: trap.c:194 +#: trap.c:200 msgid "invalid signal number" msgstr "invalid signal number" -#: trap.c:309 +#: trap.c:315 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "run_pending_traps: bad value in trap_list[%d]: %p" -#: trap.c:313 +#: trap.c:319 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" -#: trap.c:349 +#: trap.c:355 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: bad signal %d" -#: variables.c:320 +#: variables.c:334 #, c-format msgid "error importing function definition for `%s'" msgstr "error importing function definition for ‘%s’" -#: variables.c:692 +#: variables.c:711 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shell level (%d) too high, resetting to 1" -#: variables.c:1651 +#: variables.c:1670 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no function context at current scope" -#: variables.c:2807 +#: variables.c:2813 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no function context at current scope" -#: variables.c:3021 variables.c:3030 +#: variables.c:3030 variables.c:3039 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "invalid character %d in exportstr for %s" -#: variables.c:3036 +#: variables.c:3045 #, c-format msgid "no `=' in exportstr for %s" msgstr "no ‘=’ in exportstr for %s" -#: variables.c:3463 +#: variables.c:3472 msgid "pop_var_context: head of shell_variables not a function context" msgstr "pop_var_context: head of shell_variables not a function context" -#: variables.c:3476 +#: variables.c:3485 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no global_variables context" -#: variables.c:3548 +#: variables.c:3557 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "pop_scope: head of shell_variables not a temporary environment scope" #: version.c:82 -msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +#, fuzzy +msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n" #: xmalloc.c:93 @@ -1514,8 +1525,9 @@ msgid "xrealloc: %s:%d: cannot allocate %lu bytes" msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" #: builtins.c:244 +#, fuzzy msgid "" -" `alias' with no arguments or with the -p option prints the list\n" +"`alias' with no arguments or with the -p option prints the list\n" " of aliases in the form alias NAME=VALUE on standard output.\n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" @@ -1530,16 +1542,18 @@ msgstr "" " true unless a NAME is given for which no alias has been defined." #: builtins.c:257 +#, fuzzy msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +"Remove NAMEs from the list of defined aliases. If the -a option is given,\n" " then remove all alias definitions." msgstr "" " Remove NAMEs from the list of defined aliases. If the -a option is given,\n" " then remove all alias definitions." #: builtins.c:266 +#, fuzzy msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" +"Bind a key sequence to a Readline function or a macro, or set\n" " a Readline variable. The non-option argument syntax is equivalent\n" " to that found in ~/.inputrc, but must be passed as a single argument:\n" " bind '\"\\C-x\\C-r\": re-read-init-file'.\n" @@ -1602,24 +1616,27 @@ msgstr "" " in a form that can be reused as input." #: builtins.c:297 +#, fuzzy msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +"Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" " break N levels." msgstr "" " Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" " break N levels." #: builtins.c:304 +#, fuzzy msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" " If N is specified, resume at the N-th enclosing loop." msgstr "" " Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" " If N is specified, resume at the N-th enclosing loop." #: builtins.c:311 +#, fuzzy msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" +"Run a shell builtin. This is useful when you wish to rename a\n" " shell builtin to be a function, but need the functionality of the\n" " builtin within the function itself." msgstr "" @@ -1628,12 +1645,13 @@ msgstr "" " builtin within the function itself." #: builtins.c:320 +#, fuzzy msgid "" -" Returns the context of the current subroutine call.\n" +"Returns the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" +" Without EXPR, returns \"$line $filename\". With EXPR,\n" " returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" can be used to provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" " current one; the top frame is frame 0." @@ -1648,8 +1666,9 @@ msgstr "" " current one; the top frame is frame 0." #: builtins.c:334 +#, fuzzy msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" +"Change the current directory to DIR. The variable $HOME is the\n" " default DIR. The variable CDPATH defines the search path for\n" " the directory containing DIR. Alternative directory names in CDPATH\n" " are separated by a colon (:). A null directory name is the same as\n" @@ -1676,8 +1695,9 @@ msgstr "" " to be followed." #: builtins.c:350 +#, fuzzy msgid "" -" Print the current working directory. With the -P option, pwd prints\n" +"Print the current working directory. With the -P option, pwd prints\n" " the physical directory, without any symbolic links; the -L option\n" " makes pwd follow symbolic links." msgstr "" @@ -1686,20 +1706,24 @@ msgstr "" " makes pwd follow symbolic links." #: builtins.c:358 -msgid " No effect; the command does nothing. A zero exit code is returned." +#, fuzzy +msgid "No effect; the command does nothing. A zero exit code is returned." msgstr " No effect; the command does nothing. A zero exit code is returned." #: builtins.c:364 -msgid " Return a successful result." +#, fuzzy +msgid "Return a successful result." msgstr " Return a successful result." #: builtins.c:370 -msgid " Return an unsuccessful result." +#, fuzzy +msgid "Return an unsuccessful result." msgstr " Return an unsuccessful result." #: builtins.c:376 +#, fuzzy msgid "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +"Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" " function called `ls', and you wish to call the command `ls', you can\n" " say \"command ls\". If the -p option is given, a default value is used\n" " for PATH that is guaranteed to find all of the standard utilities. If\n" @@ -1714,8 +1738,9 @@ msgstr "" " The -V option produces a more verbose description." #: builtins.c:387 +#, fuzzy msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" +"Declare variables and/or give them attributes. If no NAMEs are\n" " given, then display the values of variables instead. The -p option\n" " will display the attributes and values of each NAME.\n" " \n" @@ -1768,12 +1793,14 @@ msgstr "" " used in a function, makes NAMEs local, as with the ‘local’ command." #: builtins.c:416 -msgid " Obsolete. See `declare'." +#, fuzzy +msgid "Obsolete. See `declare'." msgstr " Obsolete. See ‘declare’." #: builtins.c:422 +#, fuzzy msgid "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" +"Create a local variable called NAME, and give it VALUE. LOCAL\n" " can only be used within a function; it makes the variable NAME\n" " have a visible scope restricted to that function and its children." msgstr "" @@ -1782,8 +1809,9 @@ msgstr "" " have a visible scope restricted to that function and its children." #: builtins.c:431 +#, fuzzy msgid "" -" Output the ARGs. If -n is specified, the trailing newline is\n" +"Output the ARGs. If -n is specified, the trailing newline is\n" " suppressed. If the -e option is given, interpretation of the\n" " following backslash-escaped characters is turned on:\n" " \t\\a\talert (bell)\n" @@ -1796,7 +1824,8 @@ msgid "" " \t\\t\thorizontal tab\n" " \t\\v\tvertical tab\n" " \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" +" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t\t0 to 3 octal digits\n" " \n" " You can explicitly turn off the interpretation of the above characters\n" " with the -E option." @@ -1819,15 +1848,17 @@ msgstr "" " You can explicitly turn off the interpretation of the above characters\n" " with the -E option." -#: builtins.c:455 +#: builtins.c:456 +#, fuzzy msgid "" -" Output the ARGs. If -n is specified, the trailing newline is suppressed." +"Output the ARGs. If -n is specified, the trailing newline is suppressed." msgstr "" " Output the ARGs. If -n is specified, the trailing newline is suppressed." -#: builtins.c:462 +#: builtins.c:463 +#, fuzzy msgid "" -" Enable and disable builtin shell commands. This allows\n" +"Enable and disable builtin shell commands. This allows\n" " you to use a disk command which has the same name as a shell\n" " builtin without specifying a full pathname. If -n is used, the\n" " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" @@ -1859,13 +1890,15 @@ msgstr "" " ‘special’ builtins. The -n option displays a list of all disabled " "builtins." -#: builtins.c:480 -msgid " Read ARGs as input to the shell and execute the resulting command(s)." +#: builtins.c:481 +#, fuzzy +msgid "Read ARGs as input to the shell and execute the resulting command(s)." msgstr " Read ARGs as input to the shell and execute the resulting command(s)." -#: builtins.c:486 +#: builtins.c:487 +#, fuzzy msgid "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Getopts is used by shell procedures to parse positional parameters.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1927,9 +1960,10 @@ msgstr "" " Getopts normally parses the positional parameters ($0 - $9), but if\n" " more arguments are given, they are parsed instead." -#: builtins.c:521 +#: builtins.c:522 +#, fuzzy msgid "" -" Exec FILE, replacing this shell with the specified program.\n" +"Exec FILE, replacing this shell with the specified program.\n" " If FILE is not specified, the redirections take effect in this\n" " shell. If the first argument is `-l', then place a dash in the\n" " zeroth arg passed to FILE, as login does. If the `-c' option\n" @@ -1947,21 +1981,24 @@ msgstr "" " If the file cannot be executed and the shell is not interactive,\n" " then the shell exits, unless the shell option ‘execfail’ is set." -#: builtins.c:534 +#: builtins.c:535 +#, fuzzy msgid "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" " Exit the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." -#: builtins.c:541 -msgid " Logout of a login shell." +#: builtins.c:542 +#, fuzzy +msgid "Logout of a login shell." msgstr " Logout of a login shell." -#: builtins.c:548 +#: builtins.c:549 +#, fuzzy msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"fc is used to list or edit and re-execute commands from the history list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" @@ -2003,9 +2040,10 @@ msgstr "" " runs the last command beginning with ‘cc’ and typing ‘r’ re-executes\n" " the last command." -#: builtins.c:573 +#: builtins.c:574 +#, fuzzy msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" +"Place JOB_SPEC in the foreground, and make it the current job. If\n" " JOB_SPEC is not present, the shell's notion of the current job is\n" " used." msgstr "" @@ -2013,9 +2051,10 @@ msgstr "" " JOB_SPEC is not present, the shell's notion of the current job is\n" " used." -#: builtins.c:583 +#: builtins.c:584 +#, fuzzy msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" +"Place each JOB_SPEC in the background, as if it had been started with\n" " `&'. If JOB_SPEC is not present, the shell's notion of the current\n" " job is used." msgstr "" @@ -2023,9 +2062,10 @@ msgstr "" " ‘&’. If JOB_SPEC is not present, the shell's notion of the current\n" " job is used." -#: builtins.c:592 +#: builtins.c:593 +#, fuzzy msgid "" -" For each NAME, the full pathname of the command is determined and\n" +"For each NAME, the full pathname of the command is determined and\n" " remembered. If the -p option is supplied, PATHNAME is used as the\n" " full pathname of NAME, and no path search is performed. The -r\n" " option causes the shell to forget all remembered locations. The -d\n" @@ -2049,9 +2089,10 @@ msgstr "" " If no arguments are given, information about remembered commands is " "displayed." -#: builtins.c:608 +#: builtins.c:609 +#, fuzzy msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display helpful information about builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" " otherwise a list of the builtins is printed. The -s option\n" " restricts the output for each builtin command matching PATTERN to\n" @@ -2063,9 +2104,10 @@ msgstr "" " restricts the output for each builtin command matching PATTERN to\n" " a short usage synopsis." -#: builtins.c:620 +#: builtins.c:621 +#, fuzzy msgid "" -" Display the history list with line numbers. Lines listed with\n" +"Display the history list with line numbers. Lines listed with\n" " with a `*' have been modified. Argument of N says to list only\n" " the last N lines. The `-c' option causes the history list to be\n" " cleared by deleting all of the entries. The `-d' option deletes\n" @@ -2109,9 +2151,10 @@ msgstr "" " as a format string for strftime(3) to print the time stamp associated\n" " with each displayed history entry. No time stamps are printed otherwise." -#: builtins.c:648 +#: builtins.c:649 +#, fuzzy msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" +"Lists the active jobs. The -l option lists process id's in addition\n" " to the normal information; the -p option lists process id's only.\n" " If -n is given, only processes that have changed status since the last\n" " notification are printed. JOBSPEC restricts output to that job. The\n" @@ -2133,9 +2176,10 @@ msgstr "" "job's\n" " process group leader." -#: builtins.c:664 +#: builtins.c:665 +#, fuzzy msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" +"By default, removes each JOBSPEC argument from the table of active jobs.\n" " If the -h option is given, the job is not removed from the table, but " "is\n" " marked so that SIGHUP is not sent to the job if the shell receives a\n" @@ -2151,9 +2195,10 @@ msgstr "" "all\n" " jobs from the job table; the -r option means to remove only running jobs." -#: builtins.c:675 +#: builtins.c:676 +#, fuzzy msgid "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" " SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" " lists the signal names; if arguments follow `-l' they are assumed to\n" " be signal numbers for which names should be listed. Kill is a shell\n" @@ -2169,9 +2214,10 @@ msgstr "" " process IDs, and, if you have reached the limit on processes that\n" " you can create, you don't have to start a process to kill another one." -#: builtins.c:687 +#: builtins.c:688 +#, fuzzy msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" " is done in fixed-width integers with no check for overflow, though\n" " division by 0 is trapped and flagged as an error. The following\n" " list of operators is grouped into levels of equal-precedence operators.\n" @@ -2249,10 +2295,10 @@ msgstr "" " If the last ARG evaluates to 0, let returns 1; 0 is returned\n" " otherwise." -#: builtins.c:730 +#: builtins.c:731 +#, fuzzy msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" +"One line is read from the standard input, or from file descriptor FD if the\n" " -u option is supplied, and the first word is assigned to the first " "NAME,\n" " the second word to the second NAME, and so on, with leftover words " @@ -2323,17 +2369,19 @@ msgstr "" "supplied as\n" " the argument to -u." -#: builtins.c:756 +#: builtins.c:757 +#, fuzzy msgid "" -" Causes a function to exit with the return value specified by N. If N\n" +"Causes a function to exit with the return value specified by N. If N\n" " is omitted, the return status is that of the last command." msgstr "" " Causes a function to exit with the return value specified by N. If N\n" " is omitted, the return status is that of the last command." -#: builtins.c:763 +#: builtins.c:764 +#, fuzzy msgid "" -" -a Mark variables which are modified or created for export.\n" +" -a Mark variables which are modified or created for export.\n" " -b Notify of job termination immediately.\n" " -e Exit immediately if a command exits with a non-zero status.\n" " -f Disable file name generation (globbing).\n" @@ -2483,9 +2531,10 @@ msgstr "" " parameters and are assigned, in order, to $1, $2, .. $n. If no\n" " ARGs are given, all shell variables are printed." -#: builtins.c:836 +#: builtins.c:837 +#, fuzzy msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" +"For each NAME, remove the corresponding variable or function. Given\n" " the `-v', unset will only act on variables. Given the `-f' flag,\n" " unset will only act on functions. With neither flag, unset first\n" " tries to unset a variable, and if that fails, then tries to unset a\n" @@ -2497,9 +2546,10 @@ msgstr "" " tries to unset a variable, and if that fails, then tries to unset a\n" " function. Some variables cannot be unset; also see readonly." -#: builtins.c:846 +#: builtins.c:847 +#, fuzzy msgid "" -" NAMEs are marked for automatic export to the environment of\n" +"NAMEs are marked for automatic export to the environment of\n" " subsequently executed commands. If the -f option is given,\n" " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" " is given, a list of all names that are exported in this shell is\n" @@ -2515,9 +2565,10 @@ msgstr "" " from subsequent NAMEs. An argument of ‘--’ disables further option\n" " processing." -#: builtins.c:858 +#: builtins.c:859 +#, fuzzy msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" +"The given NAMEs are marked readonly and the values of these NAMEs may\n" " not be changed by subsequent assignment. If the -f option is given,\n" " then functions corresponding to the NAMEs are so marked. If no\n" " arguments are given, or if `-p' is given, a list of all readonly names\n" @@ -2533,17 +2584,19 @@ msgstr "" " an array variable. An argument of ‘--’ disables further option\n" " processing." -#: builtins.c:870 +#: builtins.c:871 +#, fuzzy msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" " not given, it is assumed to be 1." msgstr "" " The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" " not given, it is assumed to be 1." -#: builtins.c:877 builtins.c:886 +#: builtins.c:878 builtins.c:887 +#, fuzzy msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" +"Read and execute commands from FILENAME and return. The pathnames\n" " in $PATH are used to find the directory containing FILENAME. If any\n" " ARGUMENTS are supplied, they become the positional parameters when\n" " FILENAME is executed." @@ -2553,9 +2606,10 @@ msgstr "" " ARGUMENTS are supplied, they become the positional parameters when\n" " FILENAME is executed." -#: builtins.c:896 +#: builtins.c:897 +#, fuzzy msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" +"Suspend the execution of this shell until it receives a SIGCONT\n" " signal. The `-f' if specified says not to complain about this\n" " being a login shell if it is; just suspend anyway." msgstr "" @@ -2563,9 +2617,10 @@ msgstr "" " signal. The ‘-f’ if specified says not to complain about this\n" " being a login shell if it is; just suspend anyway." -#: builtins.c:905 +#: builtins.c:906 +#, fuzzy msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" @@ -2703,25 +2758,28 @@ msgstr "" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" " than ARG2." -#: builtins.c:975 +#: builtins.c:976 +#, fuzzy msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" +"This is a synonym for the \"test\" builtin, but the last\n" " argument must be a literal `]', to match the opening `['." msgstr "" " This is a synonym for the “test” builtin, but the last\n" " argument must be a literal ‘]’, to match the opening ‘[’." -#: builtins.c:982 +#: builtins.c:983 +#, fuzzy msgid "" -" Print the accumulated user and system times for processes run from\n" +"Print the accumulated user and system times for processes run from\n" " the shell." msgstr "" " Print the accumulated user and system times for processes run from\n" " the shell." -#: builtins.c:989 +#: builtins.c:990 +#, fuzzy msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"The command ARG is to be read and executed when the shell receives\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" @@ -2755,9 +2813,10 @@ msgstr "" " a list of signal names and their corresponding numbers. Note that a\n" " signal can be sent to the shell with “kill -signal $$”." -#: builtins.c:1008 +#: builtins.c:1009 +#, fuzzy msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" +"For each NAME, indicate how it would be interpreted if used as a\n" " command name.\n" " \n" " If the -t option is used, `type' outputs a single word which is one of\n" @@ -2801,9 +2860,10 @@ msgstr "" " builtin, or function, and returns the name of the disk file that would\n" " be executed." -#: builtins.c:1035 +#: builtins.c:1036 +#, fuzzy msgid "" -" Ulimit provides control over the resources available to processes\n" +"Ulimit provides control over the resources available to processes\n" " started by the shell, on systems that allow such control. If an\n" " option is given, it is interpreted as follows:\n" " \n" @@ -2812,18 +2872,20 @@ msgid "" " -a\tall current limits are reported\n" " -c\tthe maximum size of core files created\n" " -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" " -l\tthe maximum size a process may lock into memory\n" " -m\tthe maximum resident set size\n" " -n\tthe maximum number of open file descriptors\n" " -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" " -s\tthe maximum stack size\n" " -t\tthe maximum amount of cpu time in seconds\n" " -u\tthe maximum number of user processes\n" " -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" +" -x\tthe maximum number of file locks\n" " \n" " If LIMIT is given, it is the new value of the specified resource;\n" " the special LIMIT values `soft', `hard', and `unlimited' stand for\n" @@ -2867,9 +2929,10 @@ msgstr "" " increments of 512 bytes, and -u, which is an unscaled number of\n" " processes." -#: builtins.c:1071 +#: builtins.c:1074 +#, fuzzy msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" " `-S' is supplied, the current value of the mask is printed. The `-S'\n" " option makes the output symbolic; otherwise an octal number is output.\n" " If `-p' is supplied, and MODE is omitted, the output is in a form\n" @@ -2885,9 +2948,10 @@ msgstr "" " interpreted as an octal number, otherwise it is a symbolic mode string\n" " like that accepted by chmod(1)." -#: builtins.c:1084 +#: builtins.c:1087 +#, fuzzy msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N may be a process ID or a job\n" " specification; if a job spec is given, all processes in the job's\n" @@ -2899,9 +2963,10 @@ msgstr "" " specification; if a job spec is given, all processes in the job's\n" " pipeline are waited for." -#: builtins.c:1096 +#: builtins.c:1099 +#, fuzzy msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N is a process ID; if it is not given,\n" " all child processes of the shell are waited for." @@ -2911,9 +2976,10 @@ msgstr "" " and the return code is zero. N is a process ID; if it is not given,\n" " all child processes of the shell are waited for." -#: builtins.c:1106 +#: builtins.c:1109 +#, fuzzy msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +"The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" " the COMMANDS are executed." @@ -2923,9 +2989,10 @@ msgstr "" " assumed. For each element in WORDS, NAME is set to that element, and\n" " the COMMANDS are executed." -#: builtins.c:1115 +#: builtins.c:1118 +#, fuzzy msgid "" -" Equivalent to\n" +"Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" @@ -2943,9 +3010,10 @@ msgstr "" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" " omitted, it behaves as if it evaluates to 1." -#: builtins.c:1128 +#: builtins.c:1131 +#, fuzzy msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2969,9 +3037,10 @@ msgstr "" " in the variable REPLY. COMMANDS are executed after each selection\n" " until a break command is executed." -#: builtins.c:1144 +#: builtins.c:1147 +#, fuzzy msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" " The return status is the return status of PIPELINE. The `-p' option\n" " prints the timing summary in a slightly different format. This uses\n" @@ -2983,17 +3052,19 @@ msgstr "" " prints the timing summary in a slightly different format. This uses\n" " the value of the TIMEFORMAT variable as the output format." -#: builtins.c:1154 +#: builtins.c:1157 +#, fuzzy msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" " `|' is used to separate multiple patterns." msgstr "" " Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" " ‘|’ is used to separate multiple patterns." -#: builtins.c:1161 +#: builtins.c:1164 +#, fuzzy msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" " `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -3017,25 +3088,28 @@ msgstr "" "zero\n" " if no condition tested true." -#: builtins.c:1173 +#: builtins.c:1176 +#, fuzzy msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `while' COMMANDS has an exit status of zero." msgstr "" " Expand and execute COMMANDS as long as the final command in the\n" " ‘while’ COMMANDS has an exit status of zero." -#: builtins.c:1180 +#: builtins.c:1183 +#, fuzzy msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `until' COMMANDS has an exit status which is not zero." msgstr "" " Expand and execute COMMANDS as long as the final command in the\n" " ‘until’ COMMANDS has an exit status which is not zero." -#: builtins.c:1187 +#: builtins.c:1190 +#, fuzzy msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" +"Create a simple command invoked by NAME which runs COMMANDS.\n" " Arguments on the command line along with NAME are passed to the\n" " function as $0 .. $n." msgstr "" @@ -3043,17 +3117,19 @@ msgstr "" " Arguments on the command line along with NAME are passed to the\n" " function as $0 .. $n." -#: builtins.c:1195 +#: builtins.c:1198 +#, fuzzy msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" +"Run a set of commands in a group. This is one way to redirect an\n" " entire set of commands." msgstr "" " Run a set of commands in a group. This is one way to redirect an\n" " entire set of commands." -#: builtins.c:1202 +#: builtins.c:1205 +#, fuzzy msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" @@ -3065,17 +3141,19 @@ msgstr "" " the background, as if the job specification had been supplied as an\n" " argument to ‘bg’." -#: builtins.c:1212 +#: builtins.c:1215 +#, fuzzy msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" +"The EXPRESSION is evaluated according to the rules for arithmetic\n" " evaluation. Equivalent to \"let EXPRESSION\"." msgstr "" " The EXPRESSION is evaluated according to the rules for arithmetic\n" " evaluation. Equivalent to “let EXPRESSION”." -#: builtins.c:1219 +#: builtins.c:1222 +#, fuzzy msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the `test' builtin, and may be combined using the following " @@ -3109,22 +3187,22 @@ msgstr "" " && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" " determine the expression's value." -#: builtins.c:1237 +#: builtins.c:1240 +#, fuzzy msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" +"BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" " \t\tfor directries given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -3133,19 +3211,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -3153,7 +3231,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -3211,9 +3289,10 @@ msgstr "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" -#: builtins.c:1292 +#: builtins.c:1295 +#, fuzzy msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" @@ -3253,9 +3332,10 @@ msgstr "" " \n" " You can see the directory stack with the ‘dirs’ command." -#: builtins.c:1318 +#: builtins.c:1321 +#, fuzzy msgid "" -" Removes entries from the directory stack. With no arguments,\n" +"Removes entries from the directory stack. With no arguments,\n" " removes the top directory from the stack, and cd's to the new\n" " top directory.\n" " \n" @@ -3289,9 +3369,10 @@ msgstr "" " \n" " You can see the directory stack with the ‘dirs’ command." -#: builtins.c:1341 +#: builtins.c:1344 +#, fuzzy msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" @@ -3327,9 +3408,10 @@ msgstr "" " -N\tdisplays the Nth entry counting from the right of the list shown by\n" " \tdirs when invoked without options, starting with zero." -#: builtins.c:1364 +#: builtins.c:1367 +#, fuzzy msgid "" -" Toggle the values of variables controlling optional behavior.\n" +"Toggle the values of variables controlling optional behavior.\n" " The -s flag means to enable (set) each OPTNAME; the -u flag\n" " unsets each OPTNAME. The -q flag suppresses output; the exit\n" " status indicates whether each OPTNAME is set or unset. The -o\n" @@ -3347,9 +3429,10 @@ msgstr "" " settable options is displayed, with an indication of whether or\n" " not each is set." -#: builtins.c:1377 +#: builtins.c:1380 +#, fuzzy msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" " is a character string which contains three types of objects: plain\n" " characters, which are simply copied to standard output, character " "escape\n" @@ -3377,9 +3460,10 @@ msgstr "" "the\n" " shell variable VAR rather than being sent to the standard output." -#: builtins.c:1393 +#: builtins.c:1396 +#, fuzzy msgid "" -" For each NAME, specify how arguments are to be completed.\n" +"For each NAME, specify how arguments are to be completed.\n" " If the -p option is supplied, or if no options are supplied, existing\n" " completion specifications are printed in a way that allows them to be\n" " reused as input. The -r option removes a completion specification for\n" @@ -3391,9 +3475,10 @@ msgstr "" " reused as input. The -r option removes a completion specification for\n" " each NAME, or, if no NAMEs are supplied, all completion specifications." -#: builtins.c:1405 +#: builtins.c:1408 +#, fuzzy msgid "" -" Display the possible completions depending on the options. Intended\n" +"Display the possible completions depending on the options. Intended\n" " to be used from within a shell function generating possible " "completions.\n" " If the optional WORD argument is supplied, matches against WORD are\n" diff --git a/po/ru.gmo b/po/ru.gmo new file mode 100644 index 000000000..98567e66e Binary files /dev/null and b/po/ru.gmo differ diff --git a/po/ru.po b/po/ru.po index 13efb9d0c..c7a10f32a 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,44 +7,45 @@ msgid "" msgstr "" "Project-Id-Version: GNU bash 3.1-release\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\n" +"POT-Creation-Date: 2006-10-23 17:20-0400\n" "PO-Revision-Date: 2006-01-05 21:28+0300\n" "Last-Translator: Evgeniy Dushistov \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=KOI8-R\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: arrayfunc.c:48 msgid "bad array subscript" msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á" -#: arrayfunc.c:360 +#: arrayfunc.c:362 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s; ÎÅ ÍÏÇÕ ÐÒÉÐÉÓÁÔØ ÎÅ ÞÉÓÌÏ×ÏÊ ÉÎÄÅËÓ" -#: bashhist.c:328 +#: bashhist.c:331 #, c-format msgid "%s: cannot create: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s" -#: bashline.c:2947 +#: bashline.c:3030 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:2996 +#: bashline.c:3079 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: ÐÅÒ×ÙÊ ÎÅÐÒÏÂÅÌØÎÙÊ ÓÉÍ×ÏÌ ÎÅ `\"'" -#: bashline.c:3025 +#: bashline.c:3108 #, c-format msgid "no closing `%c' in %s" msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s" -#: bashline.c:3059 +#: bashline.c:3142 #, c-format msgid "%s: missing colon separator" msgstr "%s: ÐÒÏÐÕÝÅÎ ÒÁÚÄÅÌÉÔÅÌØ Ä×ÏÅÔÏÞÉÅ" @@ -83,63 +84,52 @@ msgstr "%s msgid "only meaningful in a `for', `while', or `until' loop" msgstr "ÉÍÅÅÔ ÓÍÙÓÌ ÔÏÌØËÏ × ÃÉËÌÁÈ `for', `while', ÉÌÉ `until'" -#: builtins/caller.def:132 +#: builtins/caller.def:131 msgid "Returns the context of the current subroutine call." msgstr "" -#: builtins/caller.def:133 -#: builtins/caller.def:137 -#: builtins/pushd.def:660 -#: builtins/pushd.def:668 -#: builtins/pushd.def:671 -#: builtins/pushd.def:681 -#: builtins/pushd.def:685 -#: builtins/pushd.def:689 -#: builtins/pushd.def:692 -#: builtins/pushd.def:695 -#: builtins/pushd.def:704 -#: builtins/pushd.def:708 -#: builtins/pushd.def:712 -#: builtins/pushd.def:715 +#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 +#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 +#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 +#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 +#: builtins/pushd.def:718 builtins/pushd.def:721 msgid " " msgstr "" -#: builtins/caller.def:134 +#: builtins/caller.def:133 msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," msgstr "âÅÚ ÷ùòáö ×ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÉÍÑÆÁÊÌÁ\". ó ÷ùòáö," -#: builtins/caller.def:135 +#: builtins/caller.def:134 msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "÷ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÐÒÏÃÅÄÕÒÁ $ÉÍÑÆÁÊÌÁ\"; ÜÔÁ ÄÏÐÏÌÎÉÔÅÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ " +msgstr "" +"÷ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÐÒÏÃÅÄÕÒÁ $ÉÍÑÆÁÊÌÁ\"; ÜÔÁ ÄÏÐÏÌÎÉÔÅÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ " -#: builtins/caller.def:136 +#: builtins/caller.def:135 msgid "can be used used to provide a stack trace." msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÄÌÑ ÓÏÚÄÁÎÉÑ `stack trace'" -#: builtins/caller.def:138 +#: builtins/caller.def:137 msgid "The value of EXPR indicates how many call frames to go back before the" msgstr "" -#: builtins/caller.def:139 +#: builtins/caller.def:138 msgid "current one; the top frame is frame 0." msgstr "" -#: builtins/cd.def:203 +#: builtins/cd.def:204 msgid "HOME not set" msgstr "ÐÅÒÅÍÅÎÎÁÑ HOME ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ" -#: builtins/cd.def:215 +#: builtins/cd.def:216 msgid "OLDPWD not set" msgstr "ÐÅÒÅÍÅÎÎÁÑ OLDPWD ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ" -#: builtins/common.c:133 -#: test.c:921 +#: builtins/common.c:133 test.c:822 msgid "too many arguments" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×" -#: builtins/common.c:157 -#: shell.c:474 -#: shell.c:747 +#: builtins/common.c:157 shell.c:474 shell.c:748 #, c-format msgid "%s: option requires an argument" msgstr "%s: ÏÐÃÉÑ ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔÁ" @@ -154,8 +144,7 @@ msgstr "%s: msgid "%s: not found" msgstr "%s: ÎÅ ÎÁÊÄÅÎ" -#: builtins/common.c:180 -#: shell.c:760 +#: builtins/common.c:180 shell.c:761 #, c-format msgid "%s: invalid option" msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" @@ -165,9 +154,7 @@ msgstr "%s: msgid "%s: invalid option name" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ" -#: builtins/common.c:194 -#: general.c:231 -#: general.c:236 +#: builtins/common.c:194 general.c:230 general.c:235 #, c-format msgid "`%s': not a valid identifier" msgstr "`%s': ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ" @@ -187,8 +174,7 @@ msgstr "%s: msgid "`%s': not a pid or valid job spec" msgstr "`%s': ÎÅ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ ÉÌÉ ÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÚÁÄÁÞÉ" -#: builtins/common.c:222 -#: error.c:453 +#: builtins/common.c:222 error.c:451 #, c-format msgid "%s: readonly variable" msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÐÅÒÅÍÅÎÎÁÑ" @@ -198,8 +184,7 @@ msgstr "%s: msgid "%s: %s out of range" msgstr "%s: %s ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ ÄÏÐÕÓÔÉÍÙÈ ÚÎÁÞÅÎÉÊ" -#: builtins/common.c:230 -#: builtins/common.c:232 +#: builtins/common.c:230 builtins/common.c:232 msgid "argument" msgstr "ÁÒÇÕÍÅÎÔ" @@ -241,13 +226,12 @@ msgstr "%s: msgid "write error: %s" msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s" -#: builtins/common.c:484 +#: builtins/common.c:481 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "%s: ÏÛÉÂËÁ ÐÏÌÕÞÅÎÉÑ ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ: %s: %s\n" -#: builtins/common.c:550 -#: builtins/common.c:552 +#: builtins/common.c:547 builtins/common.c:549 #, c-format msgid "%s: ambiguous job spec" msgstr "" @@ -257,8 +241,7 @@ msgstr "" msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:381 -#: builtins/complete.def:524 +#: builtins/complete.def:381 builtins/complete.def:524 #, c-format msgid "%s: no completion specification" msgstr "" @@ -271,27 +254,25 @@ msgstr "" msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/declare.def:105 +#: builtins/declare.def:106 msgid "can only be used in a function" msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÔÏÌØËÏ × ÆÕÎËÃÉÉ" -#: builtins/declare.def:301 +#: builtins/declare.def:306 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:313 -#: execute_cmd.c:3986 +#: builtins/declare.def:318 execute_cmd.c:4073 #, c-format msgid "%s: readonly function" msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÆÕÎËÃÉÑ" -#: builtins/declare.def:401 +#: builtins/declare.def:406 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ-ÍÁÓÓÉ× ÔÁËÉÍ ÓÐÏÓÏÂÏÍ" -#: builtins/enable.def:128 -#: builtins/enable.def:136 +#: builtins/enable.def:128 builtins/enable.def:136 msgid "dynamic loading not available" msgstr "" @@ -315,9 +296,7 @@ msgstr "" msgid "%s: cannot delete: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ: %s" -#: builtins/evalfile.c:129 -#: execute_cmd.c:3852 -#: shell.c:1408 +#: builtins/evalfile.c:129 execute_cmd.c:3930 shell.c:1409 #, c-format msgid "%s: is a directory" msgstr "%s: Ñ×ÌÑÅÔÓÑ ÄÉÒÅËÔÏÒÉÅÊ" @@ -339,21 +318,22 @@ msgstr "%s: #: builtins/exit.def:83 msgid "not login shell: use `exit'" -msgstr "ÏÂÏÌÏÞËÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÝÅÎÎÏÊ ÐÏÓÌÅ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ: ÉÓÐÏÌØÚÕÊÔÅ `exit' " +msgstr "" +"ÏÂÏÌÏÞËÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÝÅÎÎÏÊ ÐÏÓÌÅ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ: ÉÓÐÏÌØÚÕÊÔÅ `exit' " #: builtins/exit.def:111 msgid "There are stopped jobs.\n" msgstr "åÓÔØ ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÅ ÚÁÄÁÞÉ.\n" -#: builtins/fc.def:259 +#: builtins/fc.def:258 msgid "no command found" msgstr "ÎÅ ÎÁÛÅÌ ÔÁËÕÀ ËÏÍÁÎÄÕ" -#: builtins/fc.def:329 +#: builtins/fc.def:328 msgid "history specification" msgstr "" -#: builtins/fc.def:350 +#: builtins/fc.def:349 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %s" @@ -373,11 +353,11 @@ msgstr "%s: msgid "%s: option requires an argument -- %c\n" msgstr "" -#: builtins/hash.def:83 +#: builtins/hash.def:84 msgid "hashing disabled" msgstr "" -#: builtins/hash.def:128 +#: builtins/hash.def:130 #, c-format msgid "%s: hash table empty\n" msgstr "" @@ -392,7 +372,8 @@ msgstr "" #: builtins/help.def:138 #, c-format -msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." msgstr "" #: builtins/help.def:164 @@ -437,202 +418,197 @@ msgstr "" msgid "Unknown error" msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ" -#: builtins/let.def:94 -#: builtins/let.def:119 -#: expr.c:497 -#: expr.c:512 +#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 msgid "expression expected" msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" -#: builtins/printf.def:327 +#: builtins/printf.def:339 #, c-format msgid "`%s': missing format character" msgstr "`%s': ÐÒÏÐÕÝÅÎ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" -#: builtins/printf.def:502 +#: builtins/printf.def:516 #, c-format msgid "`%c': invalid format character" msgstr "%c': ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" -#: builtins/printf.def:708 +#: builtins/printf.def:722 msgid "missing hex digit for \\x" msgstr "" -#: builtins/pushd.def:173 +#: builtins/pushd.def:175 msgid "no other directory" msgstr "ÎÅÔ ÄÒÕÇÏÊ ÄÉÒÅËÔÏÒÉÉ" -#: builtins/pushd.def:440 +#: builtins/pushd.def:442 msgid "" msgstr "" -#: builtins/pushd.def:657 +#: builtins/pushd.def:663 msgid "Display the list of currently remembered directories. Directories" msgstr "" -#: builtins/pushd.def:658 +#: builtins/pushd.def:664 msgid "find their way onto the list with the `pushd' command; you can get" msgstr "" -#: builtins/pushd.def:659 +#: builtins/pushd.def:665 msgid "back up through the list with the `popd' command." msgstr "" -#: builtins/pushd.def:661 +#: builtins/pushd.def:667 msgid "The -l flag specifies that `dirs' should not print shorthand versions" msgstr "" -#: builtins/pushd.def:662 +#: builtins/pushd.def:668 msgid "of directories which are relative to your home directory. This means" msgstr "" -#: builtins/pushd.def:663 +#: builtins/pushd.def:669 msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" msgstr "" -#: builtins/pushd.def:664 +#: builtins/pushd.def:670 msgid "causes `dirs' to print the directory stack with one entry per line," msgstr "" -#: builtins/pushd.def:665 +#: builtins/pushd.def:671 msgid "prepending the directory name with its position in the stack. The -p" msgstr "" -#: builtins/pushd.def:666 +#: builtins/pushd.def:672 msgid "flag does the same thing, but the stack position is not prepended." msgstr "" -#: builtins/pushd.def:667 +#: builtins/pushd.def:673 msgid "The -c flag clears the directory stack by deleting all of the elements." msgstr "" -#: builtins/pushd.def:669 +#: builtins/pushd.def:675 msgid "+N displays the Nth entry counting from the left of the list shown by" msgstr "" -#: builtins/pushd.def:670 -#: builtins/pushd.def:673 +#: builtins/pushd.def:676 builtins/pushd.def:679 msgid " dirs when invoked without options, starting with zero." msgstr "" -#: builtins/pushd.def:672 -msgid "-N displays the Nth entry counting from the right of the list shown by" +#: builtins/pushd.def:678 +msgid "" +"-N displays the Nth entry counting from the right of the list shown by" msgstr "" -#: builtins/pushd.def:678 +#: builtins/pushd.def:684 msgid "Adds a directory to the top of the directory stack, or rotates" msgstr "" -#: builtins/pushd.def:679 +#: builtins/pushd.def:685 msgid "the stack, making the new top of the stack the current working" msgstr "" -#: builtins/pushd.def:680 +#: builtins/pushd.def:686 msgid "directory. With no arguments, exchanges the top two directories." msgstr "" -#: builtins/pushd.def:682 +#: builtins/pushd.def:688 msgid "+N Rotates the stack so that the Nth directory (counting" msgstr "" -#: builtins/pushd.def:683 +#: builtins/pushd.def:689 msgid " from the left of the list shown by `dirs', starting with" msgstr "" -#: builtins/pushd.def:684 -#: builtins/pushd.def:688 +#: builtins/pushd.def:690 builtins/pushd.def:694 msgid " zero) is at the top." msgstr "" -#: builtins/pushd.def:686 +#: builtins/pushd.def:692 msgid "-N Rotates the stack so that the Nth directory (counting" msgstr "" -#: builtins/pushd.def:687 +#: builtins/pushd.def:693 msgid " from the right of the list shown by `dirs', starting with" msgstr "" -#: builtins/pushd.def:690 +#: builtins/pushd.def:696 msgid "-n suppress the normal change of directory when adding directories" msgstr "" -#: builtins/pushd.def:691 +#: builtins/pushd.def:697 msgid " to the stack, so only the stack is manipulated." msgstr "" -#: builtins/pushd.def:693 +#: builtins/pushd.def:699 msgid "dir adds DIR to the directory stack at the top, making it the" msgstr "" -#: builtins/pushd.def:694 +#: builtins/pushd.def:700 msgid " new current working directory." msgstr "" -#: builtins/pushd.def:696 -#: builtins/pushd.def:716 +#: builtins/pushd.def:702 builtins/pushd.def:722 msgid "You can see the directory stack with the `dirs' command." msgstr "" -#: builtins/pushd.def:701 +#: builtins/pushd.def:707 msgid "Removes entries from the directory stack. With no arguments," msgstr "" -#: builtins/pushd.def:702 +#: builtins/pushd.def:708 msgid "removes the top directory from the stack, and cd's to the new" msgstr "" -#: builtins/pushd.def:703 +#: builtins/pushd.def:709 msgid "top directory." msgstr "" -#: builtins/pushd.def:705 +#: builtins/pushd.def:711 msgid "+N removes the Nth entry counting from the left of the list" msgstr "" -#: builtins/pushd.def:706 +#: builtins/pushd.def:712 msgid " shown by `dirs', starting with zero. For example: `popd +0'" msgstr "" -#: builtins/pushd.def:707 +#: builtins/pushd.def:713 msgid " removes the first directory, `popd +1' the second." msgstr "" -#: builtins/pushd.def:709 +#: builtins/pushd.def:715 msgid "-N removes the Nth entry counting from the right of the list" msgstr "" -#: builtins/pushd.def:710 +#: builtins/pushd.def:716 msgid " shown by `dirs', starting with zero. For example: `popd -0'" msgstr "" -#: builtins/pushd.def:711 +#: builtins/pushd.def:717 msgid " removes the last directory, `popd -1' the next to last." msgstr "" -#: builtins/pushd.def:713 +#: builtins/pushd.def:719 msgid "-n suppress the normal change of directory when removing directories" msgstr "" -#: builtins/pushd.def:714 +#: builtins/pushd.def:720 msgid " from the stack, so only the stack is manipulated." msgstr "" -#: builtins/read.def:211 +#: builtins/read.def:210 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:234 +#: builtins/read.def:233 #, c-format msgid "%s: invalid file descriptor specification" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ" -#: builtins/read.def:241 +#: builtins/read.def:240 #, c-format msgid "%d: invalid file descriptor: %s" msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s" -#: builtins/read.def:474 +#: builtins/read.def:478 #, c-format msgid "read error: %d: %s" msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ: %d: %s" @@ -641,21 +617,21 @@ msgstr " msgid "can only `return' from a function or sourced script" msgstr "" -#: builtins/set.def:745 +#: builtins/set.def:744 msgid "cannot simultaneously unset a function and a variable" msgstr "" -#: builtins/set.def:782 +#: builtins/set.def:781 #, c-format msgid "%s: cannot unset" msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ" -#: builtins/set.def:789 +#: builtins/set.def:788 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ: ÄÏÓÔÕÐÎÏ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ %s" -#: builtins/set.def:800 +#: builtins/set.def:799 #, c-format msgid "%s: not an array variable" msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×" @@ -665,8 +641,7 @@ msgstr "%s: msgid "%s: not a function" msgstr "%s: ÎÅ ÆÕÎËÃÉÑ" -#: builtins/shift.def:66 -#: builtins/shift.def:72 +#: builtins/shift.def:66 builtins/shift.def:72 msgid "shift count" msgstr "" @@ -679,20 +654,20 @@ msgstr "" msgid "%s: invalid shell option name" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ ÏÂÏÌÏÞËÉ" -#: builtins/source.def:117 +#: builtins/source.def:115 msgid "filename argument required" msgstr "ÔÒÅÂÕÅÔÓÑ ÁÒÇÕÍÅÎÔ ÉÍÑ ÆÁÊÌÁ" -#: builtins/source.def:137 +#: builtins/source.def:135 #, c-format msgid "%s: file not found" msgstr "%s: ÆÁÊÌ ÎÅ ÎÁÊÄÅÎ" -#: builtins/suspend.def:93 +#: builtins/suspend.def:95 msgid "cannot suspend" msgstr "" -#: builtins/suspend.def:103 +#: builtins/suspend.def:105 msgid "cannot suspend a login shell" msgstr "" @@ -726,22 +701,22 @@ msgstr "" msgid "%s is hashed (%s)\n" msgstr "" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:352 #, c-format msgid "%s: invalid limit argument" msgstr "" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:378 #, c-format msgid "`%c': bad command" msgstr "`%c': ÐÌÏÈÁÑ ËÏÍÁÎÄÁ" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:407 #, c-format msgid "%s: cannot get limit: %s" msgstr "" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:445 #, c-format msgid "%s: cannot modify limit: %s" msgstr "" @@ -760,37 +735,37 @@ msgstr "" msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:165 +#: error.c:163 #, c-format msgid "last command: %s\n" msgstr "ÐÏÓÌÅÄÎÑÑ ËÏÍÁÎÄÁ: %s\n" -#: error.c:173 +#: error.c:171 msgid "Aborting..." msgstr "úÁ×ÅÒÛÁÀ ÒÁÂÏÔÕ..." -#: error.c:260 +#: error.c:258 #, c-format msgid "%s: warning: " msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" -#: error.c:405 +#: error.c:403 msgid "unknown command error" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ ËÏÍÁÎÄÙ" -#: error.c:406 +#: error.c:404 msgid "bad command type" msgstr "" -#: error.c:407 +#: error.c:405 msgid "bad connector" msgstr "" -#: error.c:408 +#: error.c:406 msgid "bad jump" msgstr "" -#: error.c:446 +#: error.c:444 #, c-format msgid "%s: unbound variable" msgstr "" @@ -799,150 +774,156 @@ msgstr "" msgid "timed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:471 +#: execute_cmd.c:474 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1036 +#: execute_cmd.c:1058 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:3551 +#: execute_cmd.c:3629 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:3639 +#: execute_cmd.c:3717 #, c-format msgid "%s: command not found" msgstr "%s: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ" -#: execute_cmd.c:3876 +#: execute_cmd.c:3963 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: ÐÌÏÈÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ" -#: execute_cmd.c:3913 +#: execute_cmd.c:4000 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ" -#: execute_cmd.c:4025 +#: execute_cmd.c:4112 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "" -#: expr.c:375 +#: expr.c:376 msgid "syntax error in expression" msgstr "ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ×ÙÒÁÖÅÎÉÅ" -#: expr.c:415 +#: expr.c:416 msgid "attempted assignment to non-variable" msgstr "ÐÏÐÙÔËÁ ÐÒÉÓ×ÏÅÎÉÑ ÎÅ-ÐÅÒÅÍÅÎÎÏÊ" -#: expr.c:436 -#: expr.c:441 -#: expr.c:751 +#: expr.c:437 expr.c:442 expr.c:752 msgid "division by 0" msgstr "ÄÅÌÅÎÉÅ ÎÁ 0" -#: expr.c:467 +#: expr.c:468 msgid "bug: bad expassign token" msgstr "" -#: expr.c:509 +#: expr.c:510 msgid "`:' expected for conditional expression" msgstr "" -#: expr.c:776 +#: expr.c:777 msgid "exponent less than 0" msgstr "" -#: expr.c:821 +#: expr.c:822 msgid "identifier expected after pre-increment or pre-decrement" msgstr "" -#: expr.c:849 +#: expr.c:850 msgid "missing `)'" msgstr "ÐÒÏÐÕÝÅÎ `)'" -#: expr.c:892 +#: expr.c:893 expr.c:1171 msgid "syntax error: operand expected" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÏÖÉÄÁÅÔÓÑ ÏÐÅÒÁÎÄ" -#: expr.c:1178 +#: expr.c:1173 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1251 msgid "invalid number" msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" -#: expr.c:1182 +#: expr.c:1255 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1202 +#: expr.c:1275 msgid "value too great for base" msgstr "" -#: general.c:62 +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:231 +#: input.c:237 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" msgstr "" -#: input.c:239 +#: input.c:245 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "" -#: jobs.c:923 +#: jobs.c:876 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:983 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "" -#: jobs.c:1308 +#: jobs.c:1378 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "" -#: jobs.c:1981 -#: nojobs.c:648 +#: jobs.c:2061 nojobs.c:575 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: jobs.c:2180 +#: jobs.c:2265 #, c-format msgid "wait_for: No record of process %ld" msgstr "" -#: jobs.c:2435 +#: jobs.c:2524 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "" -#: jobs.c:2657 +#: jobs.c:2746 #, c-format msgid "%s: job has terminated" msgstr "" -#: jobs.c:2666 +#: jobs.c:2755 #, c-format msgid "%s: job %d already in background" msgstr "" -#: jobs.c:3452 +#: jobs.c:3546 msgid "no job control in this shell" msgstr "" @@ -958,48 +939,48 @@ msgid "" "malloc: %s:%d: assertion botched\r\n" msgstr "" -#: lib/malloc/malloc.c:740 +#: lib/malloc/malloc.c:799 msgid "malloc: block on free list clobbered" msgstr "" -#: lib/malloc/malloc.c:817 +#: lib/malloc/malloc.c:876 msgid "free: called with already freed block argument" msgstr "" -#: lib/malloc/malloc.c:820 +#: lib/malloc/malloc.c:879 msgid "free: called with unallocated block argument" msgstr "" -#: lib/malloc/malloc.c:839 +#: lib/malloc/malloc.c:898 msgid "free: underflow detected; mh_nbytes out of range" msgstr "" -#: lib/malloc/malloc.c:845 +#: lib/malloc/malloc.c:904 msgid "free: start and end chunk sizes differ" msgstr "" -#: lib/malloc/malloc.c:942 +#: lib/malloc/malloc.c:1003 msgid "realloc: called with unallocated block argument" msgstr "" -#: lib/malloc/malloc.c:957 +#: lib/malloc/malloc.c:1018 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "" -#: lib/malloc/malloc.c:963 +#: lib/malloc/malloc.c:1024 msgid "realloc: start and end chunk sizes differ" msgstr "" -#: lib/malloc/table.c:175 +#: lib/malloc/table.c:176 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" msgstr "" -#: lib/malloc/table.c:182 +#: lib/malloc/table.c:183 #, c-format msgid "register_alloc: %p already in table as allocated?\n" msgstr "" -#: lib/malloc/table.c:218 +#: lib/malloc/table.c:219 #, c-format msgid "register_free: %p already in table as free?\n" msgstr "" @@ -1033,22 +1014,22 @@ msgstr "" msgid "invalid base" msgstr "" -#: lib/sh/netopen.c:158 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "%s: ÈÏÓÔ ÎÅÉÚ×ÅÓÔÅÎ" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÅÒ×ÉÓ" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "" @@ -1083,108 +1064,108 @@ msgstr " msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:736 +#: make_cmd.c:741 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2747 +#: parse.y:2759 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3043 +#: parse.y:3071 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3048 +#: parse.y:3076 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3052 +#: parse.y:3080 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:3130 +#: parse.y:3158 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3134 +#: parse.y:3162 msgid "expected `)'" msgstr "ÏÖÉÄÁÌÓÑ `)'" -#: parse.y:3162 +#: parse.y:3190 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3166 +#: parse.y:3194 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3203 +#: parse.y:3234 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3207 +#: parse.y:3238 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3223 +#: parse.y:3255 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3227 +#: parse.y:3259 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3238 +#: parse.y:3270 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3241 +#: parse.y:3273 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3245 +#: parse.y:3277 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:4461 +#: parse.y:4523 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:4479 +#: parse.y:4541 #, c-format msgid "syntax error near `%s'" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ ÏËÏÌÏ `%s'" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error: unexpected end of file" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ" -#: parse.y:4489 +#: parse.y:4551 msgid "syntax error" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ" -#: parse.y:4551 +#: parse.y:4613 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "éÓÐÏÌØÚÕÊÔÅ \"%s\", ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØÓÑ ÒÁÂÏÔÕ Ó ÏÂÏÌÏÞËÏÊ.\n" -#: parse.y:4710 +#: parse.y:4775 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1001 +#: pcomplete.c:1002 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1232,7 +1213,7 @@ msgstr "" msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:956 +#: redir.c:965 msgid "redirection error: cannot duplicate fd" msgstr "ÏÛÉÂËÁ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ: ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd" @@ -1244,16 +1225,16 @@ msgstr " msgid "/tmp must be a valid directory name" msgstr "/tmp ÄÏÌÖÎÁ ÂÙÔØ ÄÅÊÓÔ×ÉÔÅÌØÎÙÍ ÉÍÅÎÅÍ ÄÉÒÅËÔÏÒÉÉ" -#: shell.c:849 +#: shell.c:850 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ" -#: shell.c:1598 +#: shell.c:1600 msgid "I have no name!" msgstr "õ ÍÅÎÑ ÎÅÔ ÉÍÅÎÉ!" -#: shell.c:1733 +#: shell.c:1735 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1263,215 +1244,211 @@ msgstr "" "%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ...\n" "\t%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ÆÁÊÌ_ÓÏ_ÓËÒÉÐÔÏÍ...\n" -#: shell.c:1735 +#: shell.c:1737 msgid "GNU long options:\n" msgstr "äÌÉÎÎÙÅ ÏÐÃÉÉ × ÓÔÅÌÅ GNU:\n" -#: shell.c:1739 +#: shell.c:1741 msgid "Shell options:\n" msgstr "ïÐÃÉÉ ÏÂÏÌÏÞËÉ:\n" -#: shell.c:1740 +#: shell.c:1742 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1755 +#: shell.c:1757 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ÉÌÉ ÏÐÃÉÑ -o\n" -#: shell.c:1761 +#: shell.c:1763 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1762 +#: shell.c:1764 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1763 +#: shell.c:1765 msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:494 +#: sig.c:557 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: subst.c:1123 +#: subst.c:1160 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2269 +#: subst.c:2328 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4208 -#: subst.c:4224 +#: subst.c:4265 subst.c:4281 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4255 +#: subst.c:4312 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4300 +#: subst.c:4357 #, c-format msgid "cannot open named pipe %s for reading" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÞÔÅÎÉÑ" -#: subst.c:4302 +#: subst.c:4359 #, c-format msgid "cannot open named pipe %s for writing" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÚÁÐÉÓÉ" -#: subst.c:4310 +#: subst.c:4367 #, c-format msgid "cannout reset nodelay mode for fd %d" msgstr "" -#: subst.c:4320 +#: subst.c:4377 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4495 +#: subst.c:4552 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4531 +#: subst.c:4588 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4548 +#: subst.c:4605 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5013 +#: subst.c:5068 #, c-format msgid "%s: parameter null or not set" msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ" -#: subst.c:5287 +#: subst.c:5342 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6058 +#: subst.c:6179 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6134 +#: subst.c:6255 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7687 +#: subst.c:7826 #, c-format msgid "no match: %s" msgstr "ÎÅÔ ÓÏ×ÐÁÄÅÎÉÑ Ó: %s" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ ÁÒÇÕÍÅÎÔ" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "ÏÖÉÄÁÅÔÓÑ `)' " -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "ÏÖÉÄÁÌÓÑ `)', ÎÁÊÄÅÎ %s" -#: test.c:378 -#: test.c:787 -#: test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÕÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ" -#: test.c:543 -#: test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÂÉÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "ÐÒÏÐÕÝÅÎ `]'" -#: trap.c:194 +#: trap.c:200 msgid "invalid signal number" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ" -#: trap.c:309 +#: trap.c:315 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:313 +#: trap.c:319 #, c-format -msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:349 +#: trap.c:355 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:320 +#: variables.c:334 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:692 +#: variables.c:711 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1651 +#: variables.c:1670 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:2807 +#: variables.c:2813 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3021 -#: variables.c:3030 +#: variables.c:3030 variables.c:3039 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3036 +#: variables.c:3045 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3463 +#: variables.c:3472 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3476 +#: variables.c:3485 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3548 +#: variables.c:3557 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" #: version.c:82 -msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" msgstr "" #: xmalloc.c:93 @@ -1516,7 +1493,7 @@ msgstr "" #: builtins.c:244 msgid "" -" `alias' with no arguments or with the -p option prints the list\n" +"`alias' with no arguments or with the -p option prints the list\n" " of aliases in the form alias NAME=VALUE on standard output.\n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" @@ -1526,20 +1503,22 @@ msgstr "" #: builtins.c:257 msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +"Remove NAMEs from the list of defined aliases. If the -a option is given,\n" " then remove all alias definitions." msgstr "" #: builtins.c:266 msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" +"Bind a key sequence to a Readline function or a macro, or set\n" " a Readline variable. The non-option argument syntax is equivalent\n" " to that found in ~/.inputrc, but must be passed as a single argument:\n" " bind '\"\\C-x\\C-r\": re-read-init-file'.\n" " bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of this\n" +" -m keymap Use `keymap' as the keymap for the duration of " +"this\n" " command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" " vi-command, and vi-insert.\n" " -l List names of functions.\n" " -P List function names and bindings.\n" @@ -1550,41 +1529,44 @@ msgid "" " \t\t\t\tKEYSEQ is entered.\n" " -f filename Read key bindings from FILENAME.\n" " -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" " -V List variable names and values\n" " -v List variable names and values in a form that can\n" " be reused as input.\n" -" -S List key sequences that invoke macros and their values\n" -" -s List key sequences that invoke macros and their values\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" " in a form that can be reused as input." msgstr "" #: builtins.c:297 msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +"Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" " break N levels." msgstr "" #: builtins.c:304 msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" " If N is specified, resume at the N-th enclosing loop." msgstr "" #: builtins.c:311 msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" +"Run a shell builtin. This is useful when you wish to rename a\n" " shell builtin to be a function, but need the functionality of the\n" " builtin within the function itself." msgstr "" #: builtins.c:320 msgid "" -" Returns the context of the current subroutine call.\n" +"Returns the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" +" Without EXPR, returns \"$line $filename\". With EXPR,\n" " returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" can be used to provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" " current one; the top frame is frame 0." @@ -1592,7 +1574,7 @@ msgstr "" #: builtins.c:334 msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" +"Change the current directory to DIR. The variable $HOME is the\n" " default DIR. The variable CDPATH defines the search path for\n" " the directory containing DIR. Alternative directory names in CDPATH\n" " are separated by a colon (:). A null directory name is the same as\n" @@ -1601,32 +1583,38 @@ msgid "" " shell option `cdable_vars' is set, then try the word as a variable\n" " name. If that variable has a value, then cd to the value of that\n" " variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic links\n" +" instead of following symbolic links; the -L option forces symbolic " +"links\n" " to be followed." msgstr "" #: builtins.c:350 msgid "" -" Print the current working directory. With the -P option, pwd prints\n" +"Print the current working directory. With the -P option, pwd prints\n" " the physical directory, without any symbolic links; the -L option\n" " makes pwd follow symbolic links." msgstr "" #: builtins.c:358 -msgid " No effect; the command does nothing. A zero exit code is returned." -msgstr " îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ." +#, fuzzy +msgid "No effect; the command does nothing. A zero exit code is returned." +msgstr "" +" îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × " +"ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ." #: builtins.c:364 -msgid " Return a successful result." +#, fuzzy +msgid "Return a successful result." msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ×ÓÅ ÈÏÒÏÛÏ." #: builtins.c:370 -msgid " Return an unsuccessful result." +#, fuzzy +msgid "Return an unsuccessful result." msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ÎÅÕÄÁÞÁ." #: builtins.c:376 msgid "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +"Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" " function called `ls', and you wish to call the command `ls', you can\n" " say \"command ls\". If the -p option is given, a default value is used\n" " for PATH that is guaranteed to find all of the standard utilities. If\n" @@ -1636,7 +1624,7 @@ msgstr "" #: builtins.c:387 msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" +"Declare variables and/or give them attributes. If no NAMEs are\n" " given, then display the values of variables instead. The -p option\n" " will display the attributes and values of each NAME.\n" " \n" @@ -1644,7 +1632,8 @@ msgid "" " \n" " -a\tto make NAMEs arrays (if supported)\n" " -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name if\n" +" -F\tto display function names (and line number and source file name " +"if\n" " \tdebugging) without definitions\n" " -i\tto make NAMEs have the `integer' attribute\n" " -r\tto make NAMEs readonly\n" @@ -1663,19 +1652,20 @@ msgid "" msgstr "" #: builtins.c:416 -msgid " Obsolete. See `declare'." +#, fuzzy +msgid "Obsolete. See `declare'." msgstr " ÷ÙÛÅÌ ÉÚ ÕÐÏÔÒÅÂÌÅÎÉÑ. óÍ. `declare'." #: builtins.c:422 msgid "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" +"Create a local variable called NAME, and give it VALUE. LOCAL\n" " can only be used within a function; it makes the variable NAME\n" " have a visible scope restricted to that function and its children." msgstr "" #: builtins.c:431 msgid "" -" Output the ARGs. If -n is specified, the trailing newline is\n" +"Output the ARGs. If -n is specified, the trailing newline is\n" " suppressed. If the -e option is given, interpretation of the\n" " following backslash-escaped characters is turned on:\n" " \t\\a\talert (bell)\n" @@ -1683,26 +1673,26 @@ msgid "" " \t\\c\tsuppress trailing newline\n" " \t\\E\tescape character\n" " \t\\f\tform feed\n" -" \t\\n" -"\tnew line\n" +" \t\\n\tnew line\n" " \t\\r\tcarriage return\n" " \t\\t\thorizontal tab\n" " \t\\v\tvertical tab\n" " \t\\\\\tbackslash\n" -" \t\\n" -"um\tthe character whose ASCII code is NUM (octal).\n" +" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t\t0 to 3 octal digits\n" " \n" " You can explicitly turn off the interpretation of the above characters\n" " with the -E option." msgstr "" -#: builtins.c:455 -msgid " Output the ARGs. If -n is specified, the trailing newline is suppressed." +#: builtins.c:456 +msgid "" +"Output the ARGs. If -n is specified, the trailing newline is suppressed." msgstr "" -#: builtins.c:462 +#: builtins.c:463 msgid "" -" Enable and disable builtin shell commands. This allows\n" +"Enable and disable builtin shell commands. This allows\n" " you to use a disk command which has the same name as a shell\n" " builtin without specifying a full pathname. If -n is used, the\n" " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" @@ -1713,17 +1703,19 @@ msgid "" " previously loaded with -f. If no non-option names are given, or\n" " the -p option is supplied, a list of builtins is printed. The\n" " -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the POSIX.2\n" -" `special' builtins. The -n option displays a list of all disabled builtins." +" or not it is enabled. The -s option restricts the output to the " +"POSIX.2\n" +" `special' builtins. The -n option displays a list of all disabled " +"builtins." msgstr "" -#: builtins.c:480 -msgid " Read ARGs as input to the shell and execute the resulting command(s)." +#: builtins.c:481 +msgid "Read ARGs as input to the shell and execute the resulting command(s)." msgstr "" -#: builtins.c:486 +#: builtins.c:487 msgid "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Getopts is used by shell procedures to parse positional parameters.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1755,9 +1747,9 @@ msgid "" " more arguments are given, they are parsed instead." msgstr "" -#: builtins.c:521 +#: builtins.c:522 msgid "" -" Exec FILE, replacing this shell with the specified program.\n" +"Exec FILE, replacing this shell with the specified program.\n" " If FILE is not specified, the redirections take effect in this\n" " shell. If the first argument is `-l', then place a dash in the\n" " zeroth arg passed to FILE, as login does. If the `-c' option\n" @@ -1767,29 +1759,34 @@ msgid "" " then the shell exits, unless the shell option `execfail' is set." msgstr "" -#: builtins.c:534 +#: builtins.c:535 msgid "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -#: builtins.c:541 -msgid " Logout of a login shell." -msgstr "úÁ×ÅÒÛÅÎÉÑ ÓÅÁÎÓÁ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÚÁÐÕÝÅÎÎÏÇÏ ÐÏÓÌÅ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ." +#: builtins.c:542 +#, fuzzy +msgid "Logout of a login shell." +msgstr "" +"úÁ×ÅÒÛÅÎÉÑ ÓÅÁÎÓÁ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÚÁÐÕÝÅÎÎÏÇÏ ÐÏÓÌÅ ×ÈÏÄÁ × " +"ÓÉÓÔÅÍÕ." -#: builtins.c:548 +#: builtins.c:549 msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"fc is used to list or edit and re-execute commands from the history list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR,\n" +" -e ENAME selects which editor to use. Default is FCEDIT, then " +"EDITOR,\n" " then vi.\n" " \n" " -l means list lines instead of editing.\n" " -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed first).\n" +" -r means reverse the order of the lines (making it newest listed " +"first).\n" " \n" " With the `fc -s [pat=rep ...] [command]' format, the command is\n" " re-executed after the substitution OLD=NEW is performed.\n" @@ -1799,23 +1796,23 @@ msgid "" " the last command." msgstr "" -#: builtins.c:573 +#: builtins.c:574 msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" +"Place JOB_SPEC in the foreground, and make it the current job. If\n" " JOB_SPEC is not present, the shell's notion of the current job is\n" " used." msgstr "" -#: builtins.c:583 +#: builtins.c:584 msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" +"Place each JOB_SPEC in the background, as if it had been started with\n" " `&'. If JOB_SPEC is not present, the shell's notion of the current\n" " job is used." msgstr "" -#: builtins.c:592 +#: builtins.c:593 msgid "" -" For each NAME, the full pathname of the command is determined and\n" +"For each NAME, the full pathname of the command is determined and\n" " remembered. If the -p option is supplied, PATHNAME is used as the\n" " full pathname of NAME, and no path search is performed. The -r\n" " option causes the shell to forget all remembered locations. The -d\n" @@ -1824,21 +1821,22 @@ msgid "" " corresponds is printed. If multiple NAME arguments are supplied with\n" " -t, the NAME is printed before the hashed full pathname. The -l option\n" " causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is displayed." +" If no arguments are given, information about remembered commands is " +"displayed." msgstr "" -#: builtins.c:608 +#: builtins.c:609 msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display helpful information about builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" " otherwise a list of the builtins is printed. The -s option\n" " restricts the output for each builtin command matching PATTERN to\n" " a short usage synopsis." msgstr "" -#: builtins.c:620 +#: builtins.c:621 msgid "" -" Display the history list with line numbers. Lines listed with\n" +"Display the history list with line numbers. Lines listed with\n" " with a `*' have been modified. Argument of N says to list only\n" " the last N lines. The `-c' option causes the history list to be\n" " cleared by deleting all of the entries. The `-d' option deletes\n" @@ -1861,31 +1859,34 @@ msgid "" " with each displayed history entry. No time stamps are printed otherwise." msgstr "" -#: builtins.c:648 +#: builtins.c:649 msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" +"Lists the active jobs. The -l option lists process id's in addition\n" " to the normal information; the -p option lists process id's only.\n" " If -n is given, only processes that have changed status since the last\n" " notification are printed. JOBSPEC restricts output to that job. The\n" " -r and -s options restrict output to running and stopped jobs only,\n" " respectively. Without options, the status of all active jobs is\n" " printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that job's\n" +" that appear in ARGS have been replaced with the process ID of that " +"job's\n" " process group leader." msgstr "" -#: builtins.c:664 +#: builtins.c:665 msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but is\n" +"By default, removes each JOBSPEC argument from the table of active jobs.\n" +" If the -h option is given, the job is not removed from the table, but " +"is\n" " marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all\n" +" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +"all\n" " jobs from the job table; the -r option means to remove only running jobs." msgstr "" -#: builtins.c:675 +#: builtins.c:676 msgid "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" " SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" " lists the signal names; if arguments follow `-l' they are assumed to\n" " be signal numbers for which names should be listed. Kill is a shell\n" @@ -1894,9 +1895,9 @@ msgid "" " you can create, you don't have to start a process to kill another one." msgstr "" -#: builtins.c:687 +#: builtins.c:688 msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" " is done in fixed-width integers with no check for overflow, though\n" " division by 0 is trapped and flagged as an error. The following\n" " list of operators is grouped into levels of equal-precedence operators.\n" @@ -1936,40 +1937,53 @@ msgid "" " otherwise." msgstr "" -#: builtins.c:730 +#: builtins.c:731 msgid "" -" One line is read from the standard input, or from file descriptor FD if the\n" -" -u option is supplied, and the first word is assigned to the first NAME,\n" -" the second word to the second NAME, and so on, with leftover words assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the REPLY\n" +"One line is read from the standard input, or from file descriptor FD if the\n" +" -u option is supplied, and the first word is assigned to the first " +"NAME,\n" +" the second word to the second NAME, and so on, with leftover words " +"assigned\n" +" to the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters. If no NAMEs are supplied, the line read is stored in the " +"REPLY\n" " variable. If the -r option is given, this signifies `raw' input, and\n" " backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the -p\n" -" option is supplied, the string PROMPT is output without a trailing newline\n" -" before attempting to read. If -a is supplied, the words read are assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied and\n" -" the shell is interactive, readline is used to obtain the line. If -n is\n" +" until the first character of DELIM is read, rather than newline. If the " +"-p\n" +" option is supplied, the string PROMPT is output without a trailing " +"newline\n" +" before attempting to read. If -a is supplied, the words read are " +"assigned\n" +" to sequential indices of ARRAY, starting at zero. If -e is supplied " +"and\n" +" the shell is interactive, readline is used to obtain the line. If -n " +"is\n" " supplied with a non-zero NCHARS argument, read returns after NCHARS\n" " characters have been read. The -s option causes input coming from a\n" " terminal to not be echoed.\n" " \n" -" The -t option causes read to time out and return failure if a complete line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is set,\n" -" its value is the default timeout. The return code is zero, unless end-of-file\n" -" is encountered, read times out, or an invalid file descriptor is supplied as\n" +" The -t option causes read to time out and return failure if a complete " +"line\n" +" of input is not read within TIMEOUT seconds. If the TMOUT variable is " +"set,\n" +" its value is the default timeout. The return code is zero, unless end-" +"of-file\n" +" is encountered, read times out, or an invalid file descriptor is " +"supplied as\n" " the argument to -u." msgstr "" -#: builtins.c:756 +#: builtins.c:757 msgid "" -" Causes a function to exit with the return value specified by N. If N\n" +"Causes a function to exit with the return value specified by N. If N\n" " is omitted, the return status is that of the last command." msgstr "" -#: builtins.c:763 +#: builtins.c:764 msgid "" -" -a Mark variables which are modified or created for export.\n" +" -a Mark variables which are modified or created for export.\n" " -b Notify of job termination immediately.\n" " -e Exit immediately if a command exits with a non-zero status.\n" " -f Disable file name generation (globbing).\n" @@ -1991,7 +2005,8 @@ msgid "" " history enable command history\n" " ignoreeof the shell will not exit upon reading EOF\n" " interactive-comments\n" -" allow comments to appear in interactive commands\n" +" allow comments to appear in interactive " +"commands\n" " keyword same as -k\n" " monitor same as -m\n" " noclobber same as -C\n" @@ -2002,9 +2017,12 @@ msgid "" " nounset same as -u\n" " onecmd same as -t\n" " physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero status\n" +" pipefail the return value of a pipeline is the status " +"of\n" +" the last command to exit with a non-zero " +"status,\n" +" or zero if no command exited with a non-zero " +"status\n" " posix change the behavior of bash where the default\n" " operation differs from the 1003.2 standard to\n" " match the standard\n" @@ -2012,9 +2030,11 @@ msgid "" " verbose same as -v\n" " vi use a vi-style line editing interface\n" " xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" +" -p Turned on whenever the real and effective user ids do not " +"match.\n" " Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" +" functions. Turning this option off causes the effective uid " +"and\n" " gid to be set to the real uid and gid.\n" " -t Exit after reading and executing one command.\n" " -u Treat unset variables as an error when substituting.\n" @@ -2039,18 +2059,18 @@ msgid "" " ARGs are given, all shell variables are printed." msgstr "" -#: builtins.c:836 +#: builtins.c:837 msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" +"For each NAME, remove the corresponding variable or function. Given\n" " the `-v', unset will only act on variables. Given the `-f' flag,\n" " unset will only act on functions. With neither flag, unset first\n" " tries to unset a variable, and if that fails, then tries to unset a\n" " function. Some variables cannot be unset; also see readonly." msgstr "" -#: builtins.c:846 +#: builtins.c:847 msgid "" -" NAMEs are marked for automatic export to the environment of\n" +"NAMEs are marked for automatic export to the environment of\n" " subsequently executed commands. If the -f option is given,\n" " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" " is given, a list of all names that are exported in this shell is\n" @@ -2059,9 +2079,9 @@ msgid "" " processing." msgstr "" -#: builtins.c:858 +#: builtins.c:859 msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" +"The given NAMEs are marked readonly and the values of these NAMEs may\n" " not be changed by subsequent assignment. If the -f option is given,\n" " then functions corresponding to the NAMEs are so marked. If no\n" " arguments are given, or if `-p' is given, a list of all readonly names\n" @@ -2070,31 +2090,30 @@ msgid "" " processing." msgstr "" -#: builtins.c:870 +#: builtins.c:871 msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" " not given, it is assumed to be 1." msgstr "" -#: builtins.c:877 -#: builtins.c:886 +#: builtins.c:878 builtins.c:887 msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" +"Read and execute commands from FILENAME and return. The pathnames\n" " in $PATH are used to find the directory containing FILENAME. If any\n" " ARGUMENTS are supplied, they become the positional parameters when\n" " FILENAME is executed." msgstr "" -#: builtins.c:896 +#: builtins.c:897 msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" +"Suspend the execution of this shell until it receives a SIGCONT\n" " signal. The `-f' if specified says not to complain about this\n" " being a login shell if it is; just suspend anyway." msgstr "" -#: builtins.c:905 +#: builtins.c:906 msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" @@ -2121,7 +2140,8 @@ msgid "" " -x FILE True if the file is executable by you.\n" " -O FILE True if the file is effectively owned by you.\n" " -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last read.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" " modification date).\n" @@ -2142,9 +2162,11 @@ msgid "" " STRING1 != STRING2\n" " True if the strings are not equal.\n" " STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 lexicographically.\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" " STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" +" True if STRING1 sorts after STRING2 " +"lexicographically.\n" " \n" " Other operators:\n" " \n" @@ -2161,39 +2183,41 @@ msgid "" " than ARG2." msgstr "" -#: builtins.c:975 +#: builtins.c:976 msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" +"This is a synonym for the \"test\" builtin, but the last\n" " argument must be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:982 +#: builtins.c:983 msgid "" -" Print the accumulated user and system times for processes run from\n" +"Print the accumulated user and system times for processes run from\n" " the shell." msgstr "" -#: builtins.c:989 +#: builtins.c:990 msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"The command ARG is to be read and executed when the shell receives\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" " shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" " the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' option\n" +" is DEBUG, ARG is executed after every simple command. If the`-p' " +"option\n" " is supplied then the trap commands associated with each SIGNAL_SPEC are\n" " displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each SIGNAL_SPEC\n" +" prints the list of commands associated with each signal. Each " +"SIGNAL_SPEC\n" " is either a signal name in or a signal number. Signal names\n" " are case insensitive and the SIG prefix is optional. `trap -l' prints\n" " a list of signal names and their corresponding numbers. Note that a\n" " signal can be sent to the shell with \"kill -signal $$\"." msgstr "" -#: builtins.c:1008 +#: builtins.c:1009 msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" +"For each NAME, indicate how it would be interpreted if used as a\n" " command name.\n" " \n" " If the -t option is used, `type' outputs a single word which is one of\n" @@ -2216,9 +2240,9 @@ msgid "" " be executed." msgstr "" -#: builtins.c:1035 +#: builtins.c:1036 msgid "" -" Ulimit provides control over the resources available to processes\n" +"Ulimit provides control over the resources available to processes\n" " started by the shell, on systems that allow such control. If an\n" " option is given, it is interpreted as follows:\n" " \n" @@ -2227,22 +2251,25 @@ msgid "" " -a\tall current limits are reported\n" " -c\tthe maximum size of core files created\n" " -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" " -l\tthe maximum size a process may lock into memory\n" " -m\tthe maximum resident set size\n" " -n\tthe maximum number of open file descriptors\n" " -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" " -s\tthe maximum stack size\n" " -t\tthe maximum amount of cpu time in seconds\n" " -u\tthe maximum number of user processes\n" " -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" +" -x\tthe maximum number of file locks\n" " \n" " If LIMIT is given, it is the new value of the specified resource;\n" " the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, respectively.\n" +" the current soft limit, the current hard limit, and no limit, " +"respectively.\n" " Otherwise, the current value of the specified resource is printed.\n" " If no option is given, then -f is assumed. Values are in 1024-byte\n" " increments, except for -t, which is in seconds, -p, which is in\n" @@ -2250,9 +2277,9 @@ msgid "" " processes." msgstr "" -#: builtins.c:1071 +#: builtins.c:1074 msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" " `-S' is supplied, the current value of the mask is printed. The `-S'\n" " option makes the output symbolic; otherwise an octal number is output.\n" " If `-p' is supplied, and MODE is omitted, the output is in a form\n" @@ -2261,34 +2288,34 @@ msgid "" " like that accepted by chmod(1)." msgstr "" -#: builtins.c:1084 +#: builtins.c:1087 msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N may be a process ID or a job\n" " specification; if a job spec is given, all processes in the job's\n" " pipeline are waited for." msgstr "" -#: builtins.c:1096 +#: builtins.c:1099 msgid "" -" Wait for the specified process and report its termination status. If\n" +"Wait for the specified process and report its termination status. If\n" " N is not given, all currently active child processes are waited for,\n" " and the return code is zero. N is a process ID; if it is not given,\n" " all child processes of the shell are waited for." msgstr "" -#: builtins.c:1106 +#: builtins.c:1109 msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +"The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" " the COMMANDS are executed." msgstr "" -#: builtins.c:1115 +#: builtins.c:1118 msgid "" -" Equivalent to\n" +"Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" @@ -2298,9 +2325,9 @@ msgid "" " omitted, it behaves as if it evaluates to 1." msgstr "" -#: builtins.c:1128 +#: builtins.c:1131 msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2313,104 +2340,111 @@ msgid "" " until a break command is executed." msgstr "" -#: builtins.c:1144 +#: builtins.c:1147 msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" " The return status is the return status of PIPELINE. The `-p' option\n" " prints the timing summary in a slightly different format. This uses\n" " the value of the TIMEFORMAT variable as the output format." msgstr "" -#: builtins.c:1154 +#: builtins.c:1157 msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" " `|' is used to separate multiple patterns." msgstr "" -#: builtins.c:1161 +#: builtins.c:1164 msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is\n" +"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" " executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of the\n" -" entire construct is the exit status of the last command executed, or zero\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" " if no condition tested true." msgstr "" -#: builtins.c:1173 +#: builtins.c:1176 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `while' COMMANDS has an exit status of zero." msgstr "" -#: builtins.c:1180 +#: builtins.c:1183 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" +"Expand and execute COMMANDS as long as the final command in the\n" " `until' COMMANDS has an exit status which is not zero." msgstr "" -#: builtins.c:1187 +#: builtins.c:1190 msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" +"Create a simple command invoked by NAME which runs COMMANDS.\n" " Arguments on the command line along with NAME are passed to the\n" " function as $0 .. $n." msgstr "" -#: builtins.c:1195 +#: builtins.c:1198 msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" +"Run a set of commands in a group. This is one way to redirect an\n" " entire set of commands." msgstr "" -#: builtins.c:1202 +#: builtins.c:1205 msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" " argument to `bg'." msgstr "" -#: builtins.c:1212 +#: builtins.c:1215 msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" +"The EXPRESSION is evaluated according to the rules for arithmetic\n" " evaluation. Equivalent to \"let EXPRESSION\"." msgstr "" -#: builtins.c:1219 +#: builtins.c:1222 msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries used\n" -" by the `test' builtin, and may be combined using the following operators\n" +"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators\n" " \n" " \t( EXPRESSION )\tReturns the value of EXPRESSION\n" " \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" " \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" " \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" " \n" -" When the `==' and `!=' operators are used, the string to the right of the\n" +" When the `==' and `!=' operators are used, the string to the right of " +"the\n" " operator is used as a pattern and pattern matching is performed. The\n" " && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" " determine the expression's value." msgstr "" -#: builtins.c:1237 +#: builtins.c:1240 msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" +"BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" " \t\tfor directries given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -2419,19 +2453,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -2439,7 +2473,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -2448,9 +2482,9 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1292 +#: builtins.c:1295 msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" @@ -2471,9 +2505,9 @@ msgid "" " You can see the directory stack with the `dirs' command." msgstr "" -#: builtins.c:1318 +#: builtins.c:1321 msgid "" -" Removes entries from the directory stack. With no arguments,\n" +"Removes entries from the directory stack. With no arguments,\n" " removes the top directory from the stack, and cd's to the new\n" " top directory.\n" " \n" @@ -2491,9 +2525,9 @@ msgid "" " You can see the directory stack with the `dirs' command." msgstr "" -#: builtins.c:1341 +#: builtins.c:1344 msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" @@ -2512,9 +2546,9 @@ msgid "" " \tdirs when invoked without options, starting with zero." msgstr "" -#: builtins.c:1364 +#: builtins.c:1367 msgid "" -" Toggle the values of variables controlling optional behavior.\n" +"Toggle the values of variables controlling optional behavior.\n" " The -s flag means to enable (set) each OPTNAME; the -u flag\n" " unsets each OPTNAME. The -q flag suppresses output; the exit\n" " status indicates whether each OPTNAME is set or unset. The -o\n" @@ -2524,36 +2558,43 @@ msgid "" " not each is set." msgstr "" -#: builtins.c:1377 +#: builtins.c:1380 msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" " is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character escape\n" +" characters, which are simply copied to standard output, character " +"escape\n" " sequences which are converted and copied to the standard output, and\n" -" format specifications, each of which causes printing of the next successive\n" +" format specifications, each of which causes printing of the next " +"successive\n" " argument. In addition to the standard printf(1) formats, %b means to\n" " expand backslash escape sequences in the corresponding argument, and %q\n" " means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of the\n" +" If the -v option is supplied, the output is placed into the value of " +"the\n" " shell variable VAR rather than being sent to the standard output." msgstr "" -#: builtins.c:1393 +#: builtins.c:1396 msgid "" -" For each NAME, specify how arguments are to be completed.\n" +"For each NAME, specify how arguments are to be completed.\n" " If the -p option is supplied, or if no options are supplied, existing\n" " completion specifications are printed in a way that allows them to be\n" " reused as input. The -r option removes a completion specification for\n" " each NAME, or, if no NAMEs are supplied, all completion specifications." msgstr "" -#: builtins.c:1405 +#: builtins.c:1408 +#, fuzzy msgid "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible completions.\n" +"Display the possible completions depending on the options. Intended\n" +" to be used from within a shell function generating possible " +"completions.\n" " If the optional WORD argument is supplied, matches against WORD are\n" " generated." msgstr "" "ðÏËÁÚÙ×ÁÅÔ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÐÃÉÊ. ðÒÅÄÐÏÌÁÇÁÅÔÓÑ,\n" -" ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ×ÎÕÔÒÉ ÆÕÎËÃÉÊ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ÇÅÎÅÒÉÒÕÀÝÅÊ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ.\n" -" åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï." +" ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ×ÎÕÔÒÉ ÆÕÎËÃÉÊ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, " +"ÇÅÎÅÒÉÒÕÀÝÅÊ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ.\n" +" åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ " +"ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï." diff --git a/po/sv.gmo b/po/sv.gmo new file mode 100644 index 000000000..f4fd696d1 Binary files /dev/null and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 000000000..fb6b853c6 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,2717 @@ +# Swedish translation of bash. +# Copyright (C) 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the bash package. +# Daniel Nylander , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 3.0\n" +"POT-Creation-Date: 2006-10-23 17:20-0400\n" +"PO-Revision-Date: 2005-12-28 16:48+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Report-Msgid-Bugs-To: bug-bash@gnu.org\n" + +#: arrayfunc.c:48 +msgid "bad array subscript" +msgstr "" + +#: arrayfunc.c:362 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "" + +#: bashhist.c:331 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: kan inte skapa: %s" + +#: bashline.c:3030 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3079 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3108 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3142 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:194 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:233 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: kan inte läsa: %s" + +#: builtins/bind.def:248 +#, c-format +msgid "`%s': cannot unbind" +msgstr "" + +#: builtins/bind.def:283 +#, c-format +msgid "`%s': unknown function name" +msgstr "" + +#: builtins/bind.def:291 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:295 +#, fuzzy, c-format +msgid "%s can be invoked via " +msgstr "%s kan startas via %s." + +#: builtins/break.def:128 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:131 +msgid "Returns the context of the current subroutine call." +msgstr "" + +#: builtins/caller.def:132 builtins/caller.def:136 builtins/pushd.def:666 +#: builtins/pushd.def:674 builtins/pushd.def:677 builtins/pushd.def:687 +#: builtins/pushd.def:691 builtins/pushd.def:695 builtins/pushd.def:698 +#: builtins/pushd.def:701 builtins/pushd.def:710 builtins/pushd.def:714 +#: builtins/pushd.def:718 builtins/pushd.def:721 +msgid " " +msgstr "" + +#: builtins/caller.def:133 +msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +msgstr "" + +#: builtins/caller.def:134 +msgid "returns \"$line $subroutine $filename\"; this extra information" +msgstr "" + +#: builtins/caller.def:135 +msgid "can be used used to provide a stack trace." +msgstr "" + +#: builtins/caller.def:137 +msgid "The value of EXPR indicates how many call frames to go back before the" +msgstr "" + +#: builtins/caller.def:138 +msgid "current one; the top frame is frame 0." +msgstr "" + +#: builtins/cd.def:204 +msgid "HOME not set" +msgstr "HOME inte inställd" + +#: builtins/cd.def:216 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:133 test.c:822 +msgid "too many arguments" +msgstr "för mÃ¥nga argument" + +#: builtins/common.c:157 shell.c:474 shell.c:748 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: flagga kräver ett argument" + +#: builtins/common.c:164 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:171 +#, c-format +msgid "%s: not found" +msgstr "%s: inte funnen" + +#: builtins/common.c:180 shell.c:761 +#, c-format +msgid "%s: invalid option" +msgstr "%s: ogiltig flagga" + +#: builtins/common.c:187 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: ogiltigt flaggnamn" + +#: builtins/common.c:194 general.c:230 general.c:235 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "\"%s\": inte en giltig identifierare" + +#: builtins/common.c:201 +#, c-format +msgid "%s: invalid number" +msgstr "%s: ogiltigt nummer" + +#: builtins/common.c:208 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:215 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:222 error.c:451 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: skrivskyddad variabel" + +#: builtins/common.c:230 +#, fuzzy, c-format +msgid "%s: %s out of range" +msgstr "UTANFÖR OMRÅDET" + +#: builtins/common.c:230 builtins/common.c:232 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:232 +#, fuzzy, c-format +msgid "%s out of range" +msgstr "UTANFÖR OMRÅDET" + +#: builtins/common.c:240 +#, c-format +msgid "%s: no such job" +msgstr "%s: inget sÃ¥dant jobb" + +#: builtins/common.c:248 +#, c-format +msgid "%s: no job control" +msgstr "%s: ingen jobbkontroll" + +#: builtins/common.c:250 +msgid "no job control" +msgstr "ingen jobbkontroll" + +#: builtins/common.c:260 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "Begränsat" + +#: builtins/common.c:262 +#, fuzzy +msgid "restricted" +msgstr "Begränsat" + +#: builtins/common.c:270 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:276 +#, c-format +msgid "write error: %s" +msgstr "skrivfel: %s" + +#: builtins/common.c:481 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:547 builtins/common.c:549 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "" + +#: builtins/complete.def:251 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: ogiltigt Ã¥tgärdsnamn" + +#: builtins/complete.def:381 builtins/complete.def:524 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:571 +msgid "warning: -F option may not work as you expect" +msgstr "varning: flaggan -F kanske inte fungerar som du förväntar" + +#: builtins/complete.def:573 +msgid "warning: -C option may not work as you expect" +msgstr "varning: flaggan -C kanske inte fungerar som du förväntar" + +#: builtins/declare.def:106 +msgid "can only be used in a function" +msgstr "kan endast användas i en funktion" + +#: builtins/declare.def:306 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:318 execute_cmd.c:4073 +#, c-format +msgid "%s: readonly function" +msgstr "%s: skrivskyddad funktion" + +#: builtins/declare.def:406 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "" + +#: builtins/enable.def:128 builtins/enable.def:136 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:303 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "" + +#: builtins/enable.def:326 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:450 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: inte dynamiskt inläst" + +#: builtins/enable.def:465 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: kan inte ta bort: %s" + +#: builtins/evalfile.c:129 execute_cmd.c:3930 shell.c:1409 +#, c-format +msgid "%s: is a directory" +msgstr "%s: är en katalog" + +#: builtins/evalfile.c:134 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: inte en vanlig fil" + +#: builtins/evalfile.c:142 +#, c-format +msgid "%s: file is too large" +msgstr "%s: fil är för stor" + +#: builtins/exec.def:205 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: kan inte starta: %s" + +#: builtins/exit.def:83 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:111 +msgid "There are stopped jobs.\n" +msgstr "Det finns stoppade jobb.\n" + +#: builtins/fc.def:258 +msgid "no command found" +msgstr "inget kommando hittades" + +#: builtins/fc.def:328 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:349 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: kan inte öppna temporärfil: %s" + +#: builtins/fg_bg.def:149 +#, c-format +msgid "job %d started without job control" +msgstr "jobb %d startad utan jobbkontroll" + +#: builtins/getopt.c:109 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: ogiltig flagga -- %c\n" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: flagga kräver ett argument -- %c\n" + +#: builtins/hash.def:84 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:130 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/help.def:108 +msgid "Shell commands matching keywords `" +msgstr "" + +#: builtins/help.def:110 +msgid "Shell commands matching keyword `" +msgstr "" + +#: builtins/help.def:138 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:164 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: kan inte öppna: %s" + +#: builtins/help.def:182 +msgid "" +"These shell commands are defined internally. Type `help' to see this list.\n" +"Type `help name' to find out more about the function `name'.\n" +"Use `info bash' to find out more about the shell in general.\n" +"Use `man -k' or `info' to find out more about commands not in this list.\n" +"\n" +"A star (*) next to a name means that the command is disabled.\n" +"\n" +msgstr "" + +#: builtins/history.def:150 +msgid "cannot use more than one of -anrw" +msgstr "kan inte använda mer än en av -anrw" + +#: builtins/history.def:182 +msgid "history position" +msgstr "" + +#: builtins/history.def:400 +#, c-format +msgid "%s: history expansion failed" +msgstr "" + +#: builtins/jobs.def:99 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:187 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:250 +msgid "Unknown error" +msgstr "Okänt fel" + +#: builtins/let.def:94 builtins/let.def:119 expr.c:498 expr.c:513 +#, fuzzy +msgid "expression expected" +msgstr "Förväntade uttryck" + +#: builtins/printf.def:339 +#, c-format +msgid "`%s': missing format character" +msgstr "\"%s\": formattecken saknas" + +#: builtins/printf.def:516 +#, c-format +msgid "`%c': invalid format character" +msgstr "\"%c\": ogiltigt formattecken" + +#: builtins/printf.def:722 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:175 +msgid "no other directory" +msgstr "ingen annan katalog" + +#: builtins/pushd.def:442 +msgid "" +msgstr "" + +#: builtins/pushd.def:663 +msgid "Display the list of currently remembered directories. Directories" +msgstr "" + +#: builtins/pushd.def:664 +msgid "find their way onto the list with the `pushd' command; you can get" +msgstr "" + +#: builtins/pushd.def:665 +msgid "back up through the list with the `popd' command." +msgstr "" + +#: builtins/pushd.def:667 +msgid "The -l flag specifies that `dirs' should not print shorthand versions" +msgstr "" + +#: builtins/pushd.def:668 +msgid "of directories which are relative to your home directory. This means" +msgstr "" + +#: builtins/pushd.def:669 +msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +msgstr "" + +#: builtins/pushd.def:670 +msgid "causes `dirs' to print the directory stack with one entry per line," +msgstr "" + +#: builtins/pushd.def:671 +msgid "prepending the directory name with its position in the stack. The -p" +msgstr "" + +#: builtins/pushd.def:672 +msgid "flag does the same thing, but the stack position is not prepended." +msgstr "" + +#: builtins/pushd.def:673 +msgid "The -c flag clears the directory stack by deleting all of the elements." +msgstr "" + +#: builtins/pushd.def:675 +msgid "+N displays the Nth entry counting from the left of the list shown by" +msgstr "" + +#: builtins/pushd.def:676 builtins/pushd.def:679 +msgid " dirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:678 +msgid "" +"-N displays the Nth entry counting from the right of the list shown by" +msgstr "" + +#: builtins/pushd.def:684 +msgid "Adds a directory to the top of the directory stack, or rotates" +msgstr "" + +#: builtins/pushd.def:685 +msgid "the stack, making the new top of the stack the current working" +msgstr "" + +#: builtins/pushd.def:686 +msgid "directory. With no arguments, exchanges the top two directories." +msgstr "" + +#: builtins/pushd.def:688 +msgid "+N Rotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins/pushd.def:689 +msgid " from the left of the list shown by `dirs', starting with" +msgstr "" + +#: builtins/pushd.def:690 builtins/pushd.def:694 +msgid " zero) is at the top." +msgstr "" + +#: builtins/pushd.def:692 +msgid "-N Rotates the stack so that the Nth directory (counting" +msgstr "" + +#: builtins/pushd.def:693 +msgid " from the right of the list shown by `dirs', starting with" +msgstr "" + +#: builtins/pushd.def:696 +msgid "-n suppress the normal change of directory when adding directories" +msgstr "" + +#: builtins/pushd.def:697 +msgid " to the stack, so only the stack is manipulated." +msgstr "" + +#: builtins/pushd.def:699 +msgid "dir adds DIR to the directory stack at the top, making it the" +msgstr "" + +#: builtins/pushd.def:700 +msgid " new current working directory." +msgstr "" + +#: builtins/pushd.def:702 builtins/pushd.def:722 +msgid "You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins/pushd.def:707 +msgid "Removes entries from the directory stack. With no arguments," +msgstr "" + +#: builtins/pushd.def:708 +msgid "removes the top directory from the stack, and cd's to the new" +msgstr "" + +#: builtins/pushd.def:709 +msgid "top directory." +msgstr "" + +#: builtins/pushd.def:711 +msgid "+N removes the Nth entry counting from the left of the list" +msgstr "" + +#: builtins/pushd.def:712 +msgid " shown by `dirs', starting with zero. For example: `popd +0'" +msgstr "" + +#: builtins/pushd.def:713 +msgid " removes the first directory, `popd +1' the second." +msgstr "" + +#: builtins/pushd.def:715 +msgid "-N removes the Nth entry counting from the right of the list" +msgstr "" + +#: builtins/pushd.def:716 +msgid " shown by `dirs', starting with zero. For example: `popd -0'" +msgstr "" + +#: builtins/pushd.def:717 +msgid " removes the last directory, `popd -1' the next to last." +msgstr "" + +#: builtins/pushd.def:719 +msgid "-n suppress the normal change of directory when removing directories" +msgstr "" + +#: builtins/pushd.def:720 +msgid " from the stack, so only the stack is manipulated." +msgstr "" + +#: builtins/read.def:210 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:233 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/read.def:240 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/read.def:478 +#, c-format +msgid "read error: %d: %s" +msgstr "läsfel: %d: %s" + +#: builtins/return.def:63 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:744 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:781 +#, c-format +msgid "%s: cannot unset" +msgstr "" + +#: builtins/set.def:788 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "" + +#: builtins/set.def:799 +#, c-format +msgid "%s: not an array variable" +msgstr "" + +#: builtins/setattr.def:166 +#, c-format +msgid "%s: not a function" +msgstr "%s: inte en funktion" + +#: builtins/shift.def:66 builtins/shift.def:72 +msgid "shift count" +msgstr "" + +#: builtins/shopt.def:227 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:292 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:115 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:135 +#, c-format +msgid "%s: file not found" +msgstr "%s: fil inte hittad" + +#: builtins/suspend.def:95 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:105 +msgid "cannot suspend a login shell" +msgstr "" + +#: builtins/type.def:232 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:253 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:273 +#, c-format +msgid "%s is a function\n" +msgstr "%s är en funktion\n" + +#: builtins/type.def:298 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:319 +#, c-format +msgid "%s is %s\n" +msgstr "%s är %s\n" + +#: builtins/type.def:339 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:352 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:378 +#, c-format +msgid "`%c': bad command" +msgstr "\"%c\": felaktigt kommando" + +#: builtins/ulimit.def:407 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "" + +#: builtins/ulimit.def:445 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "" + +#: builtins/umask.def:112 +msgid "octal number" +msgstr "oktalt nummer" + +#: builtins/umask.def:226 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:281 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:163 +#, c-format +msgid "last command: %s\n" +msgstr "senaste kommando: %s\n" + +#: error.c:171 +msgid "Aborting..." +msgstr "Avbryter..." + +#: error.c:258 +#, c-format +msgid "%s: warning: " +msgstr "%s: varning: " + +#: error.c:403 +msgid "unknown command error" +msgstr "okänt kommandofel" + +#: error.c:404 +msgid "bad command type" +msgstr "" + +#: error.c:405 +msgid "bad connector" +msgstr "" + +#: error.c:406 +msgid "bad jump" +msgstr "" + +#: error.c:444 +#, c-format +msgid "%s: unbound variable" +msgstr "" + +#: eval.c:176 +msgid "timed out waiting for input: auto-logout\n" +msgstr "" + +#: execute_cmd.c:474 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1058 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIDSFORMAT: \"%c\": ogiltigt formattecken" + +#: execute_cmd.c:3629 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" + +#: execute_cmd.c:3717 +#, c-format +msgid "%s: command not found" +msgstr "%s: kommando hittades inte" + +#: execute_cmd.c:3963 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: felaktig tolk" + +#: execute_cmd.c:4000 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: kan inte starta binärfil" + +#: execute_cmd.c:4112 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "" + +#: expr.c:376 +msgid "syntax error in expression" +msgstr "syntaxfel i uttryck" + +#: expr.c:416 +msgid "attempted assignment to non-variable" +msgstr "" + +#: expr.c:437 expr.c:442 expr.c:752 +msgid "division by 0" +msgstr "delning med 0" + +#: expr.c:468 +msgid "bug: bad expassign token" +msgstr "" + +#: expr.c:510 +msgid "`:' expected for conditional expression" +msgstr "" + +#: expr.c:777 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:822 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:850 +msgid "missing `)'" +msgstr "saknar `)'" + +#: expr.c:893 expr.c:1171 +msgid "syntax error: operand expected" +msgstr "" + +#: expr.c:1173 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1251 +msgid "invalid number" +msgstr "ogiltigt nummer" + +#: expr.c:1255 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1275 +msgid "value too great for base" +msgstr "" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "" + +#: input.c:237 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:245 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" + +#: jobs.c:876 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:983 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1378 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "" + +#: jobs.c:2061 nojobs.c:575 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" + +#: jobs.c:2265 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2524 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2746 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: jobb har avslutats" + +#: jobs.c:2755 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: jobb %d redan i bakgrund" + +#: jobs.c:3546 +msgid "no job control in this shell" +msgstr "ingen jobbkontroll i detta skal" + +#: lib/malloc/malloc.c:298 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:314 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:799 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:876 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:879 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:898 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:904 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1003 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1018 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1024 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:176 +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:183 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:219 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/malloc/watch.c:46 +msgid "allocated" +msgstr "allokerat" + +#: lib/malloc/watch.c:48 +msgid "freed" +msgstr "" + +#: lib/malloc/watch.c:50 +msgid "requesting resize" +msgstr "" + +#: lib/malloc/watch.c:52 +msgid "just resized" +msgstr "" + +#: lib/malloc/watch.c:54 +msgid "bug: unknown operation" +msgstr "bugg: okänd operation" + +#: lib/malloc/watch.c:56 +#, c-format +msgid "malloc: watch alert: %p %s " +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: okänd värd" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: ogiltig tjänst" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:386 +msgid "You have mail in $_" +msgstr "Du har post i $_" + +#: mailcheck.c:411 +msgid "You have new mail in $_" +msgstr "Du har ny post i $_" + +#: mailcheck.c:427 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Posten i %s har lästs\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "syntaxfel: \";\" oväntad" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "syntaxfel: \"((%s))\"" + +#: make_cmd.c:566 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "" + +#: make_cmd.c:741 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2759 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" + +#: parse.y:3071 +msgid "unexpected EOF while looking for `]]'" +msgstr "" + +#: parse.y:3076 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" + +#: parse.y:3080 +msgid "syntax error in conditional expression" +msgstr "" + +#: parse.y:3158 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3162 +msgid "expected `)'" +msgstr "förväntade `)'" + +#: parse.y:3190 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3194 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3234 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3238 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3255 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3259 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3270 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "" + +#: parse.y:3273 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "" + +#: parse.y:3277 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "" + +#: parse.y:4523 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "" + +#: parse.y:4541 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "Syntaxfel nära \"%1\"" + +#: parse.y:4551 +msgid "syntax error: unexpected end of file" +msgstr "" + +#: parse.y:4551 +msgid "syntax error" +msgstr "syntaxfel" + +#: parse.y:4613 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Använd \"%s\" för att lämna skalet.\n" + +#: parse.y:4775 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" + +#: pcomplete.c:1002 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:264 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "" + +#: print_cmd.c:1236 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:99 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:141 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "" + +#: redir.c:145 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "" + +#: redir.c:150 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "" + +#: redir.c:155 +#, c-format +msgid "cannot create temp file for here document: %s" +msgstr "" + +#: redir.c:509 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverk" + +#: redir.c:965 +msgid "redirection error: cannot duplicate fd" +msgstr "" + +#: shell.c:309 +msgid "could not find /tmp, please create!" +msgstr "kunde inte hitta /tmp, vänligen skapa den!" + +#: shell.c:313 +msgid "/tmp must be a valid directory name" +msgstr "/tmp mÃ¥ste vara ett giltigt katalognamn" + +#: shell.c:850 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: ogiltig flagga" + +#: shell.c:1600 +msgid "I have no name!" +msgstr "Jag har inget namn!" + +#: shell.c:1735 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Användning:\t%s [GNU lÃ¥ng flagga] [flagga] ...\n" +"\t%s [GNU lÃ¥ng flagga] [flagga] skriptfil ...\n" + +#: shell.c:1737 +msgid "GNU long options:\n" +msgstr "GNU lÃ¥nga flaggor:\n" + +#: shell.c:1741 +msgid "Shell options:\n" +msgstr "Skalflaggor:\n" + +#: shell.c:1742 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD eller -c kommando eller -O shopt_option\t\t(endast anrop)\n" + +#: shell.c:1757 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s eller -o flagga\n" + +#: shell.c:1763 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "Skriv \"%s -c \"help set\"\" för mer information om skalflaggor.\n" + +#: shell.c:1764 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Skriv \"%s -c help\" för mer information om skalets inbyggda kommandon.\n" + +#: shell.c:1765 +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Använd kommandot \"bashbug\" för att rapportera buggar.\n" + +#: sig.c:557 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: subst.c:1160 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "" + +#: subst.c:2328 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "" + +#: subst.c:4265 subst.c:4281 +msgid "cannot make pipe for process substitution" +msgstr "" + +#: subst.c:4312 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4357 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "" + +#: subst.c:4359 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "" + +#: subst.c:4367 +#, c-format +msgid "cannout reset nodelay mode for fd %d" +msgstr "" + +#: subst.c:4377 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" + +#: subst.c:4552 +msgid "cannot make pipe for command substitution" +msgstr "" + +#: subst.c:4588 +msgid "cannot make child for command substitution" +msgstr "" + +#: subst.c:4605 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5068 +#, fuzzy, c-format +msgid "%s: parameter null or not set" +msgstr "parameter är tom eller inte satt" + +#: subst.c:5342 +#, c-format +msgid "%s: substring expression < 0" +msgstr "" + +#: subst.c:6179 +#, c-format +msgid "%s: bad substitution" +msgstr "" + +#: subst.c:6255 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "" + +#: subst.c:7826 +#, c-format +msgid "no match: %s" +msgstr "ingen match: %s" + +#: test.c:145 +#, fuzzy +msgid "argument expected" +msgstr "(argument förväntades)" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "" + +#: test.c:262 +#, fuzzy +msgid "`)' expected" +msgstr "\")\" förväntas\n" + +#: test.c:264 +#, fuzzy, c-format +msgid "`)' expected, found %s" +msgstr "\")\" förväntades, fann %s\n" + +#: test.c:279 test.c:688 test.c:691 +#, fuzzy, c-format +msgid "%s: unary operator expected" +msgstr "%s: unär operator förväntas\n" + +#: test.c:444 test.c:731 +#, fuzzy, c-format +msgid "%s: binary operator expected" +msgstr "%s: binär operator förväntas\n" + +#: test.c:806 +msgid "missing `]'" +msgstr "saknar \"]\"" + +#: trap.c:200 +msgid "invalid signal number" +msgstr "" + +#: trap.c:315 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:319 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:355 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "" + +#: variables.c:334 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "" + +#: variables.c:711 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1670 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:2813 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3030 variables.c:3039 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3045 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3472 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3485 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3557 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:82 +#, fuzzy +msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n" + +#: xmalloc.c:93 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:95 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:115 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:117 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:151 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:153 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:175 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:177 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:244 +msgid "" +"`alias' with no arguments or with the -p option prints the list\n" +" of aliases in the form alias NAME=VALUE on standard output.\n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded. Alias returns\n" +" true unless a NAME is given for which no alias has been defined." +msgstr "" + +#: builtins.c:257 +msgid "" +"Remove NAMEs from the list of defined aliases. If the -a option is given,\n" +" then remove all alias definitions." +msgstr "" + +#: builtins.c:266 +msgid "" +"Bind a key sequence to a Readline function or a macro, or set\n" +" a Readline variable. The non-option argument syntax is equivalent\n" +" to that found in ~/.inputrc, but must be passed as a single argument:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind accepts the following options:\n" +" -m keymap Use `keymap' as the keymap for the duration of " +"this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" -f filename Read key bindings from FILENAME.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input." +msgstr "" + +#: builtins.c:297 +msgid "" +"Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +" break N levels." +msgstr "" + +#: builtins.c:304 +msgid "" +"Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resume at the N-th enclosing loop." +msgstr "" + +#: builtins.c:311 +msgid "" +"Run a shell builtin. This is useful when you wish to rename a\n" +" shell builtin to be a function, but need the functionality of the\n" +" builtin within the function itself." +msgstr "" + +#: builtins.c:320 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR,\n" +" returns \"$line $subroutine $filename\"; this extra information\n" +" can be used to provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0." +msgstr "" + +#: builtins.c:334 +msgid "" +"Change the current directory to DIR. The variable $HOME is the\n" +" default DIR. The variable CDPATH defines the search path for\n" +" the directory containing DIR. Alternative directory names in CDPATH\n" +" are separated by a colon (:). A null directory name is the same as\n" +" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" +" then CDPATH is not used. If the directory is not found, and the\n" +" shell option `cdable_vars' is set, then try the word as a variable\n" +" name. If that variable has a value, then cd to the value of that\n" +" variable. The -P option says to use the physical directory structure\n" +" instead of following symbolic links; the -L option forces symbolic " +"links\n" +" to be followed." +msgstr "" + +#: builtins.c:350 +msgid "" +"Print the current working directory. With the -P option, pwd prints\n" +" the physical directory, without any symbolic links; the -L option\n" +" makes pwd follow symbolic links." +msgstr "" + +#: builtins.c:358 +msgid "No effect; the command does nothing. A zero exit code is returned." +msgstr "" + +#: builtins.c:364 +msgid "Return a successful result." +msgstr "" + +#: builtins.c:370 +msgid "Return an unsuccessful result." +msgstr "" + +#: builtins.c:376 +msgid "" +"Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +" function called `ls', and you wish to call the command `ls', you can\n" +" say \"command ls\". If the -p option is given, a default value is used\n" +" for PATH that is guaranteed to find all of the standard utilities. If\n" +" the -V or -v option is given, a string is printed describing COMMAND.\n" +" The -V option produces a more verbose description." +msgstr "" + +#: builtins.c:387 +msgid "" +"Declare variables and/or give them attributes. If no NAMEs are\n" +" given, then display the values of variables instead. The -p option\n" +" will display the attributes and values of each NAME.\n" +" \n" +" The flags are:\n" +" \n" +" -a\tto make NAMEs arrays (if supported)\n" +" -f\tto select from among function names only\n" +" -F\tto display function names (and line number and source file name " +"if\n" +" \tdebugging) without definitions\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -x\tto make NAMEs export\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" `let') done when the variable is assigned to.\n" +" \n" +" When displaying values of variables, -f displays a function's name\n" +" and definition. The -F option restricts the display to function\n" +" name only.\n" +" \n" +" Using `+' instead of `-' turns off the given attribute instead. When\n" +" used in a function, makes NAMEs local, as with the `local' command." +msgstr "" + +#: builtins.c:416 +msgid "Obsolete. See `declare'." +msgstr "FörÃ¥ldrad. Se \"declare\"." + +#: builtins.c:422 +msgid "" +"Create a local variable called NAME, and give it VALUE. LOCAL\n" +" can only be used within a function; it makes the variable NAME\n" +" have a visible scope restricted to that function and its children." +msgstr "" + +#: builtins.c:431 +msgid "" +"Output the ARGs. If -n is specified, the trailing newline is\n" +" suppressed. If the -e option is given, interpretation of the\n" +" following backslash-escaped characters is turned on:\n" +" \t\\a\talert (bell)\n" +" \t\\b\tbackspace\n" +" \t\\c\tsuppress trailing newline\n" +" \t\\E\tescape character\n" +" \t\\f\tform feed\n" +" \t\\n\tnew line\n" +" \t\\r\tcarriage return\n" +" \t\\t\thorizontal tab\n" +" \t\\v\tvertical tab\n" +" \t\\\\\tbackslash\n" +" \t\\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t\t0 to 3 octal digits\n" +" \n" +" You can explicitly turn off the interpretation of the above characters\n" +" with the -E option." +msgstr "" + +#: builtins.c:456 +msgid "" +"Output the ARGs. If -n is specified, the trailing newline is suppressed." +msgstr "" + +#: builtins.c:463 +msgid "" +"Enable and disable builtin shell commands. This allows\n" +" you to use a disk command which has the same name as a shell\n" +" builtin without specifying a full pathname. If -n is used, the\n" +" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +" to use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'. On systems supporting dynamic\n" +" loading, the -f option may be used to load new builtins from the\n" +" shared object FILENAME. The -d option will delete a builtin\n" +" previously loaded with -f. If no non-option names are given, or\n" +" the -p option is supplied, a list of builtins is printed. The\n" +" -a option means to print every builtin with an indication of whether\n" +" or not it is enabled. The -s option restricts the output to the " +"POSIX.2\n" +" `special' builtins. The -n option displays a list of all disabled " +"builtins." +msgstr "" + +#: builtins.c:481 +msgid "Read ARGs as input to the shell and execute the resulting command(s)." +msgstr "" + +#: builtins.c:487 +msgid "" +"Getopts is used by shell procedures to parse positional parameters.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead." +msgstr "" + +#: builtins.c:522 +msgid "" +"Exec FILE, replacing this shell with the specified program.\n" +" If FILE is not specified, the redirections take effect in this\n" +" shell. If the first argument is `-l', then place a dash in the\n" +" zeroth arg passed to FILE, as login does. If the `-c' option\n" +" is supplied, FILE is executed with a null environment. The `-a'\n" +" option means to make set argv[0] of the executed process to NAME.\n" +" If the file cannot be executed and the shell is not interactive,\n" +" then the shell exits, unless the shell option `execfail' is set." +msgstr "" + +#: builtins.c:535 +msgid "" +"Exit the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:542 +msgid "Logout of a login shell." +msgstr "" + +#: builtins.c:549 +msgid "" +"fc is used to list or edit and re-execute commands from the history list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" -e ENAME selects which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" then vi.\n" +" \n" +" -l means list lines instead of editing.\n" +" -n means no line numbers listed.\n" +" -r means reverse the order of the lines (making it newest listed " +"first).\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command." +msgstr "" + +#: builtins.c:574 +msgid "" +"Place JOB_SPEC in the foreground, and make it the current job. If\n" +" JOB_SPEC is not present, the shell's notion of the current job is\n" +" used." +msgstr "" + +#: builtins.c:584 +msgid "" +"Place each JOB_SPEC in the background, as if it had been started with\n" +" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" +" job is used." +msgstr "" + +#: builtins.c:593 +msgid "" +"For each NAME, the full pathname of the command is determined and\n" +" remembered. If the -p option is supplied, PATHNAME is used as the\n" +" full pathname of NAME, and no path search is performed. The -r\n" +" option causes the shell to forget all remembered locations. The -d\n" +" option causes the shell to forget the remembered location of each NAME.\n" +" If the -t option is supplied the full pathname to which each NAME\n" +" corresponds is printed. If multiple NAME arguments are supplied with\n" +" -t, the NAME is printed before the hashed full pathname. The -l option\n" +" causes output to be displayed in a format that may be reused as input.\n" +" If no arguments are given, information about remembered commands is " +"displayed." +msgstr "" + +#: builtins.c:609 +msgid "" +"Display helpful information about builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise a list of the builtins is printed. The -s option\n" +" restricts the output for each builtin command matching PATTERN to\n" +" a short usage synopsis." +msgstr "" + +#: builtins.c:621 +msgid "" +"Display the history list with line numbers. Lines listed with\n" +" with a `*' have been modified. Argument of N says to list only\n" +" the last N lines. The `-c' option causes the history list to be\n" +" cleared by deleting all of the entries. The `-d' option deletes\n" +" the history entry at offset OFFSET. The `-w' option writes out the\n" +" current history to the history file; `-r' means to read the file and\n" +" append the contents to the history list instead. `-a' means\n" +" to append history lines from this session to the history file.\n" +" Argument `-n' means to read all history lines not already read\n" +" from the history file and append them to the history list.\n" +" \n" +" If FILENAME is given, then that is used as the history file else\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" If the -s option is supplied, the non-option ARGs are appended to\n" +" the history list as a single entry. The -p option means to perform\n" +" history expansion on each ARG and display the result, without storing\n" +" anything in the history list.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed otherwise." +msgstr "" + +#: builtins.c:649 +msgid "" +"Lists the active jobs. The -l option lists process id's in addition\n" +" to the normal information; the -p option lists process id's only.\n" +" If -n is given, only processes that have changed status since the last\n" +" notification are printed. JOBSPEC restricts output to that job. The\n" +" -r and -s options restrict output to running and stopped jobs only,\n" +" respectively. Without options, the status of all active jobs is\n" +" printed. If -x is given, COMMAND is run after all job specifications\n" +" that appear in ARGS have been replaced with the process ID of that " +"job's\n" +" process group leader." +msgstr "" + +#: builtins.c:665 +msgid "" +"By default, removes each JOBSPEC argument from the table of active jobs.\n" +" If the -h option is given, the job is not removed from the table, but " +"is\n" +" marked so that SIGHUP is not sent to the job if the shell receives a\n" +" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +"all\n" +" jobs from the job table; the -r option means to remove only running jobs." +msgstr "" + +#: builtins.c:676 +msgid "" +"Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" +" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" +" lists the signal names; if arguments follow `-l' they are assumed to\n" +" be signal numbers for which names should be listed. Kill is a shell\n" +" builtin for two reasons: it allows job IDs to be used instead of\n" +" process IDs, and, if you have reached the limit on processes that\n" +" you can create, you don't have to start a process to kill another one." +msgstr "" + +#: builtins.c:688 +msgid "" +"Each ARG is an arithmetic expression to be evaluated. Evaluation\n" +" is done in fixed-width integers with no check for overflow, though\n" +" division by 0 is trapped and flagged as an error. The following\n" +" list of operators is grouped into levels of equal-precedence operators.\n" +" The levels are listed in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" +" otherwise." +msgstr "" + +#: builtins.c:731 +msgid "" +"One line is read from the standard input, or from file descriptor FD if the\n" +" -u option is supplied, and the first word is assigned to the first " +"NAME,\n" +" the second word to the second NAME, and so on, with leftover words " +"assigned\n" +" to the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters. If no NAMEs are supplied, the line read is stored in the " +"REPLY\n" +" variable. If the -r option is given, this signifies `raw' input, and\n" +" backslash escaping is disabled. The -d option causes read to continue\n" +" until the first character of DELIM is read, rather than newline. If the " +"-p\n" +" option is supplied, the string PROMPT is output without a trailing " +"newline\n" +" before attempting to read. If -a is supplied, the words read are " +"assigned\n" +" to sequential indices of ARRAY, starting at zero. If -e is supplied " +"and\n" +" the shell is interactive, readline is used to obtain the line. If -n " +"is\n" +" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" +" characters have been read. The -s option causes input coming from a\n" +" terminal to not be echoed.\n" +" \n" +" The -t option causes read to time out and return failure if a complete " +"line\n" +" of input is not read within TIMEOUT seconds. If the TMOUT variable is " +"set,\n" +" its value is the default timeout. The return code is zero, unless end-" +"of-file\n" +" is encountered, read times out, or an invalid file descriptor is " +"supplied as\n" +" the argument to -u." +msgstr "" + +#: builtins.c:757 +msgid "" +"Causes a function to exit with the return value specified by N. If N\n" +" is omitted, the return status is that of the last command." +msgstr "" + +#: builtins.c:764 +msgid "" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive " +"commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status " +"of\n" +" the last command to exit with a non-zero " +"status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the 1003.2 standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not " +"match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid " +"and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed." +msgstr "" + +#: builtins.c:837 +msgid "" +"For each NAME, remove the corresponding variable or function. Given\n" +" the `-v', unset will only act on variables. Given the `-f' flag,\n" +" unset will only act on functions. With neither flag, unset first\n" +" tries to unset a variable, and if that fails, then tries to unset a\n" +" function. Some variables cannot be unset; also see readonly." +msgstr "" + +#: builtins.c:847 +msgid "" +"NAMEs are marked for automatic export to the environment of\n" +" subsequently executed commands. If the -f option is given,\n" +" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +" is given, a list of all names that are exported in this shell is\n" +" printed. An argument of `-n' says to remove the export property\n" +" from subsequent NAMEs. An argument of `--' disables further option\n" +" processing." +msgstr "" + +#: builtins.c:859 +msgid "" +"The given NAMEs are marked readonly and the values of these NAMEs may\n" +" not be changed by subsequent assignment. If the -f option is given,\n" +" then functions corresponding to the NAMEs are so marked. If no\n" +" arguments are given, or if `-p' is given, a list of all readonly names\n" +" is printed. The `-a' option means to treat each NAME as\n" +" an array variable. An argument of `--' disables further option\n" +" processing." +msgstr "" + +#: builtins.c:871 +msgid "" +"The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +" not given, it is assumed to be 1." +msgstr "" + +#: builtins.c:878 builtins.c:887 +msgid "" +"Read and execute commands from FILENAME and return. The pathnames\n" +" in $PATH are used to find the directory containing FILENAME. If any\n" +" ARGUMENTS are supplied, they become the positional parameters when\n" +" FILENAME is executed." +msgstr "" + +#: builtins.c:897 +msgid "" +"Suspend the execution of this shell until it receives a SIGCONT\n" +" signal. The `-f' if specified says not to complain about this\n" +" being a login shell if it is; just suspend anyway." +msgstr "" + +#: builtins.c:906 +msgid "" +"Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 " +"lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2." +msgstr "" + +#: builtins.c:976 +msgid "" +"This is a synonym for the \"test\" builtin, but the last\n" +" argument must be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:983 +msgid "" +"Print the accumulated user and system times for processes run from\n" +" the shell." +msgstr "" + +#: builtins.c:990 +msgid "" +"The command ARG is to be read and executed when the shell receives\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" +" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" +" is DEBUG, ARG is executed after every simple command. If the`-p' " +"option\n" +" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" +" displayed. If no arguments are supplied or if only `-p' is given, trap\n" +" prints the list of commands associated with each signal. Each " +"SIGNAL_SPEC\n" +" is either a signal name in or a signal number. Signal names\n" +" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" +" a list of signal names and their corresponding numbers. Note that a\n" +" signal can be sent to the shell with \"kill -signal $$\"." +msgstr "" + +#: builtins.c:1009 +msgid "" +"For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" If the -t option is used, `type' outputs a single word which is one of\n" +" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" +" alias, shell reserved word, shell function, shell builtin, disk file,\n" +" or unfound, respectively.\n" +" \n" +" If the -p flag is used, `type' either returns the name of the disk\n" +" file that would be executed, or nothing if `type -t NAME' would not\n" +" return `file'.\n" +" \n" +" If the -a flag is used, `type' displays all of the places that contain\n" +" an executable named `file'. This includes aliases, builtins, and\n" +" functions, if and only if the -p flag is not also used.\n" +" \n" +" The -f flag suppresses shell function lookup.\n" +" \n" +" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" +" builtin, or function, and returns the name of the disk file that would\n" +" be executed." +msgstr "" + +#: builtins.c:1036 +msgid "" +"Ulimit provides control over the resources available to processes\n" +" started by the shell, on systems that allow such control. If an\n" +" option is given, it is interpreted as follows:\n" +" \n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource;\n" +" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" +" the current soft limit, the current hard limit, and no limit, " +"respectively.\n" +" Otherwise, the current value of the specified resource is printed.\n" +" If no option is given, then -f is assumed. Values are in 1024-byte\n" +" increments, except for -t, which is in seconds, -p, which is in\n" +" increments of 512 bytes, and -u, which is an unscaled number of\n" +" processes." +msgstr "" + +#: builtins.c:1074 +msgid "" +"The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +" `-S' is supplied, the current value of the mask is printed. The `-S'\n" +" option makes the output symbolic; otherwise an octal number is output.\n" +" If `-p' is supplied, and MODE is omitted, the output is in a form\n" +" that may be used as input. If MODE begins with a digit, it is\n" +" interpreted as an octal number, otherwise it is a symbolic mode string\n" +" like that accepted by chmod(1)." +msgstr "" + +#: builtins.c:1087 +msgid "" +"Wait for the specified process and report its termination status. If\n" +" N is not given, all currently active child processes are waited for,\n" +" and the return code is zero. N may be a process ID or a job\n" +" specification; if a job spec is given, all processes in the job's\n" +" pipeline are waited for." +msgstr "" + +#: builtins.c:1099 +msgid "" +"Wait for the specified process and report its termination status. If\n" +" N is not given, all currently active child processes are waited for,\n" +" and the return code is zero. N is a process ID; if it is not given,\n" +" all child processes of the shell are waited for." +msgstr "" + +#: builtins.c:1109 +msgid "" +"The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed." +msgstr "" + +#: builtins.c:1118 +msgid "" +"Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1." +msgstr "" + +#: builtins.c:1131 +msgid "" +"The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed." +msgstr "" + +#: builtins.c:1147 +msgid "" +"Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" The return status is the return status of PIPELINE. The `-p' option\n" +" prints the timing summary in a slightly different format. This uses\n" +" the value of the TIMEFORMAT variable as the output format." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns." +msgstr "" + +#: builtins.c:1164 +msgid "" +"The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true." +msgstr "" + +#: builtins.c:1176 +msgid "" +"Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero." +msgstr "" + +#: builtins.c:1183 +msgid "" +"Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero." +msgstr "" + +#: builtins.c:1190 +msgid "" +"Create a simple command invoked by NAME which runs COMMANDS.\n" +" Arguments on the command line along with NAME are passed to the\n" +" function as $0 .. $n." +msgstr "" + +#: builtins.c:1198 +msgid "" +"Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands." +msgstr "" + +#: builtins.c:1205 +msgid "" +"Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'." +msgstr "" + +#: builtins.c:1215 +msgid "" +"The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\"." +msgstr "" + +#: builtins.c:1222 +msgid "" +"Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators\n" +" \n" +" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" +" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" +" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of " +"the\n" +" operator is used as a pattern and pattern matching is performed. The\n" +" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value." +msgstr "" + +#: builtins.c:1240 +msgid "" +"BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directries given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1295 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -n\tsuppress the normal change of directory when adding directories\n" +" \tto the stack, so only the stack is manipulated.\n" +" \n" +" dir\tadds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins.c:1321 +msgid "" +"Removes entries from the directory stack. With no arguments,\n" +" removes the top directory from the stack, and cd's to the new\n" +" top directory.\n" +" \n" +" +N\tremoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tremoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" -n\tsuppress the normal change of directory when removing directories\n" +" \tfrom the stack, so only the stack is manipulated.\n" +" \n" +" You can see the directory stack with the `dirs' command." +msgstr "" + +#: builtins.c:1344 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" The -l flag specifies that `dirs' should not print shorthand versions\n" +" of directories which are relative to your home directory. This means\n" +" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" +" causes `dirs' to print the directory stack with one entry per line,\n" +" prepending the directory name with its position in the stack. The -p\n" +" flag does the same thing, but the stack position is not prepended.\n" +" The -c flag clears the directory stack by deleting all of the elements.\n" +" \n" +" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tdisplays the Nth entry counting from the right of the list shown by\n" +" \tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins.c:1367 +msgid "" +"Toggle the values of variables controlling optional behavior.\n" +" The -s flag means to enable (set) each OPTNAME; the -u flag\n" +" unsets each OPTNAME. The -q flag suppresses output; the exit\n" +" status indicates whether each OPTNAME is set or unset. The -o\n" +" option restricts the OPTNAMEs to those defined for use with\n" +" `set -o'. With no options, or with the -p option, a list of all\n" +" settable options is displayed, with an indication of whether or\n" +" not each is set." +msgstr "" + +#: builtins.c:1380 +msgid "" +"printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" +" is a character string which contains three types of objects: plain\n" +" characters, which are simply copied to standard output, character " +"escape\n" +" sequences which are converted and copied to the standard output, and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument. In addition to the standard printf(1) formats, %b means to\n" +" expand backslash escape sequences in the corresponding argument, and %q\n" +" means to quote the argument in a way that can be reused as shell input.\n" +" If the -v option is supplied, the output is placed into the value of " +"the\n" +" shell variable VAR rather than being sent to the standard output." +msgstr "" + +#: builtins.c:1396 +msgid "" +"For each NAME, specify how arguments are to be completed.\n" +" If the -p option is supplied, or if no options are supplied, existing\n" +" completion specifications are printed in a way that allows them to be\n" +" reused as input. The -r option removes a completion specification for\n" +" each NAME, or, if no NAMEs are supplied, all completion specifications." +msgstr "" + +#: builtins.c:1408 +msgid "" +"Display the possible completions depending on the options. Intended\n" +" to be used from within a shell function generating possible " +"completions.\n" +" If the optional WORD argument is supplied, matches against WORD are\n" +" generated." +msgstr "" + +#, fuzzy +#~ msgid "`%s': invalid alias name" +#~ msgstr "Ogiltigt aliasnamn" + +#~ msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid " -l List names of functions." +#~ msgstr " -l Lista namn pÃ¥ funktioner." + +#~ msgid "The flags are:" +#~ msgstr "Flaggorna är:" + +#, fuzzy +#~ msgid "name only." +#~ msgstr "En&dast namn" + +#, fuzzy +#~ msgid "printed." +#~ msgstr "Utskrivet" + +#, fuzzy +#~ msgid "string." +#~ msgstr "STRÄNG" + +#, fuzzy +#~ msgid "used." +#~ msgstr "Anv_änt" + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#, fuzzy +#~ msgid " -o option-name" +#~ msgstr "Inställningsnamn" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport samma som -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand samma som -B" + +#~ msgid " errexit same as -e" +#~ msgstr " errexit samma som -e" + +#~ msgid " errtrace same as -E" +#~ msgstr " errtrace samma som -E" + +#~ msgid " functrace same as -T" +#~ msgstr " functrace samma som -T" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall samma som -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand samma som -H" + +#~ msgid " keyword same as -k" +#~ msgstr " keyword samma som -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor samma som -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber samma som -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec samma som -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob samma som -f" + +#~ msgid " notify same as -b" +#~ msgstr " notify samma som -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset samma som -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd samma som -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical samma som -P" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged samma som -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose samma som -v" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace samma som -x" + +#, fuzzy +#~ msgid "processing." +#~ msgstr "Bearbetar..." + +#, fuzzy +#~ msgid " modification date)." +#~ msgstr "Ändrad datum" + +# Operander? +#~ msgid "String operators:" +#~ msgstr "Strängoperatörer:" + +#, fuzzy +#~ msgid " -n STRING" +#~ msgstr "STRÄNG" + +# Operander? +#~ msgid "Other operators:" +#~ msgstr "Övriga operatörer:" + +#, fuzzy +#~ msgid "the shell." +#~ msgstr "Skal: " + +#, fuzzy +#~ msgid "command name." +#~ msgstr "Kommandonamn" + +#, fuzzy +#~ msgid "processes." +#~ msgstr "Processer" + +#~ msgid "generated." +#~ msgstr "genererad." diff --git a/shell.c b/shell.c index 6693f852e..15c84f258 100644 --- a/shell.c +++ b/shell.c @@ -1426,7 +1426,7 @@ open_shell_script (script_name) /* Open the script. But try to move the file descriptor to a randomly large one, in the hopes that any descriptors used by the script will not match with ours. */ - fd = move_to_high_fd (fd, 0, -1); + fd = move_to_high_fd (fd, 1, -1); #if defined (__CYGWIN__) && defined (O_TEXT) setmode (fd, O_TEXT); diff --git a/subst.c b/subst.c index 37f5d00b8..4624c48ec 100644 --- a/subst.c +++ b/subst.c @@ -5707,6 +5707,11 @@ parameter_brace_patsub (varname, value, patsub, quoted) vtype &= ~VT_STARSUB; mflags = 0; + if (patsub && *patsub == '/') + { + mflags |= MATCH_GLOBREP; + patsub++; + } /* Malloc this because expand_string_if_necessary or one of the expansion functions in its call chain may free it on a substitution error. */ @@ -5741,13 +5746,12 @@ parameter_brace_patsub (varname, value, patsub, quoted) } /* ksh93 doesn't allow the match specifier to be a part of the expanded - pattern. This is an extension. */ + pattern. This is an extension. Make sure we don't anchor the pattern + at the beginning or end of the string if we're doing global replacement, + though. */ p = pat; - if (pat && pat[0] == '/') - { - mflags |= MATCH_GLOBREP|MATCH_ANY; - p++; - } + if (mflags & MATCH_GLOBREP) + mflags |= MATCH_ANY; else if (pat && pat[0] == '#') { mflags |= MATCH_BEG; diff --git a/support/shobj-conf b/support/shobj-conf index 81e5a1d41..65b5ecff1 100755 --- a/support/shobj-conf +++ b/support/shobj-conf @@ -114,7 +114,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*) SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;; -freebsd2* | netbsd*) +freebsd2*) SHOBJ_CFLAGS=-fpic SHOBJ_LD=ld SHOBJ_LDFLAGS='-x -Bshareable' @@ -182,7 +182,7 @@ darwin*|macosx*) SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1 ;; -openbsd*) +openbsd*|netbsd*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' diff --git a/tests/RUN-ONE-TEST b/tests/RUN-ONE-TEST index 3efcf32d6..72ec06a2c 100755 --- a/tests/RUN-ONE-TEST +++ b/tests/RUN-ONE-TEST @@ -1,4 +1,4 @@ -BUILD_DIR=/usr/local/build/chet/bash/bash-current +BUILD_DIR=/usr/local/build/bash/bash-current THIS_SH=$BUILD_DIR/bash PATH=$PATH:$BUILD_DIR diff --git a/tests/RUN-ONE-TEST~ b/tests/RUN-ONE-TEST~ new file mode 100755 index 000000000..3efcf32d6 --- /dev/null +++ b/tests/RUN-ONE-TEST~ @@ -0,0 +1,9 @@ +BUILD_DIR=/usr/local/build/chet/bash/bash-current +THIS_SH=$BUILD_DIR/bash +PATH=$PATH:$BUILD_DIR + +export THIS_SH PATH + +rm -f /tmp/xx + +/bin/sh "$@" diff --git a/tests/cond.right b/tests/cond.right index 06f36a9a6..2e1675497 100644 --- a/tests/cond.right +++ b/tests/cond.right @@ -33,5 +33,10 @@ returns: 0 returns: 1 returns: 0 ok +jbig2dec +found 1 +libc +found 2 +libc ok 42 ok 43 diff --git a/tests/cond.tests b/tests/cond.tests index 3abfa9d75..78d2e7855 100755 --- a/tests/cond.tests +++ b/tests/cond.tests @@ -154,6 +154,24 @@ if [[ $STR = $PAT ]]; then echo ok fi +# test the regular expression conditional operator +[[ jbig2dec-0.9-i586-001.tgz =~ ([^-]+)-([^-]+)-([^-]+)-0*([1-9][0-9]*)\.tgz ]] +echo ${BASH_REMATCH[1]} + +LDD_BASH=" linux-gate.so.1 => (0xffffe000) + libreadline.so.5 => /lib/libreadline.so.5 (0xb7f91000) + libhistory.so.5 => /lib/libhistory.so.5 (0xb7f8a000) + libncurses.so.5 => /lib/libncurses.so.5 (0xb7f55000) + libdl.so.2 => /lib/libdl.so.2 (0xb7f51000) + libc.so.6 => /lib/libc.so.6 (0xb7e34000) + /lib/ld-linux.so.2 (0xb7fd0000)" + +[[ "$LDD_BASH" =~ "libc" ]] && echo "found 1" +echo ${BASH_REMATCH[@]} + +[[ "$LDD_BASH" =~ libc ]] && echo "found 2" +echo ${BASH_REMATCH[@]} + # bug in all versions up to and including bash-2.05b if [[ "123abc" == *?(a)bc ]]; then echo ok 42; else echo bad 42; fi if [[ "123abc" == *?(a)bc ]]; then echo ok 43; else echo bad 43; fi diff --git a/tests/cond.tests~ b/tests/cond.tests~ new file mode 100755 index 000000000..c04b0a250 --- /dev/null +++ b/tests/cond.tests~ @@ -0,0 +1,163 @@ +# +# the test/[ code is tested elsewhere, and the [[...]] just uses the same +# code. this tests the special features of [[...]] +# +TDIR=/usr/homes/chet + +# this one is straight out of the ksh88 book +[[ foo > bar && $PWD -ef . ]] +echo returns: $? + +# [[ x ]] is equivalent to [[ -n x ]] +[[ x ]] +echo returns: $? + +# [[ ! x ]] is equivalent to [[ ! -n x ]] +[[ ! x ]] +echo returns: $? + +# ! binds tighter than test/[ -- it binds to a term, not an expression +[[ ! x || x ]] +echo returns: $? + +# parenthesized terms didn't work right until post-2.04 +[[ a ]] +echo returns: $? + +[[ (a) ]] +echo returns: $? + +[[ -n a ]] +echo returns: $? + +[[ (-n a) ]] +echo returns: $? + +# unset variables don't need to be quoted +[[ -n $UNSET ]] +echo returns: $? + +[[ -z $UNSET ]] +echo returns: $? + +# the ==/= and != operators do pattern matching +[[ $TDIR == /usr/homes/* ]] +echo returns: $? + +# ...but you can quote any part of the pattern to have it matched as a string +[[ $TDIR == /usr/homes/\* ]] +echo returns: $? + +[[ $TDIR == '/usr/homes/*' ]] +echo returns: $? + +# if the first part of && fails, the second is not executed +[[ -n $UNSET && $UNSET == foo ]] +echo returns: $? + +[[ -z $UNSET && $UNSET == foo ]] +echo returns: $? + +# if the first part of || succeeds, the second is not executed +[[ -z $UNSET || -d $PWD ]] +echo returns: $? + +# if the rhs were executed, it would be an error +[[ -n $TDIR || $HOME -ef ${H*} ]] +echo returns: $? + +[[ -n $TDIR && -z $UNSET || $HOME -ef ${H*} ]] +echo returns: $? + +# && has a higher parsing precedence than || +[[ -n $TDIR && -n $UNSET || $TDIR -ef . ]] +echo returns: $? + +# ...but expressions in parentheses may be used to override precedence rules +[[ -n $TDIR || -n $UNSET && $PWD -ef xyz ]] +echo returns: $? + +[[ ( -n $TDIR || -n $UNSET ) && $PWD -ef xyz ]] +echo returns: $? + +# some arithmetic tests for completeness -- see what happens with missing +# operands, bad expressions, makes sure arguments are evaluated as +# arithmetic expressions, etc. + +unset IVAR A +[[ 7 -gt $IVAR ]] +echo returns: $? + +[[ $IVAR -gt 7 ]] +echo returns: $? + +IVAR=4 +[[ $IVAR -gt 7 ]] +echo returns: $? + +[[ 7 -eq 4+3 ]] +echo returns: $? + +[[ 7 -eq 4+ ]] +echo returns: $? + +IVAR=4+3 +[[ $IVAR -eq 7 ]] +echo returns: $? + +A=7 +[[ $IVAR -eq A ]] +echo returns: $? + +unset IVAR A + +# more pattern matching tests + +[[ $filename == *.c ]] +echo returns: $? + +filename=patmatch.c + +[[ $filename == *.c ]] +echo returns: $? + +# the extended globbing features may be used when matching patterns +shopt -s extglob + +arg=-7 + +[[ $arg == -+([0-9]) ]] +echo returns: $? + +arg=-H + +[[ $arg == -+([0-9]) ]] +echo returns: $? + +arg=+4 +[[ $arg == ++([0-9]) ]] +echo returns: $? + +# make sure the null string is never matched if the string is not null +STR=file.c +PAT= + +if [[ $STR = $PAT ]]; then + echo oops +fi + +# but that if the string is null, a null pattern is matched correctly +STR= +PAT= + +if [[ $STR = $PAT ]]; then + echo ok +fi + +# test the regular expression conditional operator +[[ jbig2dec-0.9-i586-001.tgz =~ ([^-]+)-([^-]+)-([^-]+)-0*([1-9][0-9]*)\.tgz ]] +echo ${BASH_REMATCH[1]} + +# bug in all versions up to and including bash-2.05b +if [[ "123abc" == *?(a)bc ]]; then echo ok 42; else echo bad 42; fi +if [[ "123abc" == *?(a)bc ]]; then echo ok 43; else echo bad 43; fi diff --git a/tests/new-exp.right b/tests/new-exp.right index f2dfbc137..bff3dd4b0 100644 --- a/tests/new-exp.right +++ b/tests/new-exp.right @@ -430,7 +430,7 @@ Case05---3---A:B:C--- Case06---1---A B C::--- Case07---3---A:B:C--- Case08---3---A:B:C--- -./new-exp.tests: line 506: /${$(($#-1))}: bad substitution +./new-exp.tests: line 506: ${$(($#-1))}: bad substitution argv[1] = argv[2] = argv[3] = diff --git a/tests/printf.right b/tests/printf.right index cea11ce9e..43c057415 100644 Binary files a/tests/printf.right and b/tests/printf.right differ diff --git a/tests/printf.tests b/tests/printf.tests index 60928d6bb..bd3bcc10e 100644 --- a/tests/printf.tests +++ b/tests/printf.tests @@ -253,3 +253,35 @@ printf '%0.5d\n' 1 printf '%05d\n' 1 printf '%5d\n' 1 printf '%0d\n' 1 + +# failures with various floating point formats and 0 after bash-3.2 + +printf "%G\n" 0 +printf "%g\n" 0 +printf "%4.2G\n" 0 +printf "%4.2g\n" 0 + +printf "%G\n" 4 +printf "%g\n" 4 +printf "%4.2G\n" 4 +printf "%4.2g\n" 4 + +printf "%F\n" 0 +printf "%f\n" 0 +printf "%4.2F\n" 0 +printf "%4.2f\n" 0 + +printf "%F\n" 4 +printf "%f\n" 4 +printf "%4.2F\n" 4 +printf "%4.2f\n" 4 + +printf "%E\n" 0 +printf "%e\n" 0 +printf "%4.2E\n" 0 +printf "%4.2e\n" 0 + +printf "%E\n" 4 +printf "%e\n" 4 +printf "%4.2E\n" 4 +printf "%4.2e\n" 4 diff --git a/tests/printf.tests~ b/tests/printf.tests~ new file mode 100644 index 000000000..60928d6bb --- /dev/null +++ b/tests/printf.tests~ @@ -0,0 +1,255 @@ +LC_ALL=C +LC_NUMERIC=C + +# these should output error messages -- the format is required +printf +printf -- + +# these should output nothing +printf "" +printf -- "" + +# in the future this may mean to put the output into VAR, but for +# now it is an error +# 2005-03-15 no longer an error +unset var +printf -v var "%10d" $RANDOM +echo ${#var} + +# this should expand escape sequences in the format string, nothing else +printf "\tone\n" + +# this should not cut off output after the \c +printf "one\ctwo\n" + +# and unrecognized backslash escapes should have the backslash preserverd +printf "4\.2\n" + +printf "no newline " ; printf "now newline\n" + +# %% -> % +printf "%%\n" + +# this was a bug caused by pre-processing the string for backslash escapes +# before doing the `%' format processing -- all versions before bash-2.04 +printf "\045" ; echo +printf "\045d\n" + +# simple character output +printf "%c\n" ABCD + +# test simple string output +printf "%s\n" unquoted + +# test quoted string output +printf "%s %q\n" unquoted quoted +printf "%s%10q\n" unquoted quoted + +printf "%q\n" 'this&that' + +# make sure the format string is reused to use up arguments +printf "%d " 1 2 3 4 5; printf "\n" + +# make sure that extra format characters get null arguments +printf "%s %d %d %d\n" onestring + +printf "%s %d %u %4.2f\n" onestring + +printf -- "--%s %s--\n" 4.2 '' +printf -- "--%s %s--\n" 4.2 + +# test %b escapes + +# 8 is a non-octal digit, so the `81' should be output +printf -- "--%b--\n" '\n\081' + +printf -- "--%b--\n" '\t\0101' +printf -- "--%b--\n" '\t\101' + +# these should all display `A7' +echo -e "\01017" +echo -e "\x417" + +printf "%b\n" '\01017' +printf "%b\n" '\1017' +printf "%b\n" '\x417' + +printf -- "--%b--\n" '\"abcd\"' +printf -- "--%b--\n" "\'abcd\'" + +printf -- "--%b--\n" 'a\\x' + +printf -- "--%b--\n" '\x' + +Z1=$(printf -- "%b\n" '\a\b\e\f\r\v') +Z2=$'\a\b\e\f\r\v' + +if [ "$Z1" != "$Z2" ]; then + echo "whoops: printf %b and $'' differ" >&2 +fi +unset Z1 Z2 + +printf -- "--%b--\n" '' +printf -- "--%b--\n" + +# the stuff following the \c should be ignored, as well as the rest +# of the format string +printf -- "--%b--\n" '4.2\c5.4\n'; printf "\n" + +# unrecognized escape sequences should by displayed unchanged +printf -- "--%b--\n" '4\.2' + +# a bare \ should not be processed as an escape sequence +printf -- "--%b--\n" '\' + +# make sure extra arguments are ignored if the format string doesn't +# actually use them +printf "\n" 4.4 BSD +printf " " 4.4 BSD ; printf "\n" + +# make sure that a fieldwidth and precision of `*' are handled right +printf "%10.8s\n" 4.4BSD +printf "%*.*s\n" 10 8 4.4BSD + +printf "%10.8q\n" 4.4BSD +printf "%*.*q\n" 10 8 4.4BSD + +printf "%6b\n" 4.4BSD +printf "%*b\n" 6 4.4BSD + +# we handle this crap with homemade code in printf.def +printf "%10b\n" 4.4BSD +printf -- "--%-10b--\n" 4.4BSD +printf "%4.2b\n" 4.4BSD +printf "%.3b\n" 4.4BSD +printf -- "--%-8b--\n" 4.4BSD + +# test numeric conversions -- these four lines should echo identically +printf "%d %u %i 0%o 0x%x 0x%X\n" 255 255 255 255 255 255 +printf "%d %u %i %#o %#x %#X\n" 255 255 255 255 255 255 + +printf "%ld %lu %li 0%o 0x%x 0x%X\n" 255 255 255 255 255 255 +printf "%ld %lu %li %#o %#x %#X\n" 255 255 255 255 255 255 + +printf "%10d\n" 42 +printf "%10d\n" -42 + +printf "%*d\n" 10 42 +printf "%*d\n" 10 -42 + +# test some simple floating point formats +printf "%4.2f\n" 4.2 +printf "%#4.2f\n" 4.2 +printf "%#4.1f\n" 4.2 + +printf "%*.*f\n" 4 2 4.2 +printf "%#*.*f\n" 4 2 4.2 +printf "%#*.*f\n" 4 1 4.2 + +printf "%E\n" 4.2 +printf "%e\n" 4.2 +printf "%6.1E\n" 4.2 +printf "%6.1e\n" 4.2 + +printf "%G\n" 4.2 +printf "%g\n" 4.2 +printf "%6.2G\n" 4.2 +printf "%6.2g\n" 4.2 + +# test some of the more esoteric features of POSIX.1 printf +printf "%d\n" "'string'" +printf "%d\n" '"string"' + +printf "%#o\n" "'string'" +printf "%#o\n" '"string"' + +printf "%#x\n" "'string'" +printf "%#X\n" '"string"' + +printf "%6.2f\n" "'string'" +printf "%6.2f\n" '"string"' + +# output from these two lines had better be the same +printf -- "--%6.4s--\n" abcdefghijklmnopqrstuvwxyz +printf -- "--%6.4b--\n" abcdefghijklmnopqrstuvwxyz + +# and these two also +printf -- "--%12.10s--\n" abcdefghijklmnopqrstuvwxyz +printf -- "--%12.10b--\n" abcdefghijklmnopqrstuvwxyz + +# tests for translating \' to ' and \\ to \ +# printf translates \' to ' in the format string... +printf "\'abcd\'\n" + +# but not when the %b format specification is used +printf "%b\n" \\\'abcd\\\' + +# but both translate \\ to \ +printf '\\abcd\\\n' +printf "%b\n" '\\abcd\\' + +# this was reported as a bug in bash-2.03 +# these three lines should all echo `26' +printf "%d\n" 0x1a +printf "%d\n" 032 +printf "%d\n" 26 + +# error messages + +# this should be an overflow, but error messages vary between systems +# printf "%lu\n" 4294967296 + +# ...but we cannot use this because some systems (SunOS4, for example), +# happily ignore overflow conditions in strtol(3) +#printf "%ld\n" 4294967296 + +printf "%10" +printf "ab%Mcd\n" + +# this caused an infinite loop in older versions of printf +printf "%y" 0 + +# these should print a warning and `0', according to POSIX.2 +printf "%d\n" GNU +printf "%o\n" GNU + +# failures in all bash versions through bash-2.05 +printf "%.0s" foo +printf "%.*s" 0 foo + +printf '%.0b-%.0s\n' foo bar +printf '(%*b)(%*s)\n' -4 foo -4 bar + +format='%'`printf '%0100384d' 0`'d\n' +printf $format 0 + +# failures in all bash versions through bash-3.0 - undercounted characters +unset vv +printf " %s %s %s \n%n" ab cd ef vv +echo "$vv" + +# this doesn't work with printf(3) on all systems +#printf "%'s\n" foo + +# test cases from an austin-group list discussion +# prints ^G as an extension +printf '%b\n' '\7' + +# prints ^G +printf '%b\n' '\0007' + +# prints NUL then 7 +printf '\0007\n' + +# prints no more than two hex digits +printf '\x07e\n' + +# additional backslash escapes +printf '\"\?\n' + +# failures with decimal precisions until after bash-3.1 +printf '%0.5d\n' 1 + +printf '%05d\n' 1 +printf '%5d\n' 1 +printf '%0d\n' 1