diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 7869e0bb..c1d90167 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -11153,3 +11153,112 @@ builtins/declare.def removed from a readonly nameref variable that has a value, even if it doesn't reference an existing variable. This distinction is for ksh93 compatibility. Pointed out by Grisha Levit + + 5/31 + ---- +builtins/declare.def + - declare_internal: if the call to bind_variable_value fails for some + reason, make sure to restore the nameref attribute to flags_on and + flags_off before calling NEXT_VARIABLE + +subst.c + - make_internal_declare: handle += append op + - shell_expand_word_list: when transforming assignment statement arguments + to `declare', make sure to handle += append op to avoid passing invalid + identifiers to declare. Report by Grisha Levit + + 6/1 + --- +builtins/declare.def + - declare_internal: if a nameref assignment fails, only call delete_var to + delete the variable if we created it in declare_internal in the first + place + +general.c + - check_selfref: new function, checks a NAME against a VALUE for nameref + self-reference + +general.h + - check_selfref: extern declaration + +builtins/declare.def + - declare_internal: call check_selfref to determine whether a given NAME + and VALUE constitute an invalid nameref variable self-reference + +variables.c + - bind_variable_internal: call check_selfref to determine whether a given + NAME and VALUE constitute an invalid nameref variable self-reference + + 6/2 + --- +parse.y + - clear_shell_input_line: new function, clears contents of shell_input_line + and sets index to 0, but doesn't free it + +externs.h + - clear_shell_input_line: extern declaration + +builtins/evalstring.c + - parse_and_execute: call clear_shell_input_line after setting input to + string to be executed. Fixes problem with command substitution and + multi-line aliases reported by Grisha Levit + +eval.c + - parse_command: only execute PROMPT_COMMAND if the shell is not + currently expanding an alias; use the same tests as parse.y:SHOULD_PROMPT + and parse.y:prompt_again() use to decide whether or not to print a + prompt. Fixes problems with PROMPT_COMMAND and multi-line aliases + reported by Grisha Levit + +builtins/set.def + - unset_builtin: changes to fix three problems reported by Grisha + Levit : + o if -n is supplied, we should not try to unset a function if + a variable isn't found + o unsetting namerefs whose values are array references does + not work + o unset -n n[0], where n is a nameref, would unset the referenced + variable instead of `n' + +redir.c + - redir_varvalue: handle case where nameref var points to subscripted + array reference. Reported by Grisha Levit + +variables.c + - bind_variable_value: make sure to call check_selfref only if aflags + includes ASS_NAMEREF and not ASS_FORCE. Reported by Grisha Levit + + +general.c + - valid_nameref_value: now understands a FLAGS value of 2 to mean that + the name will be used to create a variable, so only legal_identifier + matters + +arrayfunc.c + - find_or_make_array_variable: call valid_nameref_value with FLAGS value + of 2 to indicate we will be creating a variable. Fixes mapfile issue + reported by Grisha Levit + + 6/5 + --- +builtins/declare.def + - declare_internal: only pass ASS_FORCE as part of assignment flags to + assignments concerning arrays + - declare_internal: when at the global scope, if we resolve a nameref + and commit to using the new name, go back to to the beginning of the + loop and use the new name in the checks and variable references. + Make sure we construct the new name as a straight substitution of + the nameref value into the old name, including array subscripts and + rebuilding the correct values for `offset' and `value', since they + are relative to the original value of name. + Fixes several issues with checking use of subscripted array variables + as nameref values + - declare_internal: when calling assign_array_element, make sure to pass + ASS_APPEND if aflags includes it, so things like + declare -a var; var[1]=1; declare var[1]+=4 + append to the value appropriately and var[1] ends up being `14' + +arrayfunc.c + - valid_array_reference: make sure the array reference is properly + terminated after the first subscript; return invalid if there is + anything following the closing `]' diff --git a/arrayfunc.c b/arrayfunc.c index 70d50ce2..3498b2cb 100644 --- a/arrayfunc.c +++ b/arrayfunc.c @@ -370,7 +370,7 @@ find_or_make_array_variable (name, flags) } if (var && nameref_p (var)) { - if (valid_nameref_value (nameref_cell (var), 1) == 0) + if (valid_nameref_value (nameref_cell (var), 2) == 0) { sh_invalidid (nameref_cell (var)); return ((SHELL_VAR *)NULL); @@ -899,6 +899,8 @@ valid_array_reference (name, flags) len = skipsubscript (t, 0, 0); if (t[len] != ']' || len == 1) return 0; + if (t[len+1] != '\0') + return 0; for (r = 1; r < len; r++) if (whitespace (t[r]) == 0) return 1; diff --git a/builtins/declare.def b/builtins/declare.def index 527f0146..bab3979b 100644 --- a/builtins/declare.def +++ b/builtins/declare.def @@ -286,8 +286,8 @@ declare_internal (list, local_var) /* There are arguments left, so we are making variables. */ while (list) /* declare [-aAfFirx] name [name ...] */ { - char *value, *name; - int offset, aflags, wflags; + char *value, *name, *oldname; + int offset, aflags, wflags, created_var, namelen; #if defined (ARRAY_VARS) int making_array_special, compound_array_assign, simple_array_assign; int var_exists, array_exists, creating_array, array_subscript_assignment; @@ -297,6 +297,7 @@ declare_internal (list, local_var) wflags = list->word->flags; offset = assignment (name, 0); aflags = 0; + created_var = 0; if (local_var && variable_context && STREQ (name, "-")) { @@ -332,27 +333,10 @@ declare_internal (list, local_var) assign_error++; NEXT_VARIABLE (); } - else if (valid_array_reference (value, 0)) - { - t = array_variable_name (value, (int *)NULL, (int *)NULL); - if (t && STREQ (name, t)) - { - if (variable_context == 0) - { - free (t); - builtin_error (_("%s: nameref variable self references not allowed"), name); - assign_error++; - NEXT_VARIABLE (); - } - else - builtin_warning (_("%s: circular name reference"), name); - } - free (t); - } else #endif /* disallow self references at global scope, warn at function scope */ - if (STREQ (name, value)) + if (check_selfref (name, value, 0)) { if (variable_context == 0) { @@ -364,7 +348,7 @@ declare_internal (list, local_var) builtin_warning (_("%s: circular name reference"), name); } #if 1 - if (value && *value && (aflags & ASS_APPEND) == 0 && valid_nameref_value (value, 0) == 0) + if (value && *value && (aflags & ASS_APPEND) == 0 && valid_nameref_value (value, 1) == 0) { builtin_error (_("`%s': invalid variable name for name reference"), value); assign_error++; @@ -374,13 +358,15 @@ declare_internal (list, local_var) } #if defined (ARRAY_VARS) +restart_new_var_name: var_exists = array_exists = creating_array = 0; compound_array_assign = simple_array_assign = 0; array_subscript_assignment = 0; subscript_start = (char *)NULL; if (t = strchr (name, '[')) /* ] */ { - /* If offset != 0 we have already validated any array reference */ + /* If offset != 0 we have already validated any array reference + because assignment() calls skipsubscript() */ if (offset == 0 && valid_array_reference (name, 0) == 0) { sh_invalidid (name); @@ -417,6 +403,7 @@ declare_internal (list, local_var) refvar = (SHELL_VAR *)NULL; if (variable_context && mkglobal == 0 && ((flags_on & att_function) == 0)) { + /* check name for validity here? */ #if defined (ARRAY_VARS) if (flags_on & att_assoc) var = make_local_assoc_variable (name); @@ -446,6 +433,7 @@ declare_internal (list, local_var) /* otherwise we have a var at the right context */ } else + /* XXX - check name for validity here with valid_nameref_value */ var = make_local_variable (name); /* sets att_invisible for new vars */ if (var == 0) { @@ -592,8 +580,50 @@ declare_internal (list, local_var) var = mkglobal ? find_global_variable (nameref_cell (refvar)) : find_variable (nameref_cell (refvar)); if (refvar && var == 0) { - free (name); - name = savestring (nameref_cell (refvar)); + oldname = name; /* need to free this */ + + namelen = strlen (nameref_cell (refvar)); +#if defined (ARRAY_VARS) + if (subscript_start) + { + *subscript_start = '['; /*]*/ + namelen += strlen (subscript_start); + } +#endif + name = xmalloc (namelen + 2 + strlen (value) + 1); + strcpy (name, nameref_cell (refvar)); +#if defined (ARRAY_VARS) + if (subscript_start) + strcpy (name + strlen (nameref_cell (refvar)), subscript_start); +#endif + /* We are committed to using the new name, so reset */ + if (offset) + { + /* Rebuild assignment and restore offset and value */ + if (aflags & ASS_APPEND) + name[namelen++] = '+'; + name[namelen++] = '='; + if (value && *value) + strcpy (name + namelen, value); + else + name[namelen] = '\0'; + offset = assignment (name, 0); + /* if offset was valid previously, but the substituting + of the nameref value results in an invalid assignment, + throw an invalid identifier error */ + if (offset == 0) + { + free (oldname); + sh_invalidid (name); + assign_error++; + NEXT_VARIABLE (); + } + name[offset] = '\0'; + value = name + namelen; + } + free (oldname); + goto restart_new_var_name; + /* NOTREACHED */ } } if (var == 0) @@ -622,13 +652,9 @@ declare_internal (list, local_var) } else #endif - if (offset) - /* We're just setting a temporary value here, so force assignment */ - var = mkglobal ? bind_global_variable (name, (char *)NULL, ASS_FORCE) : bind_variable (name, (char *)NULL, ASS_FORCE); - else { var = mkglobal ? bind_global_variable (name, (char *)NULL, ASS_FORCE) : bind_variable (name, (char *)NULL, ASS_FORCE); - if (var && no_invisible_vars == 0) + if (var && offset == 0 && no_invisible_vars == 0) VSETATTR (var, att_invisible); } if (var == 0) @@ -636,6 +662,7 @@ declare_internal (list, local_var) /* Has to appear in brackets */ NEXT_VARIABLE (); } + created_var = 1; } /* Can't take an existing array variable and make it a nameref */ else if ((array_p (var) || assoc_p (var)) && (flags_on & att_nameref)) @@ -775,14 +802,14 @@ declare_internal (list, local_var) VUNSETATTR (var, flags_off); #if defined (ARRAY_VARS) - aflags |= ASS_FORCE; if (offset && compound_array_assign) - assign_array_var_from_string (var, value, aflags); + assign_array_var_from_string (var, value, aflags|ASS_FORCE); else if (simple_array_assign && subscript_start) { /* declare [-aA] name[N]=value */ *subscript_start = '['; /* ] */ - var = assign_array_element (name, value, 0); /* XXX - not aflags */ + /* XXX - problem here with appending */ + var = assign_array_element (name, value, aflags&ASS_APPEND); /* XXX - not aflags */ *subscript_start = '\0'; if (var == 0) /* some kind of assignment error */ { @@ -796,12 +823,13 @@ declare_internal (list, local_var) { /* let bind_{array,assoc}_variable take care of this. */ if (assoc_p (var)) - bind_assoc_variable (var, name, savestring ("0"), value, aflags); + bind_assoc_variable (var, name, savestring ("0"), value, aflags|ASS_FORCE); else - bind_array_variable (name, 0, value, aflags); + bind_array_variable (name, 0, value, aflags|ASS_FORCE); } else #endif + /* XXX - no ASS_FORCE here */ /* bind_variable_value duplicates the essential internals of bind_variable() */ if (offset) @@ -811,11 +839,14 @@ declare_internal (list, local_var) v = bind_variable_value (var, value, aflags); if (v == 0 && (onref || nameref_p (var))) { - if (valid_nameref_value (value, 0) == 0) + if (valid_nameref_value (value, 1) == 0) sh_invalidid (value); assign_error++; /* XXX - unset this variable? or leave it as normal var? */ - delete_var (var->name, mkglobal ? global_variables : shell_variables); + if (created_var) + delete_var (var->name, mkglobal ? global_variables : shell_variables); + flags_on |= onref; /* undo change from above */ + flags_off |= offref; NEXT_VARIABLE (); } } diff --git a/builtins/evalstring.c b/builtins/evalstring.c index eed137fb..66926e92 100644 --- a/builtins/evalstring.c +++ b/builtins/evalstring.c @@ -267,6 +267,7 @@ parse_and_execute (string, from_file, flags) current_token = '\n'; /* reset_parser() ? */ with_input_from_string (string, from_file); + clear_shell_input_line (); while (*(bash_input.location.string)) { command = (COMMAND *)NULL; @@ -497,7 +498,7 @@ parse_string (string, from_file, flags, endp) sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &ps_sigmask); #endif -/* itrace("parse_string: `%s'", string); */ +/*itrace("parse_string: `%s'", string);*/ /* Reset the line number if the caller wants us to. If we don't reset the line number, we have to subtract one, because we will add one just before executing the next command (resetting the line number sets it to diff --git a/builtins/set.def b/builtins/set.def index 8f74f0e6..8122361e 100644 --- a/builtins/set.def +++ b/builtins/set.def @@ -808,7 +808,7 @@ unset_builtin (list) { int unset_function, unset_variable, unset_array, opt, nameref, any_failed; int global_unset_func, global_unset_var; - char *name; + char *name, *tname; unset_function = unset_variable = unset_array = nameref = any_failed = 0; global_unset_func = global_unset_var = 0; @@ -859,7 +859,7 @@ unset_builtin (list) #if defined (ARRAY_VARS) unset_array = 0; - if (!unset_function && valid_array_reference (name, 0)) + if (!unset_function && nameref == 0 && valid_array_reference (name, 0)) { t = strchr (name, '['); *t++ = '\0'; @@ -897,7 +897,7 @@ unset_builtin (list) find a function after unsuccessfully searching for a variable, note that we're acting on a function now as if -f were supplied. The readonly check below takes care of it. */ - if (var == 0 && unset_variable == 0 && unset_function == 0) + if (var == 0 && nameref == 0 && unset_variable == 0 && unset_function == 0) { if (var = find_function (name)) unset_function = 1; @@ -932,7 +932,22 @@ unset_builtin (list) if (var == 0 && nameref == 0 && unset_function == 0) { var = find_variable_last_nameref (name, 0); - tem = (var && nameref_p (var)) ? unbind_variable (nameref_cell (var)) : unbind_variable (name); + if (var && nameref_p (var)) + { +#if defined (ARRAY_VARS) + if (valid_array_reference (nameref_cell (var), 0)) + { + tname = savestring (nameref_cell (var)); + if (var = array_variable_part (tname, &t, 0)) + tem = unbind_array_element (var, t); + free (tname); + } + else +#endif + tem = unbind_variable (nameref_cell (var)); + } + else + tem = unbind_variable (name); } else tem = unset_function ? unbind_func (name) : (nameref ? unbind_nameref (name) : unbind_variable (name)); @@ -941,7 +956,7 @@ unset_builtin (list) is specified, the name refers to a variable; if a variable by that name does not exist, a function by that name, if any, shall be unset.'' */ - if (tem == -1 && unset_function == 0 && unset_variable == 0) + if (tem == -1 && nameref == 0 && unset_function == 0 && unset_variable == 0) tem = unbind_func (name); name = list->word->word; /* reset above for namerefs */ diff --git a/eval.c b/eval.c index 03a129c5..db863e72 100644 --- a/eval.c +++ b/eval.c @@ -244,7 +244,10 @@ parse_command () /* Allow the execution of a random command just before the printing of each primary prompt. If the shell variable PROMPT_COMMAND is set then the value of it is the command to execute. */ - if (interactive && bash_input.type != st_string) + /* The tests are a combination of SHOULD_PROMPT() and prompt_again() + from parse.y, which are the conditions under which the prompt is + actually printed. */ + if (interactive && bash_input.type != st_string && parser_expanding_alias() == 0) { command_to_execute = get_string_value ("PROMPT_COMMAND"); if (command_to_execute) diff --git a/externs.h b/externs.h index 15174ccc..f2b43c41 100644 --- a/externs.h +++ b/externs.h @@ -116,6 +116,8 @@ extern int parser_expanding_alias __P((void)); extern void parser_save_alias __P((void)); extern void parser_restore_alias __P((void)); +extern void clear_shell_input_line __P((void)); + extern char *decode_prompt_string __P((char *)); extern int get_current_prompt_level __P((void)); diff --git a/general.c b/general.c index 2d9e6272..75dda55c 100644 --- a/general.c +++ b/general.c @@ -228,21 +228,21 @@ legal_identifier (name) } /* Return 1 if NAME is a valid value that can be assigned to a nameref - variable. The FOR_ASSIGNMENT flag is currently unused, but it could + variable. FLAGS can be 2, in which case the name is going to be used + to create a variable. Other values are currently unused, but could be used to allow values to be stored and indirectly referenced, but not used in assignments. */ int -valid_nameref_value (name, for_assignment) +valid_nameref_value (name, flags) char *name; - int for_assignment; + int flags; { - intmax_t r; - if (name == 0 || *name == 0) return 0; + /* valid identifier */ #if defined (ARRAY_VARS) - if (legal_identifier (name) || valid_array_reference (name, 0)) + if (legal_identifier (name) || (flags != 2 && valid_array_reference (name, 0))) #else if (legal_identifier (name)) #endif @@ -251,6 +251,33 @@ valid_nameref_value (name, for_assignment) return 0; } +int +check_selfref (name, value, flags) + const char *name; + const char *value; + int flags; +{ + char *t; + + if (STREQ (name, value)) + return 1; + +#if defined (ARRAY_VARS) + if (valid_array_reference (value, 0)) + { + t = array_variable_name (value, (int *)NULL, (int *)NULL); + if (t && STREQ (name, t)) + { + free (t); + return 1; + } + free (t); + } +#endif + + return 0; /* not a self reference */ +} + /* Make sure that WORD is a valid shell identifier, i.e. does not contain a dollar sign, nor is quoted in any way. Nor does it consist of all digits. If CHECK_WORD is non-zero, diff --git a/general.h b/general.h index 2d37beca..ba7e9687 100644 --- a/general.h +++ b/general.h @@ -290,6 +290,7 @@ extern int importable_function_name __P((char *, size_t)); extern int exportable_function_name __P((char *)); extern int check_identifier __P((WORD_DESC *, int)); extern int valid_nameref_value __P((char *, int)); +extern int check_selfref __P((const char *, const char *, int)); extern int legal_alias_name __P((char *, int)); extern int assignment __P((const char *, int)); diff --git a/jobs.c b/jobs.c index b3716ef1..bae67cc9 100644 --- a/jobs.c +++ b/jobs.c @@ -4687,8 +4687,6 @@ set_maxchild (nchild) { static int lmaxchild = -1; -itrace("set_maxchild (%d)", nchild); - if (lmaxchild < 0) lmaxchild = getmaxchild (); if (lmaxchild < 0) diff --git a/parse.y b/parse.y index 764ea901..c3271dc7 100644 --- a/parse.y +++ b/parse.y @@ -1961,6 +1961,13 @@ parser_restore_alias () #endif } +void +clear_shell_input_line () +{ + if (shell_input_line) + shell_input_line[shell_input_line_index = 0] = '\0'; +} + /* Return a line of text, taken from wherever yylex () reads input. If there is no more input, then we return NULL. If REMOVE_QUOTED_NEWLINE is non-zero, we remove unquoted \ pairs. This is used by @@ -4696,7 +4703,7 @@ read_token_word (character) /* Non-zero means to ignore the value of the next character, and just to add it no matter what. */ - int pass_next_character; + int pass_next_character; /* The current delimiting character. */ int cd; @@ -4993,7 +5000,6 @@ read_token_word (character) } got_character: - if (character == CTLESC || character == CTLNUL) { RESIZE_MALLOCED_BUFFER (token, token_index, 2, token_buffer_size, diff --git a/po/el.po b/po/el.po index aec5ce40..0500dd8d 100644 --- a/po/el.po +++ b/po/el.po @@ -2,19 +2,19 @@ # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the bash package. # -# Lefteris Dimitroulakis , 2013. +# Lefteris Dimitroulakis , 2013, 2016. msgid "" msgstr "" -"Project-Id-Version: bash-4.3-pre2\n" +"Project-Id-Version: bash-4.4-beta1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-10 07:59-0500\n" -"PO-Revision-Date: 2013-11-15 10:37+0200\n" +"POT-Creation-Date: 2015-10-02 07:21-0400\n" +"PO-Revision-Date: 2016-06-02 01:32+0300\n" "Last-Translator: Lefteris Dimitroulakis \n" "Language-Team: Greek \n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.5\n" @@ -22,7 +22,7 @@ msgstr "" msgid "bad array subscript" msgstr "" -#: arrayfunc.c:360 builtins/declare.def:648 +#: arrayfunc.c:360 builtins/declare.def:647 #, c-format msgid "%s: cannot convert indexed to associative array" msgstr "" @@ -42,7 +42,7 @@ msgstr "" msgid "%s: %s: must use subscript when assigning associative array" msgstr "" -#: bashhist.c:417 +#: bashhist.c:405 #, c-format msgid "%s: cannot create: %s" msgstr "%s: αδυναμία δημιουργίας: %s" @@ -135,15 +135,15 @@ msgid "" " Without EXPR, returns " msgstr "" -#: builtins/cd.def:321 +#: builtins/cd.def:320 msgid "HOME not set" msgstr "HOME δεν έχει οριστεί" -#: builtins/cd.def:329 builtins/common.c:167 test.c:878 +#: builtins/cd.def:328 builtins/common.c:167 test.c:878 msgid "too many arguments" msgstr "πάρα πολλά ορίσματα" -#: builtins/cd.def:340 +#: builtins/cd.def:339 msgid "OLDPWD not set" msgstr "OLDPWD δεν έχει οριστεί" @@ -162,7 +162,7 @@ msgstr "προειδοποίηση: " msgid "%s: usage: " msgstr "%s: χρήση: " -#: builtins/common.c:199 shell.c:511 shell.c:802 +#: builtins/common.c:199 shell.c:509 shell.c:800 #, c-format msgid "%s: option requires an argument" msgstr "%s: η επιλογή απαιτεί όρισμα" @@ -177,7 +177,7 @@ msgstr "%s: απαιτείται αριθμητικό όρισμα" msgid "%s: not found" msgstr "%s: δεν βρέθηκε" -#: builtins/common.c:222 shell.c:815 +#: builtins/common.c:222 shell.c:813 #, c-format msgid "%s: invalid option" msgstr "%s: μη έγκυρη επιλογή" @@ -187,7 +187,7 @@ msgstr "%s: μη έγκυρη επιλογή" msgid "%s: invalid option name" msgstr "%s: μη έγκυρο όνομα επιλογής" -#: builtins/common.c:236 general.c:242 general.c:247 +#: builtins/common.c:236 general.c:240 general.c:245 #, c-format msgid "`%s': not a valid identifier" msgstr "" @@ -200,7 +200,7 @@ msgstr "μη έγκυρος οκταδικός αριθμός" msgid "invalid hex number" msgstr "μη έγκυρος εξαδικός αριθμός" -#: builtins/common.c:250 expr.c:1473 +#: builtins/common.c:250 expr.c:1470 msgid "invalid number" msgstr "μη έγκυρος αριθμός" @@ -214,7 +214,7 @@ msgstr "%s: μη έγκυρη προδιαγραφή σήματος" msgid "`%s': not a pid or valid job spec" msgstr "«%s»: όχι pid ή έγκυρο job spec" -#: builtins/common.c:272 error.c:511 +#: builtins/common.c:272 error.c:510 #, c-format msgid "%s: readonly variable" msgstr "%s: μεταβλητή μόνο για ανάγνωση" @@ -276,17 +276,17 @@ msgstr "" msgid "error getting terminal attributes: %s" msgstr "" -#: builtins/common.c:585 +#: builtins/common.c:583 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "" -#: builtins/common.c:651 builtins/common.c:653 +#: builtins/common.c:649 builtins/common.c:651 #, c-format msgid "%s: ambiguous job spec" msgstr "%s: ασαφείς προδιαγραφές εργασίας" -#: builtins/common.c:918 +#: builtins/common.c:916 msgid "help not available in this version" msgstr "" @@ -295,21 +295,21 @@ msgstr "" msgid "%s: invalid action name" msgstr "%s: μη έγκυρο όνομα ενέργειας" -#: builtins/complete.def:452 builtins/complete.def:647 -#: builtins/complete.def:857 +#: builtins/complete.def:451 builtins/complete.def:646 +#: builtins/complete.def:856 #, c-format msgid "%s: no completion specification" msgstr "%s: δεν υπάρχει προδιαγραφή συμπλήρωσης" -#: builtins/complete.def:699 +#: builtins/complete.def:698 msgid "warning: -F option may not work as you expect" msgstr "προειδοποίηση: η επιλογή -F μπορεί να μη δουλέψει όπως περιμένεις" -#: builtins/complete.def:701 +#: builtins/complete.def:700 msgid "warning: -C option may not work as you expect" msgstr "προειδοποίηση: η επιλογή -C ίσως δεν δουλέψει όπως αναμένετε" -#: builtins/complete.def:830 +#: builtins/complete.def:829 msgid "not currently executing completion function" msgstr "" @@ -317,42 +317,41 @@ msgstr "" msgid "can only be used in a function" msgstr "μπορεί να χρησιμοποιηθεί μόνο μέσα σε συνάρτηση" -#: builtins/declare.def:331 builtins/declare.def:567 +#: builtins/declare.def:330 builtins/declare.def:566 #, c-format msgid "%s: reference variable cannot be an array" msgstr "" -#: builtins/declare.def:340 +#: builtins/declare.def:339 #, c-format msgid "%s: nameref variable self references not allowed" msgstr "" -#: builtins/declare.def:347 builtins/declare.def:576 subst.c:6474 subst.c:8796 +#: builtins/declare.def:346 builtins/declare.def:575 subst.c:6257 subst.c:8606 #, c-format msgid "%s: invalid variable name for name reference" msgstr "" -#: builtins/declare.def:425 +#: builtins/declare.def:424 msgid "cannot use `-f' to make functions" -msgstr "" -"η επιλογή «-f» δεν μπορεί να χρησιμοποιηθεί για τη δημιουργία συναρτήσεων" +msgstr "η επιλογή «-f» δεν μπορεί να χρησιμοποιηθεί για τη δημιουργία συναρτήσεων" -#: builtins/declare.def:437 execute_cmd.c:5562 +#: builtins/declare.def:436 execute_cmd.c:5551 #, c-format msgid "%s: readonly function" msgstr "%s: συνάρτηση μόνο για ανάγνωση" -#: builtins/declare.def:621 +#: builtins/declare.def:620 #, c-format msgid "%s: quoted compound array assignment deprecated" msgstr "" -#: builtins/declare.def:635 +#: builtins/declare.def:634 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "" -#: builtins/declare.def:642 builtins/read.def:751 +#: builtins/declare.def:641 builtins/read.def:750 #, c-format msgid "%s: cannot convert associative to indexed array" msgstr "" @@ -361,52 +360,52 @@ msgstr "" msgid "dynamic loading not available" msgstr "δυναμική φόρτωση μη διαθέσημη" -#: builtins/enable.def:343 +#: builtins/enable.def:342 #, c-format msgid "cannot open shared object %s: %s" msgstr "αδυναμία ανοίγματος κοινόχρηστου αντικειμένου %s: %s" -#: builtins/enable.def:369 +#: builtins/enable.def:368 #, c-format msgid "cannot find %s in shared object %s: %s" msgstr "αδυναμία εύρεσης %s στο κοινόχρηστο αντικείμενο %s: %s" -#: builtins/enable.def:387 +#: builtins/enable.def:386 #, c-format msgid "load function for %s returns failure (%d): not loaded" msgstr "" -#: builtins/enable.def:512 +#: builtins/enable.def:511 #, c-format msgid "%s: not dynamically loaded" msgstr "%s: δεν φορτώθηκε δυναμικά" -#: builtins/enable.def:538 +#: builtins/enable.def:537 #, c-format msgid "%s: cannot delete: %s" msgstr "%s: αδυναμία διαγραφής: %s" -#: builtins/evalfile.c:144 builtins/hash.def:172 execute_cmd.c:5404 +#: builtins/evalfile.c:143 builtins/hash.def:171 execute_cmd.c:5393 #, c-format msgid "%s: is a directory" msgstr "%s: είναι κατάλογος" -#: builtins/evalfile.c:150 +#: builtins/evalfile.c:149 #, c-format msgid "%s: not a regular file" msgstr "%s: όχι κανονικό αρχείο" -#: builtins/evalfile.c:159 +#: builtins/evalfile.c:158 #, c-format msgid "%s: file is too large" msgstr "%s: αρχείο πολύ μεγάλο" -#: builtins/evalfile.c:194 builtins/evalfile.c:212 shell.c:1553 +#: builtins/evalfile.c:193 builtins/evalfile.c:211 shell.c:1551 #, c-format msgid "%s: cannot execute binary file" msgstr "%s: αδυναμία εκτέλεσης δυαδικού αρχείου" -#: builtins/exec.def:156 builtins/exec.def:158 builtins/exec.def:235 +#: builtins/exec.def:155 builtins/exec.def:157 builtins/exec.def:234 #, c-format msgid "%s: cannot execute: %s" msgstr "%s: αδυναμία εκτέλεσης: %s" @@ -430,20 +429,20 @@ msgstr "Υπάρχουν σταματημένες εργασίες.\n" msgid "There are running jobs.\n" msgstr "Υπάρχουν εργασίες που τρέχουν.\n" -#: builtins/fc.def:269 +#: builtins/fc.def:268 msgid "no command found" msgstr "δεν βρέθηκε εντολή" -#: builtins/fc.def:327 builtins/fc.def:376 +#: builtins/fc.def:326 builtins/fc.def:375 msgid "history specification" msgstr "history specification" -#: builtins/fc.def:397 +#: builtins/fc.def:396 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: αδυναμία ανοίγματος προσωρινού αρχείου: %s" -#: builtins/fg_bg.def:153 builtins/jobs.def:283 +#: builtins/fg_bg.def:153 builtins/jobs.def:282 msgid "current" msgstr "τρέχων" @@ -466,37 +465,34 @@ msgstr "%s: η επιλογή απαιτεί ένα όρισμα -- %c\n" msgid "hashing disabled" msgstr "" -#: builtins/hash.def:139 +#: builtins/hash.def:138 #, c-format msgid "%s: hash table empty\n" msgstr "" -#: builtins/hash.def:254 +#: builtins/hash.def:253 #, c-format msgid "hits\tcommand\n" msgstr "hits\tcommand\n" -#: builtins/help.def:135 +#: builtins/help.def:134 #, c-format msgid "Shell commands matching keyword `" msgid_plural "Shell commands matching keywords `" msgstr[0] "Εντολές κελύφους που ταιριάζουν στη λέξη-κλειδί `" msgstr[1] "Εντολές κελύφους που ταιριάζουν στις λέξεις-κλειδί" -#: builtins/help.def:187 +#: builtins/help.def:186 #, c-format -msgid "" -"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." -msgstr "" -"ουδεμία βοήθεια ταιριάζει με «%s». Δοκιμάστε «help help» ή «man -k %s» ή «info %" -"s»." +msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "ουδεμία βοήθεια ταιριάζει με «%s». Δοκιμάστε «help help» ή «man -k %s» ή «info %s»." -#: builtins/help.def:226 +#: builtins/help.def:225 #, c-format msgid "%s: cannot open: %s" msgstr "%s: αδυναμία ανοίγματος: %s" -#: builtins/help.def:526 +#: builtins/help.def:525 #, c-format msgid "" "These shell commands are defined internally. Type `help' to see this list.\n" @@ -508,20 +504,15 @@ msgid "" "\n" msgstr "" -#: builtins/history.def:155 +#: builtins/history.def:154 msgid "cannot use more than one of -anrw" msgstr "δεν μπορώ να χρησιμοποιήσω περισσότερες της μιας από τις -anrw" -#: builtins/history.def:187 +#: builtins/history.def:186 msgid "history position" msgstr "θέση στο ιστορικό" -#: builtins/history.def:264 -#, fuzzy, c-format -msgid "%s: invalid timestamp" -msgstr "%s: μη έγκυρο όρισμα" - -#: builtins/history.def:375 +#: builtins/history.def:371 #, c-format msgid "%s: history expansion failed" msgstr "" @@ -578,44 +569,44 @@ msgstr "" msgid "%s: invalid callback quantum" msgstr "" -#: builtins/mapfile.def:350 +#: builtins/mapfile.def:349 msgid "empty array variable name" msgstr "" -#: builtins/mapfile.def:371 +#: builtins/mapfile.def:370 msgid "array variable support required" msgstr "απαιτείται υποστήριξη μεταβλητής πίνακος" -#: builtins/printf.def:412 +#: builtins/printf.def:410 #, c-format msgid "`%s': missing format character" msgstr "«%s»: απουσία χαρακτήρα φορμαρίσματος " -#: builtins/printf.def:467 +#: builtins/printf.def:464 #, c-format msgid "`%c': invalid time format specification" msgstr "«%c»: μη έγκυρη προδιαγραφή για φορμά χρόνου" -#: builtins/printf.def:669 +#: builtins/printf.def:666 #, c-format msgid "`%c': invalid format character" msgstr "«%c»: μη έγκυρος χαρακτήρας φορμαρίσματος" -#: builtins/printf.def:695 +#: builtins/printf.def:692 #, c-format msgid "warning: %s: %s" msgstr "προειδοποίηση: %s: %s" -#: builtins/printf.def:781 +#: builtins/printf.def:778 #, c-format msgid "format parsing problem: %s" msgstr "" -#: builtins/printf.def:878 +#: builtins/printf.def:875 msgid "missing hex digit for \\x" msgstr "απουσία hex ψηφίου για \\x" -#: builtins/printf.def:893 +#: builtins/printf.def:890 #, c-format msgid "missing unicode digit for \\%c" msgstr "απουσία ψηφίου unicode για \\%c" @@ -656,12 +647,10 @@ msgid "" " \twith its position in the stack\n" " \n" " Arguments:\n" -" +N\tDisplays the Nth entry counting from the left of the list shown " -"by\n" +" +N\tDisplays the Nth entry counting from the left of the list shown by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tDisplays the Nth entry counting from the right of the list shown " -"by\n" +" -N\tDisplays the Nth entry counting from the right of the list shown by\n" "\tdirs when invoked without options, starting with zero." msgstr "" @@ -716,7 +705,7 @@ msgstr "" msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:696 +#: builtins/read.def:695 #, c-format msgid "read error: %d: %s" msgstr "σφάλμα ανάγνωσης: %d: %s" @@ -725,46 +714,44 @@ msgstr "σφάλμα ανάγνωσης: %d: %s" msgid "can only `return' from a function or sourced script" msgstr "" -#: builtins/set.def:831 +#: builtins/set.def:829 msgid "cannot simultaneously unset a function and a variable" msgstr "«unset» δεν μπορεί να εφαρμοστεί συγχρόνως σε συνάρτηση και μεταβλητή" -#: builtins/set.def:878 +#: builtins/set.def:876 #, c-format msgid "%s: cannot unset" msgstr "%s: αδυναμία «unset»" -#: builtins/set.def:899 +#: builtins/set.def:897 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: αδυναμία unset: %s μόνο για ανάγνωση" -#: builtins/set.def:912 +#: builtins/set.def:910 #, c-format msgid "%s: not an array variable" msgstr "%s: δεν είναι μεταβλητή πίνακα" -#: builtins/setattr.def:191 +#: builtins/setattr.def:188 #, c-format msgid "%s: not a function" msgstr "%s: δεν είναι συνάρτηση" -#: builtins/setattr.def:196 -#, fuzzy, c-format +#: builtins/setattr.def:193 +#, c-format msgid "%s: cannot export" -msgstr "%s: αδυναμία «unset»" +msgstr "%s: αδυναμία εξαγωγής" #: builtins/shift.def:73 builtins/shift.def:79 msgid "shift count" msgstr "" -#: builtins/shopt.def:286 +#: builtins/shopt.def:283 msgid "cannot set and unset shell options simultaneously" -msgstr "" -"οι επιλογές κελύφους δεν είναι δυνατόν συγχρόνως να ενεργοποιηθούν και " -"απενεργοποιηθούν" +msgstr "οι επιλογές κελύφους δεν είναι δυνατόν συγχρόνως να ενεργοποιηθούν και απενεργοποιηθούν" -#: builtins/shopt.def:353 +#: builtins/shopt.def:350 #, c-format msgid "%s: invalid shell option name" msgstr "%s: μη έγκυρο όνομα επιλογής" @@ -778,88 +765,88 @@ msgstr "απαιτείται όνομα αρχείου για όρισμα" msgid "%s: file not found" msgstr "%s: αρχείο δεν βρέθηκε" -#: builtins/suspend.def:102 +#: builtins/suspend.def:101 msgid "cannot suspend" msgstr "" -#: builtins/suspend.def:112 +#: builtins/suspend.def:111 msgid "cannot suspend a login shell" msgstr "" -#: builtins/type.def:236 +#: builtins/type.def:235 #, c-format msgid "%s is aliased to `%s'\n" msgstr "%s είναι ψευδώνημο του «%s»\n" -#: builtins/type.def:257 +#: builtins/type.def:256 #, c-format msgid "%s is a shell keyword\n" msgstr "%s αποτελεί δεσμευμένη λέξη του κελύφους\n" -#: builtins/type.def:276 +#: builtins/type.def:275 #, c-format msgid "%s is a function\n" msgstr "%s είναι συνάρτηση\n" -#: builtins/type.def:300 -#, fuzzy, c-format +#: builtins/type.def:299 +#, c-format msgid "%s is a special shell builtin\n" -msgstr "«%s»: είναι ειδικό builtin" +msgstr "%s είναι ένα ειδικό builtin\n" -#: builtins/type.def:302 +#: builtins/type.def:301 #, c-format msgid "%s is a shell builtin\n" -msgstr "" +msgstr "%s είναι ένα builtin κελύφους\n" -#: builtins/type.def:324 builtins/type.def:409 +#: builtins/type.def:323 builtins/type.def:408 #, c-format msgid "%s is %s\n" msgstr "%s είναι %s\n" -#: builtins/type.def:344 +#: builtins/type.def:343 #, c-format msgid "%s is hashed (%s)\n" -msgstr "" +msgstr "%s is hashed (%s)\n" -#: builtins/ulimit.def:398 +#: builtins/ulimit.def:397 #, c-format msgid "%s: invalid limit argument" msgstr "%s: μη έγκυρο όρισμα ορίου" -#: builtins/ulimit.def:424 +#: builtins/ulimit.def:423 #, c-format msgid "`%c': bad command" msgstr "«%c»: λάθος διαταγή" -#: builtins/ulimit.def:453 +#: builtins/ulimit.def:452 #, c-format msgid "%s: cannot get limit: %s" msgstr "" -#: builtins/ulimit.def:479 +#: builtins/ulimit.def:478 msgid "limit" msgstr "όριο" -#: builtins/ulimit.def:491 builtins/ulimit.def:791 +#: builtins/ulimit.def:490 builtins/ulimit.def:790 #, c-format msgid "%s: cannot modify limit: %s" msgstr "%s: αδυναμία μεταβολής ορίου: %s" -#: builtins/umask.def:115 +#: builtins/umask.def:114 msgid "octal number" msgstr "οκταδικός αριθμός" -#: builtins/umask.def:232 +#: builtins/umask.def:231 #, c-format msgid "`%c': invalid symbolic mode operator" msgstr "" -#: builtins/umask.def:287 +#: builtins/umask.def:286 #, c-format msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:90 error.c:348 error.c:350 error.c:352 +#: error.c:90 error.c:347 error.c:349 error.c:351 msgid " line " msgstr " γραμμή " @@ -873,98 +860,97 @@ msgstr "τελευταία εντολή: %s\n" msgid "Aborting..." msgstr "" -#. TRANSLATORS: this is a prefix for informational messages. -#: error.c:288 +#: error.c:287 #, c-format msgid "INFORM: " msgstr "" -#: error.c:463 +#: error.c:462 msgid "unknown command error" msgstr "άγνωστο σφάλμα εντολής" -#: error.c:464 +#: error.c:463 msgid "bad command type" msgstr "" -#: error.c:465 +#: error.c:464 msgid "bad connector" msgstr "" -#: error.c:466 +#: error.c:465 msgid "bad jump" msgstr "" -#: error.c:504 +#: error.c:503 #, c-format msgid "%s: unbound variable" msgstr "" -#: eval.c:209 +#: eval.c:192 #, c-format msgid "\atimed out waiting for input: auto-logout\n" msgstr "\aη αναμονή για δεδομένα έληξε: αυτόματη αποσύνδεση\n" -#: execute_cmd.c:527 +#: execute_cmd.c:538 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "αδυναμία ανακατεύθυνσης τυπικής εισόδου από /dev/null: %s" -#: execute_cmd.c:1273 +#: execute_cmd.c:1284 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: «%c»: μη έγκυρος χαρακτήρας μορφοποίησης" -#: execute_cmd.c:2344 +#: execute_cmd.c:2350 msgid "pipe error" msgstr "pipe error" -#: execute_cmd.c:4430 +#: execute_cmd.c:4426 #, c-format msgid "eval: maximum eval nesting level exceeded (%d)" msgstr "" -#: execute_cmd.c:4442 +#: execute_cmd.c:4438 #, c-format msgid "%s: maximum source nesting level exceeded (%d)" msgstr "" -#: execute_cmd.c:4550 +#: execute_cmd.c:4547 #, c-format msgid "%s: maximum function nesting level exceeded (%d)" msgstr "" -#: execute_cmd.c:5077 +#: execute_cmd.c:5068 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: περιορισμός: δεν μπορεί να περιέχεται «/» σε όνομα εντολής" -#: execute_cmd.c:5165 +#: execute_cmd.c:5156 #, c-format msgid "%s: command not found" msgstr "%s: εντολή δεν βρέθηκε" -#: execute_cmd.c:5402 +#: execute_cmd.c:5391 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: execute_cmd.c:5439 +#: execute_cmd.c:5428 #, c-format msgid "%s: %s: bad interpreter" msgstr "" -#: execute_cmd.c:5476 +#: execute_cmd.c:5465 #, c-format msgid "%s: cannot execute binary file: %s" msgstr "%s: αδυναμία εκτέλεσης δυαδικού αρχείου: %s" -#: execute_cmd.c:5553 +#: execute_cmd.c:5542 #, c-format msgid "`%s': is a special builtin" msgstr "«%s»: είναι ειδικό builtin" -#: execute_cmd.c:5605 +#: execute_cmd.c:5594 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "αδυναμία αντιγραφής του fd %d στον fd %d" @@ -1009,37 +995,37 @@ msgstr "" msgid "missing `)'" msgstr "λείπει «)»" -#: expr.c:1053 expr.c:1393 +#: expr.c:1053 expr.c:1390 msgid "syntax error: operand expected" msgstr "syntax error: αναμενόταν τελεστέος" -#: expr.c:1395 +#: expr.c:1392 msgid "syntax error: invalid arithmetic operator" msgstr "syntax error: μη έγκυρος αριθμητικός τελεστής" -#: expr.c:1419 +#: expr.c:1416 #, c-format msgid "%s%s%s: %s (error token is \"%s\")" msgstr "%s%s%s: %s (το λανθασμένο σύμβολο είναι \"%s\")" -#: expr.c:1477 +#: expr.c:1474 msgid "invalid arithmetic base" msgstr "μη έγκυρη αριθμητική βάση" -#: expr.c:1497 +#: expr.c:1494 msgid "value too great for base" msgstr "τιμή πολύ μεγάλη για βάση" -#: expr.c:1546 +#: expr.c:1543 #, c-format msgid "%s: expression error\n" msgstr "%s: σφάλμα έκφρασης\n" -#: general.c:68 +#: general.c:67 msgid "getcwd: cannot access parent directories" msgstr "getcwd: αδυναμία πρόσβασης στο γονικό κατάλογο" -#: input.c:102 subst.c:5763 +#: input.c:102 subst.c:5558 #, c-format msgid "cannot reset nodelay mode for fd %d" msgstr "αδυναμία επανάταξης nodelay mode για fd %d" @@ -1047,156 +1033,155 @@ msgstr "αδυναμία επανάταξης nodelay mode για fd %d" #: input.c:271 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" -msgstr "" -"αδυναμία εκχώρησης νέου περιγραφέα αρχείου για είσοδο του bash από fd %d" +msgstr "αδυναμία εκχώρησης νέου περιγραφέα αρχείου για είσοδο του bash από fd %d" #: input.c:279 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "" -#: jobs.c:521 +#: jobs.c:509 msgid "start_pipeline: pgrp pipe" msgstr "start_pipeline: pgrp pipe" -#: jobs.c:1029 +#: jobs.c:944 #, c-format msgid "forked pid %d appears in running job %d" msgstr "" -#: jobs.c:1148 +#: jobs.c:1063 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "" -#: jobs.c:1252 +#: jobs.c:1167 #, c-format msgid "add_process: process %5ld (%s) in the_pipeline" msgstr "" -#: jobs.c:1255 +#: jobs.c:1170 #, c-format msgid "add_process: pid %5ld (%s) marked as still alive" msgstr "" -#: jobs.c:1584 +#: jobs.c:1499 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "describe_pid: %ld: δεν υπάρχει τέτοιο pid" -#: jobs.c:1599 +#: jobs.c:1514 #, c-format msgid "Signal %d" msgstr "Σήμα %d" -#: jobs.c:1613 jobs.c:1639 +#: jobs.c:1528 jobs.c:1554 msgid "Done" msgstr "Done" -#: jobs.c:1618 siglist.c:123 +#: jobs.c:1533 siglist.c:123 msgid "Stopped" msgstr "σταματημένο" -#: jobs.c:1622 +#: jobs.c:1537 #, c-format msgid "Stopped(%s)" msgstr "σταματημένο(%s)" -#: jobs.c:1626 +#: jobs.c:1541 msgid "Running" msgstr "" -#: jobs.c:1643 +#: jobs.c:1558 #, c-format msgid "Done(%d)" msgstr "Done(%d)" -#: jobs.c:1645 +#: jobs.c:1560 #, c-format msgid "Exit %d" msgstr "Έξοδος %d" -#: jobs.c:1648 +#: jobs.c:1563 msgid "Unknown status" msgstr "Άγνωστη κατάσταση" -#: jobs.c:1735 +#: jobs.c:1650 #, c-format msgid "(core dumped) " msgstr "(core dumped) " -#: jobs.c:1754 +#: jobs.c:1669 #, c-format msgid " (wd: %s)" msgstr " (wd: %s)" -#: jobs.c:1978 +#: jobs.c:1893 #, c-format msgid "child setpgid (%ld to %ld)" msgstr "child setpgid (%ld to %ld)" -#: jobs.c:2336 nojobs.c:648 +#: jobs.c:2242 nojobs.c:639 #, c-format msgid "wait: pid %ld is not a child of this shell" msgstr "wait: διεργασία %ld δεν αποτελεί θυγατρική αυτού του κελύφους" -#: jobs.c:2591 +#: jobs.c:2497 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: Δεν υπάρχουν στοιχεία για διεργασία %ld" -#: jobs.c:2909 +#: jobs.c:2815 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: η εργασία %d είναι σταματημένη" -#: jobs.c:3201 +#: jobs.c:3107 #, c-format msgid "%s: job has terminated" msgstr "%s: η εργασία τερματίστηκε" -#: jobs.c:3210 +#: jobs.c:3116 #, c-format msgid "%s: job %d already in background" msgstr "%s: εργασία %d ήδη στο παρασκήνιο" -#: jobs.c:3435 +#: jobs.c:3341 msgid "waitchld: turning on WNOHANG to avoid indefinite block" msgstr "" -#: jobs.c:3948 +#: jobs.c:3855 #, c-format msgid "%s: line %d: " msgstr "%s: γραμμή %d: " -#: jobs.c:3962 nojobs.c:891 +#: jobs.c:3869 nojobs.c:882 #, c-format msgid " (core dumped)" msgstr " (core dumped)" -#: jobs.c:3974 jobs.c:3987 +#: jobs.c:3881 jobs.c:3894 #, c-format msgid "(wd now: %s)\n" msgstr "(τώρα wd: %s)\n" -#: jobs.c:4019 +#: jobs.c:3926 msgid "initialize_job_control: getpgrp failed" msgstr "initialize_job_control: αποτυχία getpgrp" -#: jobs.c:4082 +#: jobs.c:3989 msgid "initialize_job_control: line discipline" msgstr "" -#: jobs.c:4092 +#: jobs.c:3999 msgid "initialize_job_control: setpgid" msgstr "initialize_job_control: setpgid" -#: jobs.c:4113 jobs.c:4122 +#: jobs.c:4020 jobs.c:4029 #, c-format msgid "cannot set terminal process group (%d)" msgstr "" -#: jobs.c:4127 +#: jobs.c:4034 msgid "no job control in this shell" msgstr "δεν υπάρχει job control σ'αυτό το κέλυφος" @@ -1319,131 +1304,131 @@ msgstr "Έχεις νέο μήνυμα στο $_" msgid "The mail in %s has been read\n" msgstr "Το μήνυμα στο %s διαβάστηκε\n" -#: make_cmd.c:329 +#: make_cmd.c:326 msgid "syntax error: arithmetic expression required" msgstr "syntax error: απαιτείται αριθμητική έκφραση" -#: make_cmd.c:331 +#: make_cmd.c:328 msgid "syntax error: `;' unexpected" msgstr "συντακτικό σφάλμα: δεν αναμενόταν «;»" -#: make_cmd.c:332 +#: make_cmd.c:329 #, c-format msgid "syntax error: `((%s))'" msgstr "συντακτικό σφάλμα: «((%s))»" -#: make_cmd.c:584 +#: make_cmd.c:581 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:669 +#: make_cmd.c:665 #, c-format msgid "here-document at line %d delimited by end-of-file (wanted `%s')" msgstr "" -#: make_cmd.c:768 +#: make_cmd.c:763 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: η οδηγία της ανακατεύθυνσης «%d» εκτός ορίων" -#: parse.y:2691 +#: parse.y:2685 msgid "maximum here-document count exceeded" msgstr "" -#: parse.y:3379 parse.y:3662 +#: parse.y:3370 parse.y:3653 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "μη αναμενόμενο EOF κατά την αναζήτηση «%c»" -#: parse.y:4279 +#: parse.y:4270 msgid "unexpected EOF while looking for `]]'" msgstr "μη αναμενόμενο EOF ενώ έψαχνα για «]]»" -#: parse.y:4284 -#, fuzzy, c-format +#: parse.y:4275 +#, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error in conditional expression: μη αναμενόμενο σύμβολο «%s»" -#: parse.y:4288 +#: parse.y:4279 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:4366 +#: parse.y:4357 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "μη αναμενόμενο σύμβολο «%s», αναμενόταν «)»" -#: parse.y:4370 +#: parse.y:4361 msgid "expected `)'" msgstr "αναμενόταν «)»" -#: parse.y:4398 +#: parse.y:4389 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:4402 +#: parse.y:4393 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:4448 +#: parse.y:4439 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:4452 +#: parse.y:4443 msgid "conditional binary operator expected" msgstr "" -#: parse.y:4474 +#: parse.y:4465 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:4478 +#: parse.y:4469 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:4489 +#: parse.y:4480 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:4492 +#: parse.y:4483 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:4496 +#: parse.y:4487 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:5853 +#: parse.y:5841 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "συντακτικό σφάλμα κοντά στο μη αναμενόμενο σύμβολο «%s»" -#: parse.y:5871 +#: parse.y:5859 #, c-format msgid "syntax error near `%s'" msgstr "συντακτικό σφάλμα κοντά σε «%s»" -#: parse.y:5881 +#: parse.y:5869 msgid "syntax error: unexpected end of file" msgstr "syntax error: μη αναμενόμενο τέλος αρχείου" -#: parse.y:5881 +#: parse.y:5869 msgid "syntax error" msgstr "συντακτικό σφάλμα" -#: parse.y:5943 +#: parse.y:5931 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Χρήση «%s» για έξοδο από το κέλυφος.\n" -#: parse.y:6105 +#: parse.y:6093 msgid "unexpected EOF while looking for matching `)'" msgstr "μη αναμενόμενο EOF ενώ έψαχνα «)»" @@ -1518,44 +1503,44 @@ msgstr "/dev/(tcp|udp)/host/port δεν υποστηρίζεται χωρίς δ msgid "redirection error: cannot duplicate fd" msgstr "" -#: shell.c:344 +#: shell.c:342 msgid "could not find /tmp, please create!" msgstr "δεν μπόρεσα να βρω /tmp, παρακαλώ να τον δημιουργήσετε!" -#: shell.c:348 +#: shell.c:346 msgid "/tmp must be a valid directory name" msgstr "/tmp πρέπει να είναι ένα έγκυρο όνομα αρχείου" -#: shell.c:904 +#: shell.c:902 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: μη έγκυρη επιλογή" -#: shell.c:1259 -#, fuzzy, c-format +#: shell.c:1257 +#, c-format msgid "cannot set uid to %d: effective uid %d" -msgstr "αδυναμία επανάταξης nodelay mode για fd %d" +msgstr "" -#: shell.c:1266 -#, fuzzy, c-format +#: shell.c:1264 +#, c-format msgid "cannot set gid to %d: effective gid %d" -msgstr "αδυναμία επανάταξης nodelay mode για fd %d" +msgstr "" -#: shell.c:1541 -#, fuzzy, c-format +#: shell.c:1539 +#, c-format msgid "%s: Is a directory" msgstr "%s: είναι κατάλογος" -#: shell.c:1752 +#: shell.c:1744 msgid "I have no name!" msgstr "Δεν έχω όνομα!" -#: shell.c:1905 +#: shell.c:1895 #, c-format msgid "GNU bash, version %s-(%s)\n" msgstr "GNU bash, έκδοση %s-(%s)\n" -#: shell.c:1906 +#: shell.c:1896 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1564,48 +1549,44 @@ msgstr "" "Χρήση:\t%s [μακρά επιλογή GNU] [επιλογή] ...\n" "\t%s [μακρά επιλογή GNU] [επιλοη] script-file ...\n" -#: shell.c:1908 +#: shell.c:1898 msgid "GNU long options:\n" msgstr "Μακρές επιλογές GNU:\n" -#: shell.c:1912 +#: shell.c:1902 msgid "Shell options:\n" msgstr "Επιλογές κελύφους:\n" -#: shell.c:1913 +#: shell.c:1903 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1928 +#: shell.c:1918 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ή επιλογή -o\n" -#: shell.c:1934 +#: shell.c:1924 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" -msgstr "" -"Πληκτρολόγησε «%s -c \"help set\"» για πληροφορίες επί των επιλογών " -"κελύφους.\n" +msgstr "Πληκτρολόγησε «%s -c \"help set\"» για πληροφορίες επί των επιλογών κελύφους.\n" -#: shell.c:1935 +#: shell.c:1925 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" -msgstr "" -"Πληκτρολόγησε «%s -c help» για περισσότερες πληροφορίες σχετικά με τις " -"ενσωματομένες στο κέλυφος εντολές.\n" +msgstr "Πληκτρολόγησε «%s -c help» για περισσότερες πληροφορίες σχετικά με τις ενσωματομένες στο κέλυφος εντολές.\n" -#: shell.c:1936 +#: shell.c:1926 #, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Χρησιμοποίησε την εντολή «bashbug» για αναφορά σφαλμάτων.\n" -#: shell.c:1938 +#: shell.c:1928 #, c-format msgid "bash home page: \n" msgstr "" -#: shell.c:1939 +#: shell.c:1929 #, c-format msgid "General help using GNU software: \n" msgstr "" @@ -1784,93 +1765,91 @@ msgstr "Άγνωστο σήμα #" msgid "Unknown Signal #%d" msgstr "Άγνωστο σήμα #%d" -#: subst.c:1415 subst.c:1573 +#: subst.c:1401 subst.c:1559 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:3099 +#: subst.c:2910 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:5645 subst.c:5661 +#: subst.c:5449 subst.c:5465 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:5703 +#: subst.c:5498 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:5753 +#: subst.c:5548 #, c-format msgid "cannot open named pipe %s for reading" msgstr "αδυναμία ανοίγματοε επώνυμης σωλήνας %s προς ανάγνωση" -#: subst.c:5755 +#: subst.c:5550 #, c-format msgid "cannot open named pipe %s for writing" msgstr "αδυναμία ανοίγματος επώνυμης σωλήνας %s προς εγγραφή" -#: subst.c:5778 +#: subst.c:5568 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:5988 +#: subst.c:5775 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:6027 +#: subst.c:5814 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:6050 +#: subst.c:5833 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:6560 subst.c:8222 subst.c:8242 +#: subst.c:6343 subst.c:8032 subst.c:8052 #, c-format msgid "%s: bad substitution" msgstr "%s: κακή αντικατάσταση" -#: subst.c:6682 -#, fuzzy, c-format +#: subst.c:6455 +#, c-format msgid "%s: invalid indirect expansion" -msgstr "%s: μη έγκυρος αριθμός γραμμής" +msgstr "" -#: subst.c:6689 -#, fuzzy, c-format +#: subst.c:6462 +#, c-format msgid "%s: invalid variable name" -msgstr "«%s»: μη έγκυρο ψευδώνημο" +msgstr "%s: μη έγκυρο όνομα μεταβλητής" -#: subst.c:6736 +#: subst.c:6509 #, c-format msgid "%s: parameter null or not set" msgstr "%s: παράμετρος κενή ή δεν έχει οριστεί" -#: subst.c:6971 subst.c:6986 +#: subst.c:6781 subst.c:6796 #, c-format msgid "%s: substring expression < 0" msgstr "%s: έκφραση αρνητική < 0" -#: subst.c:8320 +#: subst.c:8130 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: αδύνατη ανάθεση κατ' αυτόν τον τρόπο" -#: subst.c:8659 -msgid "" -"future versions of the shell will force evaluation as an arithmetic " -"substitution" +#: subst.c:8469 +msgid "future versions of the shell will force evaluation as an arithmetic substitution" msgstr "" -#: subst.c:9199 +#: subst.c:9009 #, c-format msgid "bad substitution: no closing \"`\" in %s" msgstr "κακή αντικατάσταση: δεν υπάρχει «`» που κλείνει στο %s" -#: subst.c:10139 +#: subst.c:9947 #, c-format msgid "no match: %s" msgstr "" @@ -1907,22 +1886,21 @@ msgstr "%s: αναμενόταν δυαδικός τελεστής" msgid "missing `]'" msgstr "απούσα «]»" -#: trap.c:224 +#: trap.c:223 msgid "invalid signal number" msgstr "μη έγκυρος αριθμός σήματος" -#: trap.c:386 +#: trap.c:385 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:390 +#: trap.c:389 #, 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:443 +#: trap.c:442 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: κακό σήμα %d" @@ -1932,83 +1910,78 @@ msgstr "trap_handler: κακό σήμα %d" msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:810 +#: variables.c:801 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "επίπεδο κελύφους (%d) πολύ υψηλό, επαναφορά στο 1" -#: variables.c:1916 +#: variables.c:1902 #, c-format msgid "%s: circular name reference" msgstr "" -#: variables.c:2328 +#: variables.c:2314 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no function context at current scope" -#: variables.c:2347 +#: variables.c:2333 #, c-format msgid "%s: variable may not be assigned value" msgstr "" -#: variables.c:3753 +#: variables.c:3739 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no function context at current scope" -#: variables.c:4030 +#: variables.c:4016 #, c-format msgid "%s has null exportstr" msgstr "%s έχει κενό exportstr" -#: variables.c:4035 variables.c:4044 +#: variables.c:4021 variables.c:4030 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "ο χαρακτήρας %d δεν έίναι έγκυρος στην exportstr για %s" -#: variables.c:4050 +#: variables.c:4036 #, c-format msgid "no `=' in exportstr for %s" msgstr "απουσία «=» στην exportstr για %s" -#: variables.c:4495 +#: variables.c:4471 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:4508 +#: variables.c:4484 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no global_variables context" -#: variables.c:4582 +#: variables.c:4558 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "pop_scope: head of shell_variables not a temporary environment scope" -#: variables.c:5426 +#: variables.c:5402 #, c-format msgid "%s: %s: cannot open as FILE" msgstr "%s: %s: αδυναμία ανοίγματος ως ΑΡΧΕΙΟ" -#: variables.c:5431 +#: variables.c:5407 #, c-format msgid "%s: %s: invalid value for trace file descriptor" msgstr "" -#: variables.c:5476 +#: variables.c:5452 #, c-format msgid "%s: %s: compatibility value out of range" msgstr "" #: version.c:46 -#, fuzzy msgid "Copyright (C) 2015 Free Software Foundation, Inc." -msgstr "Copyright (C) 2012 Free Software Foundation, Inc." +msgstr "Copyright (C) 2015 Free Software Foundation, Inc." #: version.c:47 version2.c:47 -msgid "" -"License GPLv3+: GNU GPL version 3 or later \n" -msgstr "" -"License GPLv3+: GNU GPL έκδοση 3 ή νεώτερη \n" +msgid "License GPLv3+: GNU GPL version 3 or later \n" +msgstr "License GPLv3+: GNU GPL έκδοση 3 ή νεώτερη \n" #: version.c:86 version2.c:86 #, c-format @@ -2024,9 +1997,8 @@ msgid "There is NO WARRANTY, to the extent permitted by law." msgstr "There is NO WARRANTY, to the extent permitted by law." #: version2.c:46 -#, fuzzy msgid "Copyright (C) 2014 Free Software Foundation, Inc." -msgstr "Copyright (C) 2012 Free Software Foundation, Inc." +msgstr "Copyright (C) 2014 Free Software Foundation, Inc." #: xmalloc.c:91 #, c-format @@ -2048,347 +2020,319 @@ msgstr "%s: %s:%d: αδυναμία εκχώρησης %lu bytes (%lu bytes εκ msgid "%s: %s:%d: cannot allocate %lu bytes" msgstr "%s: %s:%d: αδυναμία εκχώρησης %lu bytes" -#: builtins.c:45 +#: builtins.c:43 msgid "alias [-p] [name[=value] ... ]" msgstr "alias [-p] [name[=value] ... ]" -#: builtins.c:49 +#: builtins.c:47 msgid "unalias [-a] name [name ...]" msgstr "unalias [-a] name [name ...]" -#: builtins.c:53 -msgid "" -"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function or readline-command]" -msgstr "" -"bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" -"x keyseq:shell-command] [keyseq:readline-function ή readline-command]" +#: builtins.c:51 +msgid "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function ή readline-command]" -#: builtins.c:56 +#: builtins.c:54 msgid "break [n]" msgstr "break [n]" -#: builtins.c:58 +#: builtins.c:56 msgid "continue [n]" msgstr "continue [n]" -#: builtins.c:60 +#: builtins.c:58 msgid "builtin [shell-builtin [arg ...]]" msgstr "builtin [shell-builtin [arg ...]]" -#: builtins.c:63 +#: builtins.c:61 msgid "caller [expr]" msgstr "caller [expr]" -#: builtins.c:66 -#, fuzzy +#: builtins.c:64 msgid "cd [-L|[-P [-e]] [-@]] [dir]" -msgstr "cd [-L|[-P [-e]]] [dir]" +msgstr "cd [-L|[-P [-e]] [-@]] [dir]" -#: builtins.c:68 +#: builtins.c:66 msgid "pwd [-LP]" msgstr "pwd [-LP]" -#: builtins.c:76 +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "αληθής" + +#: builtins.c:72 +msgid "false" +msgstr "ψευδής" + +#: builtins.c:74 msgid "command [-pVv] command [arg ...]" msgstr "command [-pVv] command [arg ...]" -#: builtins.c:78 +#: builtins.c:76 msgid "declare [-aAfFgilnrtux] [-p] [name[=value] ...]" msgstr "declare [-aAfFgilnrtux] [-p] [name[=value] ...]" -#: builtins.c:80 -#, fuzzy +#: builtins.c:78 msgid "typeset [-aAfFgilnrtux] [-p] name[=value] ..." -msgstr "typeset [-aAfFgilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFgilnrtux] [-p] name[=value] ..." -#: builtins.c:82 +#: builtins.c:80 msgid "local [option] name[=value] ..." msgstr "local [option] name[=value] ..." -#: builtins.c:85 +#: builtins.c:83 msgid "echo [-neE] [arg ...]" msgstr "echo [-neE] [arg ...]" -#: builtins.c:89 +#: builtins.c:87 msgid "echo [-n] [arg ...]" msgstr "echo [-n] [arg ...]" -#: builtins.c:92 +#: builtins.c:90 msgid "enable [-a] [-dnps] [-f filename] [name ...]" msgstr "enable [-a] [-dnps] [-f filename] [name ...]" -#: builtins.c:94 +#: builtins.c:92 msgid "eval [arg ...]" msgstr "eval [arg ...]" -#: builtins.c:96 +#: builtins.c:94 msgid "getopts optstring name [arg]" msgstr "getopts optstring name [arg]" -#: builtins.c:98 +#: builtins.c:96 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" msgstr "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" -#: builtins.c:100 +#: builtins.c:98 msgid "exit [n]" msgstr "exit [n]" -#: builtins.c:102 +#: builtins.c:100 msgid "logout [n]" msgstr "logout [n]" -#: builtins.c:105 +#: builtins.c:103 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" msgstr "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" -#: builtins.c:109 +#: builtins.c:107 msgid "fg [job_spec]" msgstr "fg [job_spec]" -#: builtins.c:113 +#: builtins.c:111 msgid "bg [job_spec ...]" msgstr "bg [job_spec ...]" -#: builtins.c:116 +#: builtins.c:114 msgid "hash [-lr] [-p pathname] [-dt] [name ...]" msgstr "hash [-lr] [-p pathname] [-dt] [name ...]" -#: builtins.c:119 +#: builtins.c:117 msgid "help [-dms] [pattern ...]" msgstr "help [-dms] [pattern ...]" -#: builtins.c:123 -msgid "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" -msgstr "" -"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " -"[arg...]" +#: builtins.c:121 +msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]" +msgstr "history [-c] [-d offset] [n] ή history -anrw [filename] ή history -ps arg [arg...]" -#: builtins.c:127 +#: builtins.c:125 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" msgstr "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" -#: builtins.c:131 -#, fuzzy -msgid "disown [-h] [-ar] [jobspec ... | pid ...]" +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" msgstr "disown [-h] [-ar] [jobspec ...]" -#: builtins.c:134 -msgid "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" -msgstr "" -"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " -"[sigspec]" +#: builtins.c:132 +msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]" +msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]" -#: builtins.c:136 +#: builtins.c:134 msgid "let arg [arg ...]" msgstr "let arg [arg ...]" -#: builtins.c:138 -msgid "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " -"prompt] [-t timeout] [-u fd] [name ...]" -msgstr "" -"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p " -"prompt] [-t timeout] [-u fd] [name ...]" +#: builtins.c:136 +msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]" +msgstr "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]" -#: builtins.c:140 +#: builtins.c:138 msgid "return [n]" msgstr "return [n]" -#: builtins.c:142 +#: builtins.c:140 msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]" msgstr "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]" -#: builtins.c:144 +#: builtins.c:142 msgid "unset [-f] [-v] [-n] [name ...]" msgstr "unset [-f] [-v] [-n] [name ...]" -#: builtins.c:146 +#: builtins.c:144 msgid "export [-fn] [name[=value] ...] or export -p" msgstr "export [-fn] [name[=value] ...] ή export -p" -#: builtins.c:148 +#: builtins.c:146 msgid "readonly [-aAf] [name[=value] ...] or readonly -p" msgstr "readonly [-aAf] [name[=value] ...] ή readonly -p" -#: builtins.c:150 +#: builtins.c:148 msgid "shift [n]" msgstr "shift [n]" -#: builtins.c:152 +#: builtins.c:150 msgid "source filename [arguments]" msgstr "source filename [arguments]" -#: builtins.c:154 +#: builtins.c:152 msgid ". filename [arguments]" msgstr ". όνομα αρχείου [ορίσματα]" -#: builtins.c:157 +#: builtins.c:155 msgid "suspend [-f]" msgstr "suspend [-f]" -#: builtins.c:160 +#: builtins.c:158 msgid "test [expr]" msgstr "test [expr]" -#: builtins.c:162 +#: builtins.c:160 msgid "[ arg... ]" msgstr "[ arg... ]" -#: builtins.c:166 +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 msgid "trap [-lp] [[arg] signal_spec ...]" msgstr "trap [-lp] [[arg] signal_spec ...]" -#: builtins.c:168 +#: builtins.c:166 msgid "type [-afptP] name [name ...]" msgstr "type [-afptP] name [name ...]" -#: builtins.c:171 -#, fuzzy +#: builtins.c:169 msgid "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]" -msgstr "ulimit [-SHabcdefilmnpqrstuvxT] [limit]" +msgstr "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]" -#: builtins.c:174 +#: builtins.c:172 msgid "umask [-p] [-S] [mode]" msgstr "umask [-p] [-S] [mode]" -#: builtins.c:177 +#: builtins.c:175 msgid "wait [-n] [id ...]" msgstr "wait [-n] [id ...]" -#: builtins.c:181 +#: builtins.c:179 msgid "wait [pid ...]" msgstr "wait [pid ...]" -#: builtins.c:184 +#: builtins.c:182 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" msgstr "for NAME [in WORDS ... ] ; do COMMANDS; done" -#: builtins.c:186 +#: builtins.c:184 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" msgstr "for (( exp1; exp2; exp3 )); do COMMANDS; done" -#: builtins.c:188 +#: builtins.c:186 msgid "select NAME [in WORDS ... ;] do COMMANDS; done" msgstr "select NAME [in WORDS ... ;] do COMMANDS; done" -#: builtins.c:190 +#: builtins.c:188 msgid "time [-p] pipeline" msgstr "time [-p] pipeline" -#: builtins.c:192 +#: builtins.c:190 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" msgstr "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" -#: builtins.c:194 -msgid "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" -msgstr "" -"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " -"COMMANDS; ] fi" +#: builtins.c:192 +msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi" +msgstr "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi" -#: builtins.c:196 +#: builtins.c:194 msgid "while COMMANDS; do COMMANDS; done" msgstr "while COMMANDS; do COMMANDS; done" -#: builtins.c:198 +#: builtins.c:196 msgid "until COMMANDS; do COMMANDS; done" msgstr "until COMMANDS; do COMMANDS; done" -#: builtins.c:200 +#: builtins.c:198 msgid "coproc [NAME] command [redirections]" msgstr "coproc [NAME] command [redirections]" -#: builtins.c:202 +#: builtins.c:200 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" msgstr "function name { COMMANDS ; } ή name () { COMMANDS ; }" -#: builtins.c:204 +#: builtins.c:202 msgid "{ COMMANDS ; }" msgstr "{ COMMANDS ; }" -#: builtins.c:206 +#: builtins.c:204 msgid "job_spec [&]" msgstr "job_spec [&]" -#: builtins.c:208 +#: builtins.c:206 msgid "(( expression ))" msgstr "(( expression ))" -#: builtins.c:210 +#: builtins.c:208 msgid "[[ expression ]]" msgstr "[[ expression ]]" -#: builtins.c:212 +#: builtins.c:210 msgid "variables - Names and meanings of some shell variables" msgstr "variables - Ονόματα και σημασία ορισμένων μεταβλητών του κελύφους" -#: builtins.c:215 +#: builtins.c:213 msgid "pushd [-n] [+N | -N | dir]" msgstr "pushd [-n] [+N | -N | dir]" -#: builtins.c:219 +#: builtins.c:217 msgid "popd [-n] [+N | -N]" msgstr "popd [-n] [+N | -N]" -#: builtins.c:223 +#: builtins.c:221 msgid "dirs [-clpv] [+N] [-N]" msgstr "dirs [-clpv] [+N] [-N]" -#: builtins.c:226 +#: builtins.c:224 msgid "shopt [-pqsu] [-o] [optname ...]" msgstr "shopt [-pqsu] [-o] [optname ...]" -#: builtins.c:228 +#: builtins.c:226 msgid "printf [-v var] format [arguments]" msgstr "printf [-v var] format [ορίσματα]" -#: builtins.c:231 -msgid "" -"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" -"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " -"suffix] [name ...]" -msgstr "" -"complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-" -"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S " -"suffix] [name ...]" +#: builtins.c:229 +msgid "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]" +msgstr "complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]" -#: builtins.c:235 -#, fuzzy -msgid "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -msgstr "" -"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " -"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +#: builtins.c:233 +msgid "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" -#: builtins.c:239 +#: builtins.c:237 msgid "compopt [-o|+o option] [-DE] [name ...]" msgstr "compopt [-o|+o option] [-DE] [name ...]" +#: builtins.c:240 +msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" +msgstr "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" + #: builtins.c:242 -#, fuzzy -msgid "" -"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C " -"callback] [-c quantum] [array]" -msgstr "" -"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" +msgid "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" +msgstr "readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]" -#: builtins.c:244 -msgid "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" -msgstr "" -"readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " -"quantum] [array]" - -#: builtins.c:256 +#: builtins.c:254 msgid "" "Define or display aliases.\n" " \n" @@ -2403,13 +2347,11 @@ msgid "" " -p\tprint all defined aliases in a reusable format\n" " \n" " Exit Status:\n" -" alias returns true unless a NAME is supplied for which no alias has " -"been\n" +" alias returns true unless a NAME is supplied for which no alias has been\n" " defined." msgstr "" -#: builtins.c:278 -#, fuzzy +#: builtins.c:276 msgid "" "Remove each NAME from the list of defined aliases.\n" " \n" @@ -2418,14 +2360,14 @@ msgid "" " \n" " Return success unless a NAME is not an existing alias." msgstr "" -"Αφαίρεση κάθε ΟΝΟΜΑτος από τη λίστα των καθορισμένων ψευδωνήμων.\n" +"Αφαίρεση κάθε ΟΝΟΜΑτος από τη λίστα των καθορισμένων ψευδωνύμων.\n" " \n" " Επιλογές:\n" -" -a\tαφαίρεση όλων των ψευδωνήμων.\n" +" -a\tαφαίρεση όλων των ψευδωνύμων.\n" " \n" -" Επιστρέφει επιτυχία εκτός αν το ΟΝΟΜΑ δεν είναι υπάρχον ψευδώνημο." +" Επιστρέφει επιτυχία εκτός αν το ΟΝΟΜΑ δεν είναι υπαρκτό ψευδώνυμο." -#: builtins.c:291 +#: builtins.c:289 msgid "" "Set Readline key bindings and variables.\n" " \n" @@ -2437,37 +2379,32 @@ msgid "" " Options:\n" " -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n" " vi-command, and vi-insert.\n" " -l List names of functions.\n" " -P List function names and bindings.\n" " -p List functions and bindings in a form that can be\n" " reused as input.\n" -" -S List key sequences that invoke macros and their " -"values\n" -" -s List key sequences that invoke macros and their " -"values\n" +" -S List key sequences that invoke macros and their values\n" +" -s List key sequences that invoke macros and their values\n" " in a form that can be reused as input.\n" " -V List variable names and values\n" " -v List variable names and values in a form that can\n" " be reused as input.\n" " -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" +" -u function-name Unbind all keys which are bound to the named function.\n" " -r keyseq Remove the binding for KEYSEQ.\n" " -f filename Read key bindings from FILENAME.\n" " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" " \t\t\t\tKEYSEQ is entered.\n" -" -X List key sequences bound with -x and associated " -"commands\n" +" -X List key sequences bound with -x and associated commands\n" " in a form that can be reused as input.\n" " \n" " Exit Status:\n" " bind returns 0 unless an unrecognized option is given or an error occurs." msgstr "" -#: builtins.c:330 +#: builtins.c:328 msgid "" "Exit for, while, or until loops.\n" " \n" @@ -2478,7 +2415,7 @@ msgid "" " The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -#: builtins.c:342 +#: builtins.c:340 msgid "" "Resume for, while, or until loops.\n" " \n" @@ -2489,21 +2426,20 @@ msgid "" " The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -#: builtins.c:354 +#: builtins.c:352 msgid "" "Execute shell builtins.\n" " \n" " Execute SHELL-BUILTIN with arguments ARGs without performing command\n" " lookup. This is useful when you wish to reimplement a shell builtin\n" -" as a shell function, but need to execute the builtin within the " -"function.\n" +" as a shell function, but need to execute the builtin within the function.\n" " \n" " Exit Status:\n" " Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" " not a shell builtin.." msgstr "" -#: builtins.c:369 +#: builtins.c:367 msgid "" "Return the context of the current subroutine call.\n" " \n" @@ -2519,26 +2455,20 @@ msgid "" " is invalid." msgstr "" -#: builtins.c:387 +#: builtins.c:385 msgid "" "Change the shell working directory.\n" " \n" -" Change the current directory to DIR. The default DIR is the value of " -"the\n" +" Change the current directory to DIR. The default DIR is the value of the\n" " HOME shell variable.\n" " \n" -" The variable CDPATH defines the search path for the directory " -"containing\n" -" DIR. Alternative directory names in CDPATH are separated by a colon " -"(:).\n" -" A null directory name is the same as the current directory. If DIR " -"begins\n" +" The variable CDPATH defines the search path for the directory containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon (:).\n" +" A null directory name is the same as the current directory. If DIR begins\n" " with a slash (/), then CDPATH is not used.\n" " \n" -" If the directory is not found, and the shell option `cdable_vars' is " -"set,\n" -" the word is assumed to be a variable name. If that variable has a " -"value,\n" +" If the directory is not found, and the shell option `cdable_vars' is set,\n" +" the word is assumed to be a variable name. If that variable has a value,\n" " its value is used for DIR.\n" " \n" " Options:\n" @@ -2554,18 +2484,15 @@ msgid "" " \t\tattributes as a directory containing the file attributes\n" " \n" " The default is to follow symbolic links, as if `-L' were specified.\n" -" `..' is processed by removing the immediately previous pathname " -"component\n" +" `..' is processed by removing the immediately previous pathname component\n" " back to a slash or the beginning of DIR.\n" " \n" " Exit Status:\n" -" Returns 0 if the directory is changed, and if $PWD is set successfully " -"when\n" +" Returns 0 if the directory is changed, and if $PWD is set successfully when\n" " -P is used; non-zero otherwise." msgstr "" -#: builtins.c:425 -#, fuzzy +#: builtins.c:423 msgid "" "Print the name of the current working directory.\n" " \n" @@ -2593,7 +2520,7 @@ msgstr "" " Επιστρέφει 0 εκτός αν δίνεται μη έγκυρη επιλογή ή ο τρέχων κατάλογος\n" " δεν μπορεί να διαβαστεί." -#: builtins.c:442 +#: builtins.c:440 msgid "" "Null command.\n" " \n" @@ -2609,7 +2536,7 @@ msgstr "" " Κατάσταση εξόδου:\n" " Πάντα επιτυχία." -#: builtins.c:453 +#: builtins.c:451 msgid "" "Return a successful result.\n" " \n" @@ -2617,7 +2544,7 @@ msgid "" " Always succeeds." msgstr "" -#: builtins.c:462 +#: builtins.c:460 msgid "" "Return an unsuccessful result.\n" " \n" @@ -2625,13 +2552,12 @@ msgid "" " Always fails." msgstr "" -#: builtins.c:471 +#: builtins.c:469 msgid "" "Execute a simple command or display information about commands.\n" " \n" " Runs COMMAND with ARGS suppressing shell function lookup, or display\n" -" information about the specified COMMANDs. Can be used to invoke " -"commands\n" +" information about the specified COMMANDs. Can be used to invoke commands\n" " on disk when a function with the same name exists.\n" " \n" " Options:\n" @@ -2644,7 +2570,7 @@ msgid "" " Returns exit status of COMMAND, or failure if COMMAND is not found." msgstr "" -#: builtins.c:490 +#: builtins.c:488 msgid "" "Set variable values and attributes.\n" " \n" @@ -2675,8 +2601,7 @@ msgid "" " Variables with the integer attribute have arithmetic evaluation (see\n" " the `let' command) performed when the variable is assigned a value.\n" " \n" -" When used in a function, `declare' makes NAMEs local, as with the " -"`local'\n" +" When used in a function, `declare' makes NAMEs local, as with the `local'\n" " command. The `-g' option suppresses this behavior.\n" " \n" " Exit Status:\n" @@ -2684,14 +2609,14 @@ msgid "" " assignment error occurs." msgstr "" -#: builtins.c:530 +#: builtins.c:528 msgid "" "Set variable values and attributes.\n" " \n" " Obsolete. See `help declare'." msgstr "" -#: builtins.c:538 +#: builtins.c:536 msgid "" "Define local variables.\n" " \n" @@ -2706,12 +2631,11 @@ msgid "" " assignment error occurs, or the shell is not executing a function." msgstr "" -#: builtins.c:555 +#: builtins.c:553 msgid "" "Write arguments to the standard output.\n" " \n" -" Display the ARGs, separated by a single space character and followed by " -"a\n" +" Display the ARGs, separated by a single space character and followed by a\n" " newline, on the standard output.\n" " \n" " Options:\n" @@ -2740,7 +2664,7 @@ msgid "" " Returns success unless a write error occurs." msgstr "" -#: builtins.c:591 +#: builtins.c:589 msgid "" "Write arguments to the standard output.\n" " \n" @@ -2753,7 +2677,7 @@ msgid "" " Returns success unless a write error occurs." msgstr "" -#: builtins.c:606 +#: builtins.c:604 msgid "" "Enable and disable shell builtins.\n" " \n" @@ -2780,19 +2704,18 @@ msgid "" " Returns success unless NAME is not a shell builtin or an error occurs." msgstr "" -#: builtins.c:634 +#: builtins.c:632 msgid "" "Execute arguments as a shell command.\n" " \n" -" Combine ARGs into a single string, use the result as input to the " -"shell,\n" +" Combine ARGs into a single string, use the result as input to the shell,\n" " and execute the resulting commands.\n" " \n" " Exit Status:\n" " Returns exit status of command or success if command is null." msgstr "" -#: builtins.c:646 +#: builtins.c:644 msgid "" "Parse option arguments.\n" " \n" @@ -2833,13 +2756,12 @@ msgid "" " encountered or an error occurs." msgstr "" -#: builtins.c:688 +#: builtins.c:686 msgid "" "Replace the shell with the given command.\n" " \n" " Execute COMMAND, replacing this shell with the specified program.\n" -" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " -"specified,\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,\n" " any redirections take effect in the current shell.\n" " \n" " Options:\n" @@ -2847,16 +2769,14 @@ msgid "" " -c\texecute COMMAND with an empty environment\n" " -l\tplace a dash in the zeroth argument to COMMAND\n" " \n" -" If the command cannot be executed, a non-interactive shell exits, " -"unless\n" +" If the command cannot be executed, a non-interactive shell exits, unless\n" " the shell option `execfail' is set.\n" " \n" " Exit Status:\n" -" Returns success unless COMMAND is not found or a redirection error " -"occurs." +" Returns success unless COMMAND is not found or a redirection error occurs." msgstr "" -#: builtins.c:709 +#: builtins.c:707 msgid "" "Exit the shell.\n" " \n" @@ -2864,28 +2784,25 @@ msgid "" " is that of the last command executed." msgstr "" -#: builtins.c:718 +#: builtins.c:716 msgid "" "Exit a login shell.\n" " \n" -" Exits a login shell with exit status N. Returns an error if not " -"executed\n" +" Exits a login shell with exit status N. Returns an error if not executed\n" " in a login shell." msgstr "" -#: builtins.c:728 +#: builtins.c:726 msgid "" "Display or execute commands from the history list.\n" " \n" -" fc is used to list or edit and re-execute commands from the history " -"list.\n" +" fc is used to list or edit and re-execute commands from the history list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" " Options:\n" -" -e ENAME\tselect which editor to use. Default is FCEDIT, then " -"EDITOR,\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then EDITOR,\n" " \t\tthen vi\n" " -l \tlist lines instead of editing\n" " -n\tomit line numbers when listing\n" @@ -2899,11 +2816,10 @@ msgid "" " the last command.\n" " \n" " Exit Status:\n" -" Returns success or status of executed command; non-zero if an error " -"occurs." +" Returns success or status of executed command; non-zero if an error occurs." msgstr "" -#: builtins.c:758 +#: builtins.c:756 msgid "" "Move job to the foreground.\n" " \n" @@ -2915,27 +2831,24 @@ msgid "" " Status of command placed in foreground, or failure if an error occurs." msgstr "" -#: builtins.c:773 +#: builtins.c:771 msgid "" "Move jobs to the background.\n" " \n" -" Place the jobs identified by each JOB_SPEC in the background, as if " -"they\n" -" had been started with `&'. If JOB_SPEC is not present, the shell's " -"notion\n" +" Place the jobs identified by each JOB_SPEC in the background, as if they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's notion\n" " of the current job is used.\n" " \n" " Exit Status:\n" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:787 +#: builtins.c:785 msgid "" "Remember or display program locations.\n" " \n" " Determine and remember the full pathname of each command NAME. If\n" -" no arguments are given, information about remembered commands is " -"displayed.\n" +" no arguments are given, information about remembered commands is displayed.\n" " \n" " Options:\n" " -d\tforget the remembered location of each NAME\n" @@ -2953,7 +2866,7 @@ msgid "" " Returns success unless NAME is not found or an invalid option is given." msgstr "" -#: builtins.c:812 +#: builtins.c:810 msgid "" "Display information about builtin commands.\n" " \n" @@ -2971,11 +2884,10 @@ msgid "" " PATTERN\tPattern specifiying a help topic\n" " \n" " Exit Status:\n" -" Returns success unless PATTERN is not found or an invalid option is " -"given." +" Returns success unless PATTERN is not found or an invalid option is given." msgstr "" -#: builtins.c:836 +#: builtins.c:834 msgid "" "Display or manipulate the history list.\n" " \n" @@ -2988,10 +2900,10 @@ msgid "" " \n" " -a\tappend history lines from this session to the history file\n" " -n\tread all history lines not already read from the history file\n" -" \t\tand append them to the history list\n" " -r\tread the history file and append the contents to the history\n" " \t\tlist\n" " -w\twrite the current history to the history file\n" +" \t\tand append them to the history list\n" " \n" " -p\tperform history expansion on each ARG and display the result\n" " \t\twithout storing it in the history list\n" @@ -3002,14 +2914,13 @@ msgid "" " \n" " If the HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed " -"otherwise.\n" +" with each displayed history entry. No time stamps are printed otherwise.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is given or an error occurs." msgstr "" -#: builtins.c:872 +#: builtins.c:870 msgid "" "Display status of jobs.\n" " \n" @@ -3033,7 +2944,7 @@ msgid "" " If -x is used, returns the exit status of COMMAND." msgstr "" -#: builtins.c:899 +#: builtins.c:897 msgid "" "Remove jobs from current shell.\n" " \n" @@ -3050,7 +2961,7 @@ msgid "" " Returns success unless an invalid option or JOBSPEC is given." msgstr "" -#: builtins.c:918 +#: builtins.c:916 msgid "" "Send a signal to a job.\n" " \n" @@ -3063,7 +2974,6 @@ msgid "" " -n sig\tSIG is a signal number\n" " -l\tlist the signal names; if arguments follow `-l' they are\n" " \t\tassumed to be signal numbers for which names should be listed\n" -" -L\tsynonym for -l\n" " \n" " Kill is a shell builtin for two reasons: it allows job IDs to be used\n" " instead of process IDs, and allows processes to be killed if the limit\n" @@ -3073,15 +2983,14 @@ msgid "" " Returns success unless an invalid option is given or an error occurs." msgstr "" -#: builtins.c:942 +#: builtins.c:939 msgid "" "Evaluate arithmetic expressions.\n" " \n" " Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" " fixed-width integers with no check for overflow, though division by 0\n" " is trapped and flagged as an error. The following list of operators is\n" -" grouped into levels of equal-precedence operators. The levels are " -"listed\n" +" grouped into levels of equal-precedence operators. The levels are listed\n" " in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" @@ -3118,21 +3027,18 @@ msgid "" " If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise." msgstr "" -#: builtins.c:987 +#: builtins.c:984 msgid "" "Read a line from the standard input and split it into fields.\n" " \n" " Reads a single line from the standard input, or from file descriptor FD\n" -" if the -u option is supplied. The line is split into fields as with " -"word\n" +" if the -u option is supplied. The line is split into fields as with word\n" " splitting, and the first word is assigned to the first NAME, the second\n" " word to the second NAME, and so on, with any leftover words assigned to\n" -" the last NAME. Only the characters found in $IFS are recognized as " -"word\n" +" the last NAME. Only the characters found in $IFS are recognized as word\n" " delimiters.\n" " \n" -" If no NAMEs are supplied, the line read is stored in the REPLY " -"variable.\n" +" If no NAMEs are supplied, the line read is stored in the REPLY variable.\n" " \n" " Options:\n" " -a array\tassign the words read to sequential indices of the array\n" @@ -3144,8 +3050,7 @@ msgid "" " -n nchars\treturn after reading NCHARS characters rather than waiting\n" " \t\tfor a newline, but honor a delimiter if fewer than\n" " \t\tNCHARS characters are read before the delimiter\n" -" -N nchars\treturn only after reading exactly NCHARS characters, " -"unless\n" +" -N nchars\treturn only after reading exactly NCHARS characters, unless\n" " \t\tEOF is encountered or read times out, ignoring any\n" " \t\tdelimiter\n" " -p prompt\toutput the string PROMPT without a trailing newline before\n" @@ -3163,14 +3068,12 @@ msgid "" " -u fd\tread from file descriptor FD instead of the standard input\n" " \n" " Exit Status:\n" -" The return code is zero, unless end-of-file is encountered, read times " -"out\n" -" (in which case it's greater than 128), a variable assignment error " -"occurs,\n" +" The return code is zero, unless end-of-file is encountered, read times out\n" +" (in which case it's greater than 128), a variable assignment error occurs,\n" " or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:1034 +#: builtins.c:1031 msgid "" "Return from a shell function.\n" " \n" @@ -3182,7 +3085,7 @@ msgid "" " Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:1047 +#: builtins.c:1044 msgid "" "Set or unset values of shell options and positional parameters.\n" " \n" @@ -3225,8 +3128,7 @@ msgid "" " physical same as -P\n" " pipefail the return value of a pipeline is the status of\n" " the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero " -"status\n" +" or zero if no command exited with a non-zero status\n" " posix change the behavior of bash where the default\n" " operation differs from the Posix standard to\n" " match the standard\n" @@ -3250,8 +3152,7 @@ msgid "" " by default when the shell is interactive.\n" " -P If set, do not resolve symbolic links when executing commands\n" " such as cd which change the current directory.\n" -" -T If set, the DEBUG and RETURN traps are inherited by shell " -"functions.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" " -- Assign any remaining arguments to the positional parameters.\n" " If there are no remaining arguments, the positional parameters\n" " are unset.\n" @@ -3268,7 +3169,7 @@ msgid "" " Returns success unless an invalid option is given." msgstr "" -#: builtins.c:1132 +#: builtins.c:1129 msgid "" "Unset values and attributes of shell variables and functions.\n" " \n" @@ -3280,8 +3181,7 @@ msgid "" " -n\ttreat each NAME as a name reference and unset the variable itself\n" " \t\trather than the variable it references\n" " \n" -" Without options, unset first tries to unset a variable, and if that " -"fails,\n" +" Without options, unset first tries to unset a variable, and if that fails,\n" " tries to unset a function.\n" " \n" " Some variables cannot be unset; also see `readonly'.\n" @@ -3290,13 +3190,12 @@ msgid "" " Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:1154 +#: builtins.c:1151 msgid "" "Set export attribute for shell variables.\n" " \n" " Marks each NAME for automatic export to the environment of subsequently\n" -" executed commands. If VALUE is supplied, assign VALUE before " -"exporting.\n" +" executed commands. If VALUE is supplied, assign VALUE before exporting.\n" " \n" " Options:\n" " -f\trefer to shell functions\n" @@ -3309,7 +3208,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1173 +#: builtins.c:1170 msgid "" "Mark shell variables as unchangeable.\n" " \n" @@ -3330,7 +3229,7 @@ msgid "" " Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:1195 +#: builtins.c:1192 msgid "" "Shift positional parameters.\n" " \n" @@ -3341,7 +3240,7 @@ msgid "" " Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:1207 builtins.c:1222 +#: builtins.c:1204 builtins.c:1219 msgid "" "Execute commands from a file in the current shell.\n" " \n" @@ -3355,7 +3254,7 @@ msgid "" " FILENAME cannot be read." msgstr "" -#: builtins.c:1238 +#: builtins.c:1235 msgid "" "Suspend shell execution.\n" " \n" @@ -3369,7 +3268,7 @@ msgid "" " Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:1254 +#: builtins.c:1251 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3403,8 +3302,7 @@ msgid "" " -x FILE True if the file is executable by you.\n" " -O FILE True if the file is effectively owned by you.\n" " -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " -"read.\n" +" -N FILE True if the file has been modified since it was last read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" " modification date).\n" @@ -3425,8 +3323,7 @@ msgid "" " STRING1 != STRING2\n" " True if the strings are not equal.\n" " STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" +" True if STRING1 sorts before STRING2 lexicographically.\n" " STRING1 > STRING2\n" " True if STRING1 sorts after STRING2 lexicographically.\n" " \n" @@ -3452,7 +3349,7 @@ msgid "" " false or an invalid argument is given." msgstr "" -#: builtins.c:1336 +#: builtins.c:1333 msgid "" "Evaluate conditional expression.\n" " \n" @@ -3460,24 +3357,22 @@ msgid "" " be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:1345 +#: builtins.c:1342 msgid "" "Display process times.\n" " \n" -" Prints the accumulated user and system times for the shell and all of " -"its\n" +" Prints the accumulated user and system times for the shell and all of its\n" " child processes.\n" " \n" " Exit Status:\n" " Always succeeds." msgstr "" -#: builtins.c:1357 +#: builtins.c:1354 msgid "" "Trap signals and other events.\n" " \n" -" Defines and activates handlers to be run when the shell receives " -"signals\n" +" Defines and activates handlers to be run when the shell receives signals\n" " or other conditions.\n" " \n" " ARG is a command to be read and executed when the shell receives the\n" @@ -3486,37 +3381,29 @@ msgid "" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" " shell and by the commands it invokes.\n" " \n" -" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " -"If\n" -" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. " -"If\n" -" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or " -"a\n" -" script run by the . or source builtins finishes executing. A " -"SIGNAL_SPEC\n" -" of ERR means to execute ARG each time a command's failure would cause " -"the\n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. If\n" +" a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n" +" script run by the . or source builtins finishes executing. A SIGNAL_SPEC\n" +" of ERR means to execute ARG each time a command's failure would cause the\n" " shell to exit when the -e option is enabled.\n" " \n" -" If no arguments are supplied, trap prints the list of commands " -"associated\n" +" If no arguments are supplied, trap prints the list of commands associated\n" " with each signal.\n" " \n" " Options:\n" " -l\tprint a list of signal names and their corresponding numbers\n" " -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" " \n" -" Each SIGNAL_SPEC is either a signal name in or a signal " -"number.\n" +" Each SIGNAL_SPEC is either a signal name in or a signal number.\n" " Signal names are case insensitive and the SIG prefix is optional. A\n" " signal may be sent to the shell with \"kill -signal $$\".\n" " \n" " Exit Status:\n" -" Returns success unless a SIGSPEC is invalid or an invalid option is " -"given." +" Returns success unless a SIGSPEC is invalid or an invalid option is given." msgstr "" -#: builtins.c:1393 +#: builtins.c:1390 msgid "" "Display information about command type.\n" " \n" @@ -3542,16 +3429,14 @@ msgid "" " NAME\tCommand name to be interpreted.\n" " \n" " Exit Status:\n" -" Returns success if all of the NAMEs are found; fails if any are not " -"found." +" Returns success if all of the NAMEs are found; fails if any are not found." msgstr "" -#: builtins.c:1424 +#: builtins.c:1421 msgid "" "Modify shell resource limits.\n" " \n" -" Provides control over the resources available to the shell and " -"processes\n" +" Provides control over the resources available to the shell and processes\n" " it creates, on systems that allow such control.\n" " \n" " Options:\n" @@ -3595,7 +3480,7 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1474 +#: builtins.c:1471 msgid "" "Display or set file mode mask.\n" " \n" @@ -3613,16 +3498,14 @@ msgid "" " Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1494 +#: builtins.c:1491 msgid "" "Wait for job completion and return exit status.\n" " \n" -" Waits for each process identified by an ID, which may be a process ID or " -"a\n" +" Waits for each process identified by an ID, which may be a process ID or a\n" " job specification, and reports its termination status. If ID is not\n" " given, waits for all currently active child processes, and the return\n" -" status is zero. If ID is a a job specification, waits for all " -"processes\n" +" status is zero. If ID is a a job specification, waits for all processes\n" " in that job's pipeline.\n" " \n" " If the -n option is supplied, waits for the next job to terminate and\n" @@ -3633,22 +3516,20 @@ msgid "" " option is given." msgstr "" -#: builtins.c:1515 +#: builtins.c:1512 msgid "" "Wait for process completion and return exit status.\n" " \n" -" Waits for each process specified by a PID and reports its termination " -"status.\n" +" Waits for each process specified by a PID and reports its termination status.\n" " If PID is not given, waits for all currently active child processes,\n" " and the return status is zero. PID must be a process ID.\n" " \n" " Exit Status:\n" -" Returns the status of the last PID; fails if PID is invalid or an " -"invalid\n" +" Returns the status of the last PID; fails if PID is invalid or an invalid\n" " option is given." msgstr "" -#: builtins.c:1530 +#: builtins.c:1527 msgid "" "Execute commands for each member in a list.\n" " \n" @@ -3661,7 +3542,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1544 +#: builtins.c:1541 msgid "" "Arithmetic for loop.\n" " \n" @@ -3678,7 +3559,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1562 +#: builtins.c:1559 msgid "" "Select words from a list and execute commands.\n" " \n" @@ -3698,7 +3579,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1583 +#: builtins.c:1580 msgid "" "Report time consumed by pipeline's execution.\n" " \n" @@ -3714,7 +3595,7 @@ msgid "" " The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1600 +#: builtins.c:1597 msgid "" "Execute commands based on pattern matching.\n" " \n" @@ -3725,28 +3606,23 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1612 +#: builtins.c:1609 msgid "" "Execute commands based on conditional.\n" " \n" -" The `if COMMANDS' list is executed. If its exit status is zero, then " -"the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " -"is\n" +" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is\n" " executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. " -"Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of " -"the\n" -" entire construct is the exit status of the last command executed, or " -"zero\n" +" `then COMMANDS' list is executed and the if command completes. Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of the\n" +" entire construct is the exit status of the last command executed, or zero\n" " if no condition tested true.\n" " \n" " Exit Status:\n" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1629 +#: builtins.c:1626 msgid "" "Execute commands as long as a test succeeds.\n" " \n" @@ -3757,7 +3633,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1641 +#: builtins.c:1638 msgid "" "Execute commands as long as a test does not succeed.\n" " \n" @@ -3768,7 +3644,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1653 +#: builtins.c:1650 msgid "" "Create a coprocess named NAME.\n" " \n" @@ -3781,13 +3657,12 @@ msgid "" " Returns the exit status of COMMAND." msgstr "" -#: builtins.c:1667 +#: builtins.c:1664 msgid "" "Define shell function.\n" " \n" " Create a shell function named NAME. When invoked as a simple command,\n" -" NAME runs COMMANDs in the calling shell's context. When NAME is " -"invoked,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is invoked,\n" " the arguments are passed to the function as $1...$n, and the function's\n" " name is in $FUNCNAME.\n" " \n" @@ -3795,7 +3670,7 @@ msgid "" " Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1681 +#: builtins.c:1678 msgid "" "Group commands as a unit.\n" " \n" @@ -3806,7 +3681,7 @@ msgid "" " Returns the status of the last command executed." msgstr "" -#: builtins.c:1693 +#: builtins.c:1690 msgid "" "Resume job in foreground.\n" " \n" @@ -3820,7 +3695,7 @@ msgid "" " Returns the status of the resumed job." msgstr "" -#: builtins.c:1708 +#: builtins.c:1705 msgid "" "Evaluate arithmetic expression.\n" " \n" @@ -3831,16 +3706,13 @@ msgid "" " Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1720 +#: builtins.c:1717 msgid "" "Execute conditional command.\n" " \n" -" Returns a status of 0 or 1 depending on the evaluation of the " -"conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries " -"used\n" -" by the `test' builtin, and may be combined using the following " -"operators:\n" +" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries used\n" +" by the `test' builtin, and may be combined using the following operators:\n" " \n" " ( EXPRESSION )\tReturns the value of EXPRESSION\n" " ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" @@ -3859,7 +3731,7 @@ msgid "" " 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1746 +#: builtins.c:1743 msgid "" "Common shell variable names and usage.\n" " \n" @@ -3913,7 +3785,7 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1803 +#: builtins.c:1800 msgid "" "Add directories to stack.\n" " \n" @@ -3944,7 +3816,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1837 +#: builtins.c:1834 msgid "" "Remove directories from stack.\n" " \n" @@ -3971,7 +3843,7 @@ msgid "" " change fails." msgstr "" -#: builtins.c:1867 +#: builtins.c:1864 msgid "" "Display directory stack.\n" " \n" @@ -4000,13 +3872,12 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1898 +#: builtins.c:1895 msgid "" "Set and unset shell options.\n" " \n" " Change the setting of each shell option OPTNAME. Without any option\n" -" arguments, list all shell options with an indication of whether or not " -"each\n" +" arguments, list all shell options with an indication of whether or not each\n" " is set.\n" " \n" " Options:\n" @@ -4021,7 +3892,7 @@ msgid "" " given or OPTNAME is disabled." msgstr "" -#: builtins.c:1919 +#: builtins.c:1916 msgid "" "Formats and prints ARGUMENTS under control of the FORMAT.\n" " \n" @@ -4029,45 +3900,36 @@ msgid "" " -v var\tassign the output to shell variable VAR rather than\n" " \t\tdisplay it on the standard output\n" " \n" -" FORMAT is a character string which contains three types of objects: " -"plain\n" -" characters, which are simply copied to standard output; character " -"escape\n" +" FORMAT is a character string which contains three types of objects: plain\n" +" characters, which are simply copied to standard output; character escape\n" " sequences, which are converted and copied to the standard output; and\n" -" format specifications, each of which causes printing of the next " -"successive\n" +" format specifications, each of which causes printing of the next successive\n" " argument.\n" " \n" -" In addition to the standard format specifications described in printf" -"(1),\n" +" In addition to the standard format specifications described in printf(1),\n" " printf interprets:\n" " \n" " %b\texpand backslash escape sequences in the corresponding argument\n" " %q\tquote the argument in a way that can be reused as shell input\n" -" %(fmt)T\toutput the date-time string resulting from using FMT as a " -"format\n" +" %(fmt)T\toutput the date-time string resulting from using FMT as a format\n" " \t string for strftime(3)\n" " \n" " The format is re-used as necessary to consume all of the arguments. If\n" " there are fewer arguments than the format requires, extra format\n" -" specifications behave as if a zero value or null string, as " -"appropriate,\n" +" specifications behave as if a zero value or null string, as appropriate,\n" " had been supplied.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or a write or " -"assignment\n" +" Returns success unless an invalid option is given or a write or assignment\n" " error occurs." msgstr "" -#: builtins.c:1953 +#: builtins.c:1950 msgid "" "Specify how arguments are to be completed by Readline.\n" " \n" -" For each NAME, specify how arguments are to be completed. If no " -"options\n" -" are supplied, existing completion specifications are printed in a way " -"that\n" +" For each NAME, specify how arguments are to be completed. If no options\n" +" are supplied, existing completion specifications are printed in a way that\n" " allows them to be reused as input.\n" " \n" " Options:\n" @@ -4087,29 +3949,25 @@ msgid "" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1981 +#: builtins.c:1978 msgid "" "Display possible completions depending on the options.\n" " \n" " Intended to be used from within a shell function generating possible\n" -" completions. If the optional WORD argument is supplied, matches " -"against\n" +" completions. If the optional WORD argument is supplied, matches against\n" " WORD are generated.\n" " \n" " Exit Status:\n" " Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1996 +#: builtins.c:1993 msgid "" "Modify or display completion options.\n" " \n" -" Modify the completion options for each NAME, or, if no NAMEs are " -"supplied,\n" -" the completion currently being executed. If no OPTIONs are given, " -"print\n" -" the completion options for each NAME or the current completion " -"specification.\n" +" Modify the completion options for each NAME, or, if no NAMEs are supplied,\n" +" the completion currently being executed. If no OPTIONs are given, print\n" +" the completion options for each NAME or the current completion specification.\n" " \n" " Options:\n" " \t-o option\tSet completion option OPTION for each NAME\n" @@ -4131,26 +3989,21 @@ msgid "" " have a completion specification defined." msgstr "" -#: builtins.c:2026 +#: builtins.c:2023 msgid "" "Read lines from the standard input into an indexed array variable.\n" " \n" -" Read lines from the standard input into the indexed array variable " -"ARRAY, or\n" -" from file descriptor FD if the -u option is supplied. The variable " -"MAPFILE\n" +" Read lines from the standard input into the indexed array variable ARRAY, or\n" +" from file descriptor FD if the -u option is supplied. The variable MAPFILE\n" " is the default ARRAY.\n" " \n" " Options:\n" " -d delim\tUse DELIM to terminate lines, instead of newline\n" -" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " -"copied\n" -" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " -"index is 0\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are copied\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default index is 0\n" " -s count\tDiscard the first COUNT lines read\n" " -t\tRemove a trailing DELIM from each line read (default newline)\n" -" -u fd\tRead lines from file descriptor FD instead of the standard " -"input\n" +" -u fd\tRead lines from file descriptor FD instead of the standard input\n" " -C callback\tEvaluate CALLBACK each time QUANTUM lines are read\n" " -c quantum\tSpecify the number of lines read between each call to\n" " \t\t\tCALLBACK\n" @@ -4163,17 +4016,15 @@ msgid "" " element to be assigned and the line to be assigned to that element\n" " as additional arguments.\n" " \n" -" If not supplied with an explicit origin, mapfile will clear ARRAY " -"before\n" +" If not supplied with an explicit origin, mapfile will clear ARRAY before\n" " assigning to it.\n" " \n" " Exit Status:\n" -" Returns success unless an invalid option is given or ARRAY is readonly " -"or\n" +" Returns success unless an invalid option is given or ARRAY is readonly or\n" " not an indexed array." msgstr "" -#: builtins.c:2062 +#: builtins.c:2059 msgid "" "Read lines from a file into an array variable.\n" " \n" @@ -4182,18 +4033,3 @@ msgstr "" "Ανάγνωση γραμμών από αρχείο σε μεταβλητή τύπου πίνακα.\n" " \n" " Συνώνημο του «mapfile»." - -#~ msgid ":" -#~ msgstr ":" - -#~ msgid "true" -#~ msgstr "αληθής" - -#~ msgid "false" -#~ msgstr "ψευδής" - -#~ msgid "times" -#~ msgstr "times" - -#~ msgid "Copyright (C) 2012 Free Software Foundation, Inc." -#~ msgstr "Copyright (C) 2012 Free Software Foundation, Inc." diff --git a/redir.c b/redir.c index 0f40bd00..25488eaf 100644 --- a/redir.c +++ b/redir.c @@ -1381,10 +1381,29 @@ redir_varvalue (redir) /* XXX - handle set -u here? */ #if defined (ARRAY_VARS) if (vr = valid_array_reference (w, 0)) - v = array_variable_part (w, &sub, &len); + { + v = array_variable_part (w, &sub, &len); + } else #endif - v = find_variable (w); + { + v = find_variable (w); +#if defined (ARRAY_VARS) + if (v == 0) + { + v = find_variable_last_nameref (w, 0); + if (v && nameref_p (v)) + { + w = nameref_cell (v); + if (vr = valid_array_reference (w, 0)) + v = array_variable_part (w, &sub, &len); + else + v = find_variable (w); + } + } +#endif + } + if (v == 0 || invisible_p (v)) return -1; diff --git a/subst.c b/subst.c index 7053a43a..4529074e 100644 --- a/subst.c +++ b/subst.c @@ -10294,7 +10294,12 @@ make_internal_declare (word, option, cmd) w = make_word (word); t = assignment (w->word, 0); - w->word[t] = '\0'; + if (w->word[t] == '=') + { + w->word[t] = '\0'; + if (w->word[t - 1] == '+') /* cut off any append op */ + w->word[t - 1] = '\0'; + } wl = make_word_list (w, (WORD_LIST *)NULL); wl = make_word_list (make_word (option), wl); @@ -10419,6 +10424,8 @@ shell_expand_word_list (tlist, eflags) /* Now transform the word as ksh93 appears to do and go on */ t = assignment (tlist->word->word, 0); tlist->word->word[t] = '\0'; + if (tlist->word->word[t - 1] == '+') + tlist->word->word[t - 1] = '\0'; /* cut off append op */ tlist->word->flags &= ~(W_ASSIGNMENT|W_NOSPLIT|W_COMPASSIGN|W_ASSIGNARG|W_ASSIGNASSOC|W_ASSIGNARRAY); } #endif diff --git a/tests/nameref.right b/tests/nameref.right index c9f7573b..b777f907 100644 --- a/tests/nameref.right +++ b/tests/nameref.right @@ -291,6 +291,7 @@ declare -n ref="var" ./nameref14.sub: line 32: typeset: var: not found declare -n ref="var" ./nameref15.sub: line 1: local: warning: a: circular name reference +./nameref15.sub: line 1: warning: a: circular name reference ./nameref15.sub: line 1: `a[0]': not a valid identifier declare -a a=([0]="0") ./nameref15.sub: line 1: local: warning: a: circular name reference @@ -299,6 +300,7 @@ declare -a a=([0]="0") declare -a a=([0]="X") declare -a b=([0]="X") ./nameref15.sub: line 1: local: warning: a: circular name reference +./nameref15.sub: line 1: warning: a: circular name reference ./nameref15.sub: line 1: `a[0]': not a valid identifier declare -a b=([0]="0") ./nameref15.sub: line 19: typeset: warning: ref: circular name reference @@ -309,14 +311,15 @@ inside outside X ./nameref15.sub: line 29: typeset: ref: nameref variable self references not allowed ./nameref15.sub: line 31: ref: nameref variable self references not allowed -./nameref15.sub: line 32: typeset: ref: not found -declare -- ref="4" +declare -n ref="re" +declare -n ref="re" +declare -- re="4" 4 declare -n foo="var[@]" declare -n ref="var[@]" -./nameref15.sub: line 47: var[@]: bad array subscript +./nameref15.sub: line 48: var[@]: bad array subscript declare -n bar="var[@]" -./nameref15.sub: line 52: var[@]: bad array subscript +./nameref15.sub: line 53: var[@]: bad array subscript declare -n r1="y" declare -n r2="x" ./nameref16.sub: line 12: typeset: x: not found diff --git a/tests/nameref15.sub b/tests/nameref15.sub index e493bf67..3ccfff4a 100644 --- a/tests/nameref15.sub +++ b/tests/nameref15.sub @@ -31,10 +31,11 @@ typeset -n ref=ref typeset -n ref=re ref+=f typeset -p ref ref=4 -typeset -p ref +typeset -p ref re export ref printenv ref +printenv re unset ref ; unset -n ref unset foo; unset -n foo diff --git a/variables.c b/variables.c index 718b449f..4d7bb46a 100644 --- a/variables.c +++ b/variables.c @@ -2719,15 +2719,6 @@ bind_variable_internal (name, value, table, hflags, aflags) else if (entry && nameref_p (entry)) { newval = nameref_cell (entry); -#if 0 - /* This check can go away if we stop allowing all-digit values for - nameref variables. */ - if (newval && *newval && valid_nameref_value (newval, 1) == 0) - { - sh_invalidid (newval); - return ((SHELL_VAR *)NULL); - } -#endif #if defined (ARRAY_VARS) /* declare -n foo=x[2] */ if (valid_array_reference (newval, 0)) @@ -2949,7 +2940,7 @@ bind_variable_value (var, value, aflags) else { t = make_variable_value (var, value, aflags); - if (STREQ (name_cell (var), t)) + if ((aflags & (ASS_NAMEREF|ASS_FORCE)) == ASS_NAMEREF && check_selfref (name_cell (var), t, 0)) { if (variable_context) internal_warning (_("%s: circular name reference"), name_cell (var));