]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
changes to text representation of parsed command substitution; small changes to tests
authorChet Ramey <chet.ramey@case.edu>
Wed, 6 Jul 2022 14:05:59 +0000 (10:05 -0400)
committerChet Ramey <chet.ramey@case.edu>
Wed, 6 Jul 2022 14:05:59 +0000 (10:05 -0400)
13 files changed:
CHANGES
CHANGES-5.2
CWRU/CWRU.chlog
NEWS
NEWS-5.2
execute_cmd.c
externs.h
parse.y
po/nb.gmo
po/nb.po
print_cmd.c
tests/dynvar.tests
tests/heredoc.right

diff --git a/CHANGES b/CHANGES
index 8304d426355984909191deed15583b3b54bff97d..e9f9b2c97fd7af448def679aef1eae527d337b31 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -321,7 +321,10 @@ b. There is a new internal timer framework used for read builtin timeouts.
 
 c. Rewrote the command substitution parsing code to call the parser recursively
    and rebuild the command string from the parsed command. This allows better
-   syntax checking and catches errors much earlier.
+   syntax checking and catches errors much earlier. Along with this, if
+   command substitution parsing completes with here-documents remaining to be
+   read, the shell prints a warning message and reads the here-document bodies
+   from the current input stream.
 
 d. The `ulimit' builtin now treats an operand remaining after all of the options
    and arguments are parsed as an argument to the last command specified by
index 25ef39967ec0be4d6a00bac2ba9728c13f7b918e..cf8b9dc96b574dd360d2486e567372a62d97ae00 100644 (file)
@@ -321,7 +321,10 @@ b. There is a new internal timer framework used for read builtin timeouts.
 
 c. Rewrote the command substitution parsing code to call the parser recursively
    and rebuild the command string from the parsed command. This allows better
-   syntax checking and catches errors much earlier.
+   syntax checking and catches errors much earlier. Along with this, if
+   command substitution parsing completes with here-documents remaining to be
+   read, the shell prints a warning message and reads the here-document bodies
+   from the current input stream.
 
 d. The `ulimit' builtin now treats an operand remaining after all of the options
    and arguments are parsed as an argument to the last command specified by
index f3d531cc1bc0c300220273910f9b73b86be3e727..8dffe9c046c9b42d4f4095e05610960a594927cb 100644 (file)
@@ -3731,3 +3731,21 @@ subst.c
          indicating that we're doing this for completion, probably to
          determine whether or not to append something to the word. Fixes bug
          reported by Emanuele Torre <torreemanuele6@gmail.com>.
+
+                                   7/5
+                                   ---
+execute_cmd.c
+       - execute_connection: treat a connector of '\n' the same as ';'
+
+print_cmd.c
+       - print_comsub: new function, sets flag noting we are printing a
+         command substitution and calls make_command_string
+       - make_command_string_internal: add '\n' to the ';' case; print command
+         list with newline connector appropriately
+parse.y
+       - parse_comsub: call print_comsub instead of make_command_string
+       - list1 production (part of compound_list): if a list is separated by
+         newlines, and the parser is parsing a command substitution, make
+         the connection command with a '\n' connector. Makes the text
+         output of parse_comsub closer to the original source text. From a
+         report from Martijn Dekker <martijn@inlv.org>
diff --git a/NEWS b/NEWS
index 42c3fc643d202180e2db8907ab367c74fd821b85..95234c5bbedfcbc691eb47ca0fef60de142209c6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,10 @@ b. There is a new internal timer framework used for read builtin timeouts.
 
 c. Rewrote the command substitution parsing code to call the parser recursively
    and rebuild the command string from the parsed command. This allows better
-   syntax checking and catches errors much earlier.
+   syntax checking and catches errors much earlier. Along with this, if
+   command substitution parsing completes with here-documents remaining to be
+   read, the shell prints a warning message and reads the here-document bodies
+   from the current input stream.
 
 d. The `ulimit' builtin now treats an operand remaining after all of the options
    and arguments are parsed as an argument to the last command specified by
index 8a949ebbe68d6c49cabfea464d37a43d07ce610f..567a9f3b4fbc2e2e5415d8b73ab75c8016bc9fba 100644 (file)
--- a/NEWS-5.2
+++ b/NEWS-5.2
@@ -10,7 +10,10 @@ b. There is a new internal timer framework used for read builtin timeouts.
 
 c. Rewrote the command substitution parsing code to call the parser recursively
    and rebuild the command string from the parsed command. This allows better
-   syntax checking and catches errors much earlier.
+   syntax checking and catches errors much earlier. Along with this, if
+   command substitution parsing completes with here-documents remaining to be
+   read, the shell prints a warning message and reads the here-document bodies
+   from the current input stream.
 
 d. The `ulimit' builtin now treats an operand remaining after all of the options
    and arguments are parsed as an argument to the last command specified by
index ec40ca48c2141bb2c6b071ea40a9bbbec0a5fed8..62da5a2c84c7e61571ff55154d1057de0702c19d 100644 (file)
@@ -2738,6 +2738,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
 
     /* Just call execute command on both sides. */
     case ';':
+    case '\n':         /* special case, happens in command substitutions */
       if (ignore_return)
        {
          if (command->value.Connection->first)
index 865575017d3030bd75a0b6860cfcdfb754244a3b..931dba9cd3c317199115c093e08c21f14960cc9d 100644 (file)
--- a/externs.h
+++ b/externs.h
@@ -36,6 +36,7 @@ extern intmax_t evalexp PARAMS((char *, int, int *));
 #define FUNC_EXTERNAL  0x02
 
 extern char *make_command_string PARAMS((COMMAND *));
+extern char *print_comsub PARAMS((COMMAND *));
 extern char *named_function_string PARAMS((char *, COMMAND *, int));
 
 extern void print_command PARAMS((COMMAND *));
diff --git a/parse.y b/parse.y
index 6bbc882575dc6d079a942240c9d1c5d93f8121d4..b986c0244bd1c434cf4bbab934c64c85e1e7cd3b 100644 (file)
--- a/parse.y
+++ b/parse.y
@@ -1154,7 +1154,12 @@ list1:           list1 AND_AND newline_list list1
        |       list1 ';' newline_list list1
                        { $$ = command_connect ($1, $4, ';'); }
        |       list1 '\n' newline_list list1
-                       { $$ = command_connect ($1, $4, ';'); }
+                       {
+                         if (parser_state & PST_CMDSUBST)
+                           $$ = command_connect ($1, $4, '\n');
+                         else
+                           $$ = command_connect ($1, $4, ';');
+                       }
        |       pipeline_command
                        { $$ = $1; }
        ;
@@ -1188,7 +1193,7 @@ simple_list:      simple_list1
                            gather_here_documents ();
                          if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token)
                            {
-itrace("LEGACY: parser: command substitution simple_list1 -> simple_list");
+INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 -> simple_list"));
                              global_command = $1;
                              eof_encountered = 0;
                              if (bash_input.type == st_string)
@@ -1206,7 +1211,7 @@ itrace("LEGACY: parser: command substitution simple_list1 -> simple_list");
                            gather_here_documents ();
                          if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token)
                            {
-itrace("LEGACY: parser: command substitution simple_list1 '&' -> simple_list");
+INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 '&' -> simple_list"));
                              global_command = $1;
                              eof_encountered = 0;
                              if (bash_input.type == st_string)
@@ -1221,7 +1226,7 @@ itrace("LEGACY: parser: command substitution simple_list1 '&' -> simple_list");
                            gather_here_documents ();
                          if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token)
                            {
-itrace("LEGACY: parser: command substitution simple_list1 ';' -> simple_list");
+INTERNAL_DEBUG (("LEGACY: parser: command substitution simple_list1 ';' -> simple_list"));
                              global_command = $1;
                              eof_encountered = 0;
                              if (bash_input.type == st_string)
@@ -4095,8 +4100,8 @@ parse_comsub (qc, open, close, lenp, flags)
 
   if (need_here_doc > 0)
     {
-      internal_debug("command substitution: %d unterminated here-document%s", need_here_doc, (need_here_doc == 1) ? "" : "s");
-      gather_here_documents ();
+      internal_warning ("command substitution: %d unterminated here-document%s", need_here_doc, (need_here_doc == 1) ? "" : "s");
+      gather_here_documents ();        /* XXX check compatibility level? */
     }
 
   parsed_command = global_command;
@@ -4126,7 +4131,7 @@ INTERNAL_DEBUG(("current_token (%d) != shell_eof_token (%c)", current_token, she
 
   restore_parser_state (&ps);
 
-  tcmd = make_command_string (parsed_command);         /* returns static memory */
+  tcmd = print_comsub (parsed_command);                /* returns static memory */
   retlen = strlen (tcmd);
   if (tcmd[0] == '(')                  /* ) need a space to prevent arithmetic expansion */
     retlen++;
index 894af69262b9e18e2562732855c4b1434784c419..8d59f1d2d005776494227ca472a7022f0747d685 100644 (file)
Binary files a/po/nb.gmo and b/po/nb.gmo differ
index cdeff4d168da93dbcecf66c4e9fcd76e6ac774de..1a2da59c449c41b0e78b3ea9c9c25c703eff626a 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,82 +1,78 @@
 # Norwegian (bokmål) translation of GNU Bash
 # Copyright (C) 2019 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
+# Johnny A. Solbu <johnny@solbu.net>, 2022.
 # Åka Sikrom <a4@hush.com>, 2015-2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bash-5.0\n"
+"Project-Id-Version: bash-5.2-rc1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-11-28 12:51-0500\n"
-"PO-Revision-Date: 2019-01-08 19:40+0100\n"
-"Last-Translator: Åka Sikrom <a4@hush.com>\n"
-"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"POT-Creation-Date: 2022-01-11 14:50-0500\n"
+"PO-Revision-Date: 2022-07-03 20:40+0200\n"
+"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
+"Language-Team: Norwegian Bokmaal <l10n-no@lister.huftis.org>\n"
 "Language: nb\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.6\n"
+"X-Generator: Poedit 2.2.3\n"
 
 #: arrayfunc.c:66
 msgid "bad array subscript"
 msgstr "feil i tabell-underskript"
 
-#: arrayfunc.c:421 builtins/declare.def:638 variables.c:2274 variables.c:2300
-#: variables.c:3133
+#: arrayfunc.c:471 builtins/declare.def:709 variables.c:2242 variables.c:2268
+#: variables.c:3101
 #, c-format
 msgid "%s: removing nameref attribute"
 msgstr "%s: fjerner navnref-egenskap"
 
-#: arrayfunc.c:446 builtins/declare.def:851
+#: arrayfunc.c:496 builtins/declare.def:868
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
 msgstr "%s: indeksert tabell kan ikke konverteres til assosiativ tabell"
 
-#: arrayfunc.c:700
-#, c-format
-msgid "%s: invalid associative array key"
-msgstr "%s: ugyldig nøkkel for assosiativ tabell"
-
-#: arrayfunc.c:702
+#: arrayfunc.c:777
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
 msgstr "%s: kan ikke tildeles ikke-numerisk indeks"
 
-#: arrayfunc.c:747
+#: arrayfunc.c:822
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
 msgstr "%s: %s: underskript må brukes ved tildeling av assosiative tabeller"
 
-#: bashhist.c:452
+#: bashhist.c:455
 #, c-format
 msgid "%s: cannot create: %s"
 msgstr "%s: klarte ikke å opprette: %s"
 
-#: bashline.c:4310
+#: bashline.c:4479
 msgid "bash_execute_unix_command: cannot find keymap for command"
 msgstr "bash_execute_unix_command: fant ikke tastaturoppsett for kommando"
 
-#: bashline.c:4459
+#: bashline.c:4637
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
 msgstr "%s: første ikke-blanktegn må være «\"»"
 
-#: bashline.c:4488
+#: bashline.c:4666
 #, c-format
 msgid "no closing `%c' in %s"
 msgstr "avsluttende «%c» mangler i %s"
 
-#: bashline.c:4519
+#: bashline.c:4697
 #, c-format
 msgid "%s: missing colon separator"
 msgstr "%s: kolon-skilletegn mangler"
 
-#: bashline.c:4555
-#, fuzzy, c-format
+#: bashline.c:4733
+#, c-format
 msgid "`%s': cannot unbind in command keymap"
-msgstr "«%s»: klarte ikke å fjerne tildeling"
+msgstr "«%s»: kan ikke oppheve bindingen i kommandotastaturet"
 
 #: braces.c:327
 #, c-format
@@ -93,7 +89,7 @@ msgstr "brace-utvidelse: klarte ikke å tildele minne for %u elementer"
 msgid "brace expansion: failed to allocate memory for `%s'"
 msgstr "brace-utvidelse: klarte ikke å tildele minne for «%s»"
 
-#: builtins/alias.def:131 variables.c:1844
+#: builtins/alias.def:131 variables.c:1817
 #, c-format
 msgid "`%s': invalid alias name"
 msgstr "«%s»: ugyldig alias"
@@ -125,7 +121,7 @@ msgstr "%s er ikke tilknyttet en knapp.\n"
 #: builtins/bind.def:340
 #, c-format
 msgid "%s can be invoked via "
-msgstr "%s kan startes via"
+msgstr "%s kan startes via "
 
 #: builtins/bind.def:378 builtins/bind.def:395
 #, c-format
@@ -141,7 +137,6 @@ msgid "only meaningful in a `for', `while', or `until' loop"
 msgstr "gir bare mening i «for»-, «while»- og «until»-sløyfer"
 
 #: builtins/caller.def:136
-#, fuzzy
 msgid ""
 "Returns the context of the current subroutine call.\n"
 "    \n"
@@ -153,24 +148,18 @@ msgid ""
 "    current one; the top frame is frame 0."
 msgstr ""
 "Vis konteksten for gjeldende underrutine-kall.\n"
-"    \n"
-"    Hvis UTTRykk ikke er valgt, vises «$line $filename».  Med UTTRykk vises\n"
-"    «$line $subroutine $filename». Denne ekstrainformasjonen kan brukes\n"
-"    til stabelsporing.\n"
-"    \n"
-"    Verdien av UTTRykk viser hvor mange kall-rammer programmet skal bevege "
-"seg\n"
-"    gjennom tilbake fra gjeldende ramme. Øverste ramme er 0.\n"
-"    \n"
-"    Avslutningsstatus:\n"
-"    Status er 0, med mindre skallet ikke kjører en skallfunksjon eller\n"
-"    valgt UTTRykk er ugyldig."
+" Uten EXPR, returnerer \"$line $filnavn\". Med EXPR, returnerer\n"
+"     \"$line $subrutine $filename denne ekstra informasjonen kan brukes til å\n"
+"     gi en stabelsporing.\n"
+"     \n"
+"     Verdien til EXPR indikerer hvor mange anropsrammer som skal gå tilbake før\n"
+"     nåværende; topprammen er ramme 0."
 
 #: builtins/cd.def:327
 msgid "HOME not set"
 msgstr "HOME har ingen verdi"
 
-#: builtins/cd.def:335 builtins/common.c:161 test.c:901
+#: builtins/cd.def:335 builtins/common.c:161 test.c:916
 msgid "too many arguments"
 msgstr "for mange argumenter"
 
@@ -190,14 +179,14 @@ msgstr "linje %d: "
 #: builtins/common.c:134 error.c:264
 #, c-format
 msgid "warning: "
-msgstr "advarsel:"
+msgstr "advarsel: "
 
 #: builtins/common.c:148
 #, c-format
 msgid "%s: usage: "
 msgstr "%s: bruk: "
 
-#: builtins/common.c:193 shell.c:516 shell.c:844
+#: builtins/common.c:193 shell.c:524 shell.c:866
 #, c-format
 msgid "%s: option requires an argument"
 msgstr "%s: valget krever et argument"
@@ -212,7 +201,7 @@ msgstr "%s: valget krever et tall-argument"
 msgid "%s: not found"
 msgstr "fant ikke %s"
 
-#: builtins/common.c:216 shell.c:857
+#: builtins/common.c:216 shell.c:879
 #, c-format
 msgid "%s: invalid option"
 msgstr "%s: ugyldig valg"
@@ -222,7 +211,7 @@ msgstr "%s: ugyldig valg"
 msgid "%s: invalid option name"
 msgstr "%s: ugyldig valgnavn"
 
-#: builtins/common.c:230 execute_cmd.c:2373 general.c:368 general.c:373
+#: builtins/common.c:230 execute_cmd.c:2402 general.c:368 general.c:373
 #, c-format
 msgid "`%s': not a valid identifier"
 msgstr "«%s»: ugyldig navn"
@@ -235,7 +224,7 @@ msgstr "ugyldig oktal-tall"
 msgid "invalid hex number"
 msgstr "ugldig heksadesimalt tall"
 
-#: builtins/common.c:244 expr.c:1569
+#: builtins/common.c:244 expr.c:1574
 msgid "invalid number"
 msgstr "ugyldig tall"
 
@@ -249,88 +238,93 @@ msgstr "%s: ugyldig signalspesifikasjon"
 msgid "`%s': not a pid or valid job spec"
 msgstr "«%s» er hverken hverken et PID eller en gyldig jobbspesifikasjon"
 
-#: builtins/common.c:266 error.c:510
+#: builtins/common.c:266 error.c:536
 #, c-format
 msgid "%s: readonly variable"
 msgstr "%s: skrivebeskyttet variabel"
 
-#: builtins/common.c:274
+#: builtins/common.c:273
+#, c-format
+msgid "%s: cannot assign"
+msgstr "%s: kan ikke tildele"
+
+#: builtins/common.c:281
 #, c-format
 msgid "%s: %s out of range"
 msgstr "%s: %s er utenfor rekkevidde"
 
-#: builtins/common.c:274 builtins/common.c:276
+#: builtins/common.c:281 builtins/common.c:283
 msgid "argument"
 msgstr "argument"
 
-#: builtins/common.c:276
+#: builtins/common.c:283
 #, c-format
 msgid "%s out of range"
 msgstr "%s er utenfor rekkevidde"
 
-#: builtins/common.c:284
+#: builtins/common.c:291
 #, c-format
 msgid "%s: no such job"
 msgstr "%s: jobben finnes ikke"
 
-#: builtins/common.c:292
+#: builtins/common.c:299
 #, c-format
 msgid "%s: no job control"
 msgstr "%s: ingen jobbkontroll"
 
-#: builtins/common.c:294
+#: builtins/common.c:301
 msgid "no job control"
 msgstr "ingen jobbkontroll"
 
-#: builtins/common.c:304
+#: builtins/common.c:311
 #, c-format
 msgid "%s: restricted"
 msgstr "%s: begrenset"
 
-#: builtins/common.c:306
+#: builtins/common.c:313
 msgid "restricted"
 msgstr "begrenset"
 
-#: builtins/common.c:314
+#: builtins/common.c:321
 #, c-format
 msgid "%s: not a shell builtin"
 msgstr "%s: ikke innebygd i skall"
 
-#: builtins/common.c:323
+#: builtins/common.c:330
 #, c-format
 msgid "write error: %s"
 msgstr "skrivefeil: %s"
 
-#: builtins/common.c:331
+#: builtins/common.c:338
 #, c-format
 msgid "error setting terminal attributes: %s"
 msgstr "feil under endring av terminal-egenskaper: %s"
 
-#: builtins/common.c:333
+#: builtins/common.c:340
 #, c-format
 msgid "error getting terminal attributes: %s"
 msgstr "feil under henting av terminal-egenskaper: %s"
 
-#: builtins/common.c:635
+#: builtins/common.c:642
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
 msgstr "%s: feil under henting av gjeldende mappe: %s: %s\n"
 
-#: builtins/common.c:701 builtins/common.c:703
+#: builtins/common.c:708 builtins/common.c:710
 #, c-format
 msgid "%s: ambiguous job spec"
 msgstr "%s: flertydig jobbspesifikasjon"
 
-#: builtins/common.c:964
+#: builtins/common.c:971
 msgid "help not available in this version"
 msgstr "hjelp er ikke tilgjengelig for denne versjonen"
 
-#: builtins/common.c:1008 builtins/set.def:953 variables.c:3839
+#: builtins/common.c:1038 builtins/set.def:953 variables.c:3825
 #, c-format
 msgid "%s: cannot unset: readonly %s"
 msgstr "%s: klarte ikke å fjerne verdi fra skrivebeskyttet %s"
 
-#: builtins/common.c:1013 builtins/set.def:932 variables.c:3844
+#: builtins/common.c:1043 builtins/set.def:932 variables.c:3830
 #, c-format
 msgid "%s: cannot unset"
 msgstr "%s: klarte ikke å fjerne verdi"
@@ -340,108 +334,108 @@ msgstr "%s: klarte ikke å fjerne verdi"
 msgid "%s: invalid action name"
 msgstr "%s: ugyldig handlingsnavn"
 
-#: builtins/complete.def:486 builtins/complete.def:634
-#: builtins/complete.def:865
+#: builtins/complete.def:486 builtins/complete.def:642
+#: builtins/complete.def:873
 #, c-format
 msgid "%s: no completion specification"
 msgstr "%s: ingen spesifikasjon for fullføring"
 
-#: builtins/complete.def:688
+#: builtins/complete.def:696
 msgid "warning: -F option may not work as you expect"
 msgstr "advarsel: valget «-F» virker kanskje ikke slik du forventer"
 
-#: builtins/complete.def:690
+#: builtins/complete.def:698
 msgid "warning: -C option may not work as you expect"
 msgstr "advarsel: valget «-C» virker kanskje ikke slik du forventer"
 
-#: builtins/complete.def:838
+#: builtins/complete.def:846
 msgid "not currently executing completion function"
 msgstr "fullføringsfunksjon kjøres ikke nå"
 
-#: builtins/declare.def:134
+#: builtins/declare.def:137
 msgid "can only be used in a function"
 msgstr "kan bare brukes i funksjoner"
 
-#: builtins/declare.def:363 builtins/declare.def:756
+#: builtins/declare.def:437
+msgid "cannot use `-f' to make functions"
+msgstr "valget«-f» kan ikke brukes til å lage funksjoner"
+
+#: builtins/declare.def:464 execute_cmd.c:6132
+#, c-format
+msgid "%s: readonly function"
+msgstr "%s: skrivebeskyttet funksjon"
+
+#: builtins/declare.def:521 builtins/declare.def:804
 #, c-format
 msgid "%s: reference variable cannot be an array"
 msgstr "%s: referansevariabler kan ikke være tabeller (arrays)"
 
-#: builtins/declare.def:374 variables.c:3385
+#: builtins/declare.def:532 variables.c:3359
 #, c-format
 msgid "%s: nameref variable self references not allowed"
 msgstr "%s: navnref.-variabler kan ikke referere til seg selv"
 
-#: builtins/declare.def:379 variables.c:2104 variables.c:3304 variables.c:3312
-#: variables.c:3382
+#: builtins/declare.def:537 variables.c:2072 variables.c:3278 variables.c:3286
+#: variables.c:3356
 #, c-format
 msgid "%s: circular name reference"
 msgstr "%s: sirkulær navnreferanse"
 
-#: builtins/declare.def:384 builtins/declare.def:762 builtins/declare.def:773
+#: builtins/declare.def:541 builtins/declare.def:811 builtins/declare.def:820
 #, c-format
 msgid "`%s': invalid variable name for name reference"
 msgstr "«%s»: ugyldig variabelnavn for navnreferanse"
 
-#: builtins/declare.def:514
-msgid "cannot use `-f' to make functions"
-msgstr "valget«-f» kan ikke brukes til å lage funksjoner"
-
-#: builtins/declare.def:526 execute_cmd.c:5986
-#, c-format
-msgid "%s: readonly function"
-msgstr "%s: skrivebeskyttet funksjon"
-
-#: builtins/declare.def:824
-#, c-format
-msgid "%s: quoted compound array assignment deprecated"
-msgstr "%s: sammensatt tabell-tideling i hermetegn er utgått"
-
-#: builtins/declare.def:838
+#: builtins/declare.def:856
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
 msgstr "%s: tabellvariabler kan ikke ødelegges på denne måten"
 
-#: builtins/declare.def:845 builtins/read.def:815
+#: builtins/declare.def:862 builtins/read.def:887
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
 msgstr "%s: assosiative tabeller kan ikke konverteres til indekserte tabeller"
 
-#: builtins/enable.def:143 builtins/enable.def:151
+#: builtins/declare.def:891
+#, c-format
+msgid "%s: quoted compound array assignment deprecated"
+msgstr "%s: sammensatt tabell-tideling i hermetegn er utgått"
+
+#: builtins/enable.def:145 builtins/enable.def:153
 msgid "dynamic loading not available"
 msgstr "dynamisk innlasting er ikke tilgjengelig"
 
-#: builtins/enable.def:343
+#: builtins/enable.def:376
 #, c-format
 msgid "cannot open shared object %s: %s"
 msgstr "klarte ikke å åpne delt objekt %s: %s"
 
-#: builtins/enable.def:371
+#: builtins/enable.def:405
 #, c-format
 msgid "cannot find %s in shared object %s: %s"
 msgstr "fant ikke %s i delt objekt %s: %s"
 
-#: builtins/enable.def:388
-#, fuzzy, c-format
+#: builtins/enable.def:422
+#, c-format
 msgid "%s: dynamic builtin already loaded"
-msgstr "%s: ikke dynamisk innlastet"
+msgstr "%s: dynamisk innebygd allerede lastet"
 
-#: builtins/enable.def:392
+#: builtins/enable.def:426
 #, c-format
 msgid "load function for %s returns failure (%d): not loaded"
 msgstr "innlastingsfunksjon for %s førte til feilkode (%d). Ikke lastet inn"
 
-#: builtins/enable.def:517
+#: builtins/enable.def:551
 #, c-format
 msgid "%s: not dynamically loaded"
 msgstr "%s: ikke dynamisk innlastet"
 
-#: builtins/enable.def:543
+#: builtins/enable.def:577
 #, c-format
 msgid "%s: cannot delete: %s"
 msgstr "%s: klarte ikke å slette: %s"
 
-#: builtins/evalfile.c:138 builtins/hash.def:185 execute_cmd.c:5818
+#: builtins/evalfile.c:138 builtins/hash.def:185 execute_cmd.c:5959
 #, c-format
 msgid "%s: is a directory"
 msgstr "%s: er en mappe"
@@ -456,7 +450,7 @@ msgstr "%s: ikke en vanlig fil"
 msgid "%s: file is too large"
 msgstr "%s: fila er for stor"
 
-#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1647
+#: builtins/evalfile.c:188 builtins/evalfile.c:206 shell.c:1673
 #, c-format
 msgid "%s: cannot execute binary file"
 msgstr "%s: klarte ikke å kjøre binærfil"
@@ -543,21 +537,20 @@ msgid ""
 "'\n"
 "\n"
 msgstr ""
+"'\n"
+"\n"
 
 #: builtins/help.def:185
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
-"ingen hjelpeemner samsvarer med «%s».  Prøv «help help», «man -k %s» eller "
-"«info %s»."
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "ingen hjelpeemner samsvarer med «%s».  Prøv «help help», «man -k %s» eller «info %s»."
 
-#: builtins/help.def:224
+#: builtins/help.def:223
 #, c-format
 msgid "%s: cannot open: %s"
 msgstr "%s: klarte ikke å åpne: %s"
 
-#: builtins/help.def:524
+#: builtins/help.def:523
 #, c-format
 msgid ""
 "These shell commands are defined internally.  Type `help' to see this list.\n"
@@ -568,32 +561,29 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
-"Disse skallkommandoene er internt definert. Skriv «help» for å se denne "
-"lista.\n"
+"Disse skallkommandoene er internt definert. Skriv «help» for å se denne lista.\n"
 "Skriv «help name» for å finne ut mer om funksjonen «name».\n"
 "Bruk «info bash» for å finne generell info om skallet.\n"
-"Bruk «man -k» eller «info» for å finne ut mer om kommandoer som ikke er på "
-"denne lista.\n"
+"Bruk «man -k» eller «info» for å finne ut mer om kommandoer som ikke er på denne lista.\n"
 "\n"
-"Stjerne (*) ved siden av et kommandonavn betyr at gjeldende kommando er "
-"slått av.\n"
+"Stjerne (*) ved siden av et kommandonavn betyr at gjeldende kommando er slått av.\n"
 "\n"
 
-#: builtins/history.def:155
+#: builtins/history.def:159
 msgid "cannot use more than one of -anrw"
 msgstr "du kan ikke bruke flere enn ett av valgene -anrw på én gang"
 
-#: builtins/history.def:188 builtins/history.def:198 builtins/history.def:213
-#: builtins/history.def:230 builtins/history.def:242 builtins/history.def:249
+#: builtins/history.def:192 builtins/history.def:204 builtins/history.def:215
+#: builtins/history.def:228 builtins/history.def:240 builtins/history.def:247
 msgid "history position"
 msgstr "historikkposisjon"
 
-#: builtins/history.def:340
+#: builtins/history.def:338
 #, c-format
 msgid "%s: invalid timestamp"
 msgstr "%s: ugyldig tidsstempel"
 
-#: builtins/history.def:451
+#: builtins/history.def:449
 #, c-format
 msgid "%s: history expansion failed"
 msgstr "%s: historikk-utvidelse mislyktes"
@@ -616,78 +606,78 @@ msgstr "%s: argumenter må være prosess- eller jobb-ID-er"
 msgid "Unknown error"
 msgstr "Ukjent feil"
 
-#: builtins/let.def:97 builtins/let.def:122 expr.c:639 expr.c:657
+#: builtins/let.def:97 builtins/let.def:122 expr.c:640 expr.c:658
 msgid "expression expected"
 msgstr "forventet uttrykk"
 
-#: builtins/mapfile.def:178
+#: builtins/mapfile.def:180
 #, c-format
 msgid "%s: not an indexed array"
 msgstr "%s: ikke en indeksert tabell"
 
-#: builtins/mapfile.def:271 builtins/read.def:308
+#: builtins/mapfile.def:276 builtins/read.def:336
 #, c-format
 msgid "%s: invalid file descriptor specification"
 msgstr "%s: ugyldig spesifikasjon av fildeskriptor"
 
-#: builtins/mapfile.def:279 builtins/read.def:315
+#: builtins/mapfile.def:284 builtins/read.def:343
 #, c-format
 msgid "%d: invalid file descriptor: %s"
 msgstr "%d: ugyldig fildeskriptor: %s"
 
-#: builtins/mapfile.def:288 builtins/mapfile.def:326
+#: builtins/mapfile.def:293 builtins/mapfile.def:331
 #, c-format
 msgid "%s: invalid line count"
 msgstr "%s: ugyldig linjeantall"
 
-#: builtins/mapfile.def:299
+#: builtins/mapfile.def:304
 #, c-format
 msgid "%s: invalid array origin"
 msgstr "%s: ugyldig tabellopphav"
 
-#: builtins/mapfile.def:316
+#: builtins/mapfile.def:321
 #, c-format
 msgid "%s: invalid callback quantum"
 msgstr "%s: ugyldig tilbakekallsmengde"
 
-#: builtins/mapfile.def:349
+#: builtins/mapfile.def:354
 msgid "empty array variable name"
 msgstr "tomt navn på tabellvariabel"
 
-#: builtins/mapfile.def:370
+#: builtins/mapfile.def:375
 msgid "array variable support required"
 msgstr "støtte for tabellvariabler kreves"
 
-#: builtins/printf.def:419
+#: builtins/printf.def:430
 #, c-format
 msgid "`%s': missing format character"
 msgstr "«%s»: formattegn mangler"
 
-#: builtins/printf.def:474
+#: builtins/printf.def:485
 #, c-format
 msgid "`%c': invalid time format specification"
 msgstr "«%c»: ugyldig spesifikasjon av tidsformat"
 
-#: builtins/printf.def:676
+#: builtins/printf.def:708
 #, c-format
 msgid "`%c': invalid format character"
 msgstr "«%c»: ugyldig formattegn"
 
-#: builtins/printf.def:702
+#: builtins/printf.def:734
 #, c-format
 msgid "warning: %s: %s"
 msgstr "advarsel: %s: %s"
 
-#: builtins/printf.def:788
+#: builtins/printf.def:822
 #, c-format
 msgid "format parsing problem: %s"
 msgstr "problem med tolkning av format: %s"
 
-#: builtins/printf.def:885
+#: builtins/printf.def:919
 msgid "missing hex digit for \\x"
 msgstr "heks-siffer mangler for \\x"
 
-#: builtins/printf.def:900
+#: builtins/printf.def:934
 #, c-format
 msgid "missing unicode digit for \\%c"
 msgstr "unicode-siffer mangler for  \\%c"
@@ -728,12 +718,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 ""
 "Vis liste over mapper som blir husket. Mapper\n"
@@ -820,8 +808,7 @@ msgid ""
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
 "Fjerner mapper fra mappestabelen. Hvis ingen argumenter brukes,\n"
-"    fjerner programmet øverste mappe fra stabelen og bytter til det som "
-"deretter er øverste mappe.\n"
+"    fjerner programmet øverste mappe fra stabelen og bytter til det som deretter er øverste mappe.\n"
 "    \n"
 "    Valg:\n"
 "      -n\tLar være å bytte mappe når mapper fjernes fra stabelen,\n"
@@ -838,12 +825,12 @@ msgstr ""
 "    \n"
 "    Den innebygde funksjonen «dirs» viser mappestabelen."
 
-#: builtins/read.def:280
+#: builtins/read.def:308
 #, c-format
 msgid "%s: invalid timeout specification"
 msgstr "%s: ugyldig spesifikasjon av tidsavbrudd"
 
-#: builtins/read.def:755
+#: builtins/read.def:827
 #, c-format
 msgid "read error: %d: %s"
 msgstr "lesefeil: %d: %s"
@@ -854,11 +841,9 @@ msgstr "du kan bare «return» fra en funksjon eller kildeskript"
 
 #: builtins/set.def:869
 msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
-"du kan ikke utføre «unset» (tømme både en funksjon og en variabel for "
-"verdier) samtidig"
+msgstr "du kan ikke utføre «unset» (tømme både en funksjon og en variabel for verdier) samtidig"
 
-#: builtins/set.def:966
+#: builtins/set.def:969
 #, c-format
 msgid "%s: not an array variable"
 msgstr "%s: ikke en tabellvariabel"
@@ -877,11 +862,11 @@ msgstr "%s: klarte ikke å eksportere"
 msgid "shift count"
 msgstr "shift-antall"
 
-#: builtins/shopt.def:310
+#: builtins/shopt.def:323
 msgid "cannot set and unset shell options simultaneously"
 msgstr "du kan ikke både definere og fjerne skallvalg samtidig"
 
-#: builtins/shopt.def:428
+#: builtins/shopt.def:444
 #, c-format
 msgid "%s: invalid shell option name"
 msgstr "%s: ugyldig navn på skallvalg"
@@ -948,16 +933,16 @@ msgstr "%s: ugyldig grenseargument"
 msgid "`%c': bad command"
 msgstr "«%c»: ugyldig kommando"
 
-#: builtins/ulimit.def:455
+#: builtins/ulimit.def:464
 #, c-format
 msgid "%s: cannot get limit: %s"
 msgstr "%s: klarte ikke å hente grense: %s"
 
-#: builtins/ulimit.def:481
+#: builtins/ulimit.def:490
 msgid "limit"
 msgstr "grense"
 
-#: builtins/ulimit.def:493 builtins/ulimit.def:793
+#: builtins/ulimit.def:502 builtins/ulimit.def:802
 #, c-format
 msgid "%s: cannot modify limit: %s"
 msgstr "%s: klarte ikke å endre grense: %s"
@@ -976,7 +961,7 @@ msgstr "«%c»: ugyldig symbolsk modus-operatør"
 msgid "`%c': invalid symbolic mode character"
 msgstr "«%c»: ugyldig symbolsk modustegn"
 
-#: error.c:89 error.c:347 error.c:349 error.c:351
+#: error.c:89 error.c:373 error.c:375 error.c:377
 msgid " line "
 msgstr " linje "
 
@@ -988,7 +973,7 @@ msgstr "forrige kommando: %s\n"
 #: error.c:172
 #, c-format
 msgid "Aborting..."
-msgstr "Abryter …"
+msgstr "Avbryter …"
 
 #. TRANSLATORS: this is a prefix for informational messages.
 #: error.c:287
@@ -996,96 +981,106 @@ msgstr "Abryter …"
 msgid "INFORM: "
 msgstr "INFORM: "
 
-#: error.c:462
+#: error.c:310
+#, c-format
+msgid "DEBUG warning: "
+msgstr "DEBUG-advarsel: "
+
+#: error.c:488
 msgid "unknown command error"
 msgstr "ukjent kommandofeil"
 
-#: error.c:463
+#: error.c:489
 msgid "bad command type"
 msgstr "ugyldig kommandotype"
 
-#: error.c:464
+#: error.c:490
 msgid "bad connector"
 msgstr "ugyldig tilkobling"
 
-#: error.c:465
+#: error.c:491
 msgid "bad jump"
 msgstr "ugyldig hopp"
 
-#: error.c:503
+#: error.c:529
 #, c-format
 msgid "%s: unbound variable"
 msgstr "%s: utildelt variabel"
 
-#: eval.c:242
+#: eval.c:243
 msgid "\atimed out waiting for input: auto-logout\n"
 msgstr "\atidsavbrudd for inndata: auto-utlogging\n"
 
-#: execute_cmd.c:537
+#: execute_cmd.c:555
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
 msgstr "klarte ikke å videresende standard inndata fra «/dev/null». %s"
 
-#: execute_cmd.c:1297
+#: execute_cmd.c:1317
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
 msgstr "TIMEFORMAT: «%c» er et ugyldig formattegn"
 
-#: execute_cmd.c:2362
+#: execute_cmd.c:2391
 #, c-format
 msgid "execute_coproc: coproc [%d:%s] still exists"
 msgstr "execute_coproc: coproc [%d:%s] finnes fremdeles"
 
-#: execute_cmd.c:2486
+#: execute_cmd.c:2524
 msgid "pipe error"
 msgstr "datarør-feil"
 
-#: execute_cmd.c:4793
+#: execute_cmd.c:4923
 #, c-format
 msgid "eval: maximum eval nesting level exceeded (%d)"
 msgstr "eval: grensa for nivåer av eval-funksjoner (%d) er overskredet"
 
-#: execute_cmd.c:4805
+#: execute_cmd.c:4935
 #, c-format
 msgid "%s: maximum source nesting level exceeded (%d)"
 msgstr "%s: grensa for nivåer av kilder i kilder (%d) er overskredet"
 
-#: execute_cmd.c:4913
+#: execute_cmd.c:5043
 #, c-format
 msgid "%s: maximum function nesting level exceeded (%d)"
 msgstr "%s: grensa for nivåer av funksjoner i funksjoner (%d) er overskredet"
 
-#: execute_cmd.c:5467
+#: execute_cmd.c:5598
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
 msgstr "%s: ikke tillatt: kommandonavn kan ikke inneholde «/»"
 
-#: execute_cmd.c:5574
+#: execute_cmd.c:5715
 #, c-format
 msgid "%s: command not found"
 msgstr "fant ikke kommando %s"
 
-#: execute_cmd.c:5816
+#: execute_cmd.c:5957
 #, c-format
 msgid "%s: %s"
 msgstr "%s: %s"
 
-#: execute_cmd.c:5854
+#: execute_cmd.c:5975
+#, c-format
+msgid "%s: cannot execute: required file not found"
+msgstr "%s: kan ikke kjøres: den nødvendige filen ble ikke funnet"
+
+#: execute_cmd.c:6000
 #, c-format
 msgid "%s: %s: bad interpreter"
 msgstr "%s: %s: ugyldig tolk"
 
-#: execute_cmd.c:5891
+#: execute_cmd.c:6037
 #, c-format
 msgid "%s: cannot execute binary file: %s"
 msgstr "%s: klarte ikke å kjøre binærfil: %s"
 
-#: execute_cmd.c:5977
+#: execute_cmd.c:6123
 #, c-format
 msgid "`%s': is a special builtin"
 msgstr "«%s» er en innebygd spesialfunksjon"
 
-#: execute_cmd.c:6029
+#: execute_cmd.c:6175
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
 msgstr "klarte ikke å duplisere fd %d til fd %d"
@@ -1098,69 +1093,68 @@ msgstr "grensa for rekursjonsnivåer i uttrykk er overskredet"
 msgid "recursion stack underflow"
 msgstr "rekursjonsstabelen er tom"
 
-#: expr.c:477
+#: expr.c:478
 msgid "syntax error in expression"
 msgstr "uttrykk inneholder syntaksfeil"
 
-#: expr.c:521
+#: expr.c:522
 msgid "attempted assignment to non-variable"
 msgstr "du forsøkte å tilordne en verdi til noe som ikke er en variabel"
 
-#: expr.c:530
+#: expr.c:531
 msgid "syntax error in variable assignment"
 msgstr "variabeltildeling inneholder syntaksfeil"
 
-#: expr.c:544 expr.c:911
+#: expr.c:545 expr.c:912
 msgid "division by 0"
 msgstr "forsøkte å dele på 0"
 
-#: expr.c:592
+#: expr.c:593
 msgid "bug: bad expassign token"
 msgstr "programfeil: ugyldig expassign-symbol"
 
-#: expr.c:646
+#: expr.c:647
 msgid "`:' expected for conditional expression"
 msgstr "forventet «:» for betinget uttrykk"
 
-#: expr.c:972
+#: expr.c:973
 msgid "exponent less than 0"
 msgstr "eksponent er lavere enn 0"
 
-#: expr.c:1029
+#: expr.c:1030
 msgid "identifier expected after pre-increment or pre-decrement"
 msgstr "forventet identifikator etter pre-økning eller pre-forminskelse"
 
-#: expr.c:1056
+#: expr.c:1057
 msgid "missing `)'"
 msgstr "mangler «)»"
 
-#: expr.c:1107 expr.c:1487
+#: expr.c:1108 expr.c:1492
 msgid "syntax error: operand expected"
 msgstr "syntaksfeil: forventet operand"
 
-#: expr.c:1489
+#: expr.c:1494
 msgid "syntax error: invalid arithmetic operator"
 msgstr "syntaksfeil: ugyldig aritmetisk operatør"
 
-#: expr.c:1513
+#: expr.c:1518
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
 msgstr "%s%s%s: %s (feilaktig symbol er «%s»)"
 
-#: expr.c:1573
+#: expr.c:1578
 msgid "invalid arithmetic base"
 msgstr "ugyldig aritmetisk grunntall"
 
-#: expr.c:1582
-#, fuzzy
+#: expr.c:1587
 msgid "invalid integer constant"
-msgstr "%s: ugyldig linjeantall"
+msgstr "ugyldig heltallskonstant"
 
-#: expr.c:1598
+#: expr.c:1603
 msgid "value too great for base"
 msgstr "verdien er for høy for grunntallet"
 
-#: expr.c:1647
+#: expr.c:1652
 #, c-format
 msgid "%s: expression error\n"
 msgstr "%s: feil i uttrykk\n"
@@ -1169,7 +1163,7 @@ msgstr "%s: feil i uttrykk\n"
 msgid "getcwd: cannot access parent directories"
 msgstr "getcwd: fikk ikke tilgang til foreldermapper"
 
-#: input.c:99 subst.c:6069
+#: input.c:99 subst.c:6208
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
 msgstr "klarte ikke å tilbakestille nodelay-modus for fd %d"
@@ -1188,167 +1182,167 @@ msgstr "save_bash_input: mellomlager for ny fd %d finnes allerede"
 msgid "start_pipeline: pgrp pipe"
 msgstr "start_pipeline: pgrp-datarør"
 
-#: jobs.c:906
+#: jobs.c:907
 #, c-format
 msgid "bgp_delete: LOOP: psi (%d) == storage[psi].bucket_next"
-msgstr ""
+msgstr "bgp_delete: LOOP: psi (%d) == storage[psi].bucket_next"
 
-#: jobs.c:959
+#: jobs.c:960
 #, c-format
 msgid "bgp_search: LOOP: psi (%d) == storage[psi].bucket_next"
-msgstr ""
+msgstr "bgp_search: LOOP: psi (%d) == storage[psi].bucket_next"
 
-#: jobs.c:1283
+#: jobs.c:1279
 #, c-format
 msgid "forked pid %d appears in running job %d"
 msgstr "kopiert pid %d finnes i kjørende jobb %d"
 
-#: jobs.c:1402
+#: jobs.c:1397
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
 msgstr "sletter ventende bakgrunnsjobb %d med prosessgruppe %ld"
 
-#: jobs.c:1511
+#: jobs.c:1502
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
 msgstr "add_process: markert PID %5ld (%s) som levende"
 
-#: jobs.c:1850
+#: jobs.c:1839
 #, c-format
 msgid "describe_pid: %ld: no such pid"
 msgstr "describe_pid: %ld: pid-en finnes ikke"
 
-#: jobs.c:1865
+#: jobs.c:1854
 #, c-format
 msgid "Signal %d"
 msgstr "Signal %d"
 
-#: jobs.c:1879 jobs.c:1905
+#: jobs.c:1868 jobs.c:1894
 msgid "Done"
 msgstr "Ferdig"
 
-#: jobs.c:1884 siglist.c:122
+#: jobs.c:1873 siglist.c:123
 msgid "Stopped"
 msgstr "Venter"
 
-#: jobs.c:1888
+#: jobs.c:1877
 #, c-format
 msgid "Stopped(%s)"
 msgstr "Venter(%s)"
 
-#: jobs.c:1892
+#: jobs.c:1881
 msgid "Running"
 msgstr "Kjører"
 
-#: jobs.c:1909
+#: jobs.c:1898
 #, c-format
 msgid "Done(%d)"
 msgstr "Ferdig(%d)"
 
-#: jobs.c:1911
+#: jobs.c:1900
 #, c-format
 msgid "Exit %d"
 msgstr "Avsluttet %d"
 
-#: jobs.c:1914
+#: jobs.c:1903
 msgid "Unknown status"
 msgstr "Ukjent status"
 
-#: jobs.c:2001
+#: jobs.c:1990
 #, c-format
 msgid "(core dumped) "
 msgstr "(kjerne lagret i fil) "
 
-#: jobs.c:2020
+#: jobs.c:2009
 #, c-format
 msgid "  (wd: %s)"
 msgstr "  (wd: %s)"
 
-#: jobs.c:2259
+#: jobs.c:2250
 #, c-format
 msgid "child setpgid (%ld to %ld)"
 msgstr "underprosess setpgid (%ld til %ld)"
 
-#: jobs.c:2617 nojobs.c:664
+#: jobs.c:2608 nojobs.c:666
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
 msgstr "wait: pid %ld er ikke en underprosess av dette skallet"
 
-#: jobs.c:2893
+#: jobs.c:2884
 #, c-format
 msgid "wait_for: No record of process %ld"
 msgstr "wait_for: Ingen kjennskap til prosess %ld"
 
-#: jobs.c:3236
+#: jobs.c:3223
 #, c-format
 msgid "wait_for_job: job %d is stopped"
 msgstr "wait_for_job: prosess %d venter"
 
-#: jobs.c:3564
-#, fuzzy, c-format
+#: jobs.c:3551
+#, c-format
 msgid "%s: no current jobs"
-msgstr "%s: jobben finnes ikke"
+msgstr "%s: ingen aktuelle jobber"
 
-#: jobs.c:3571
+#: jobs.c:3558
 #, c-format
 msgid "%s: job has terminated"
 msgstr "%s: jobben er avsluttet"
 
-#: jobs.c:3580
+#: jobs.c:3567
 #, c-format
 msgid "%s: job %d already in background"
 msgstr "%s: jobb %d kjører allerede i bakgrunnen"
 
-#: jobs.c:3806
+#: jobs.c:3793
 msgid "waitchld: turning on WNOHANG to avoid indefinite block"
 msgstr "waitchld: slår på WNOHANG for å unngå kronisk blokkering"
 
-#: jobs.c:4320
+#: jobs.c:4307
 #, c-format
 msgid "%s: line %d: "
 msgstr "%s: linje %d: "
 
-#: jobs.c:4334 nojobs.c:919
+#: jobs.c:4321 nojobs.c:921
 #, c-format
 msgid " (core dumped)"
 msgstr " (kjerne lagret i fil)"
 
-#: jobs.c:4346 jobs.c:4359
+#: jobs.c:4333 jobs.c:4346
 #, c-format
 msgid "(wd now: %s)\n"
 msgstr "(wd nå: %s)\n"
 
-#: jobs.c:4391
+#: jobs.c:4378
 msgid "initialize_job_control: getpgrp failed"
 msgstr "initialize_job_control: getpgrp mislyktes"
 
-#: jobs.c:4447
+#: jobs.c:4434
 msgid "initialize_job_control: no job control in background"
 msgstr "initialize_job_control: ingen jobbkontroll i bakgrunn"
 
-#: jobs.c:4463
+#: jobs.c:4450
 msgid "initialize_job_control: line discipline"
 msgstr "initialize_job_control: linjeregler"
 
-#: jobs.c:4473
+#: jobs.c:4460
 msgid "initialize_job_control: setpgid"
 msgstr "initialize_job_control: setpgid"
 
-#: jobs.c:4494 jobs.c:4503
+#: jobs.c:4481 jobs.c:4490
 #, c-format
 msgid "cannot set terminal process group (%d)"
 msgstr "klarte ikke å velge terminal-prosessgruppe (%d)"
 
-#: jobs.c:4508
+#: jobs.c:4495
 msgid "no job control in this shell"
 msgstr "ingen jobbkontroll i dette skallet"
 
-#: lib/malloc/malloc.c:353
+#: lib/malloc/malloc.c:367
 #, c-format
 msgid "malloc: failed assertion: %s\n"
 msgstr "malloc: mislykket premiss: %s\n"
 
-#: lib/malloc/malloc.c:369
+#: lib/malloc/malloc.c:383
 #, c-format
 msgid ""
 "\r\n"
@@ -1357,49 +1351,47 @@ msgstr ""
 "\r\n"
 "malloc: %s:%d: urimelig premiss\r\n"
 
-#: lib/malloc/malloc.c:370 lib/malloc/malloc.c:933
+#: lib/malloc/malloc.c:384 lib/malloc/malloc.c:941
 msgid "unknown"
 msgstr "ukjent"
 
-#: lib/malloc/malloc.c:882
+#: lib/malloc/malloc.c:892
 msgid "malloc: block on free list clobbered"
 msgstr "malloc: rotete blokk på befrielsesliste"
 
-#: lib/malloc/malloc.c:972
+#: lib/malloc/malloc.c:980
 msgid "free: called with already freed block argument"
 msgstr "free: ble bedt om å behandle blokk som allerede er ledig"
 
-#: lib/malloc/malloc.c:975
+#: lib/malloc/malloc.c:983
 msgid "free: called with unallocated block argument"
 msgstr "free: ble bedt om å behandle blokk som ikke er tildelt"
 
-#: lib/malloc/malloc.c:994
+#: lib/malloc/malloc.c:1001
 msgid "free: underflow detected; mh_nbytes out of range"
 msgstr "free: tomt. mh_nbytes er utenfor rekkevidde"
 
-#: lib/malloc/malloc.c:1001
-#, fuzzy
+#: lib/malloc/malloc.c:1007
 msgid "free: underflow detected; magic8 corrupted"
-msgstr "free: tomt. mh_nbytes er utenfor rekkevidde"
+msgstr "fri: underflyt oppdaget; magic8 er skadet"
 
-#: lib/malloc/malloc.c:1009
+#: lib/malloc/malloc.c:1014
 msgid "free: start and end chunk sizes differ"
 msgstr "free: start- og sluttdel er av ulik størrelse"
 
-#: lib/malloc/malloc.c:1119
+#: lib/malloc/malloc.c:1176
 msgid "realloc: called with unallocated block argument"
 msgstr "realloc: ble bedt om å behandle blokk som ikke er tildelt"
 
-#: lib/malloc/malloc.c:1134
+#: lib/malloc/malloc.c:1191
 msgid "realloc: underflow detected; mh_nbytes out of range"
 msgstr "realloc: tomt. mh_nbytes er utenfor rekkevidde"
 
-#: lib/malloc/malloc.c:1141
-#, fuzzy
+#: lib/malloc/malloc.c:1197
 msgid "realloc: underflow detected; magic8 corrupted"
-msgstr "realloc: tomt. mh_nbytes er utenfor rekkevidde"
+msgstr "realloc: underflyt oppdaget; magic8 er skadet"
 
-#: lib/malloc/malloc.c:1150
+#: lib/malloc/malloc.c:1205
 msgid "realloc: start and end chunk sizes differ"
 msgstr "realloc: start- og sluttdel er av ulik størrelse"
 
@@ -1441,22 +1433,22 @@ msgstr "%s: ugyldig spesifikasjon av nettverkssti"
 msgid "network operations not supported"
 msgstr "nettverkshandlinger støttes ikke"
 
-#: locale.c:217
+#: locale.c:219
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s)"
 msgstr "setlocale: LC_ALL: klarte ikke å bytte region (%s)"
 
-#: locale.c:219
+#: locale.c:221
 #, c-format
 msgid "setlocale: LC_ALL: cannot change locale (%s): %s"
 msgstr "setlocale: LC_ALL: klarte ikke å bytte region (%s): %s"
 
-#: locale.c:292
+#: locale.c:294
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s)"
 msgstr "setlocale: %s: klarte ikke å bytte region (%s)"
 
-#: locale.c:294
+#: locale.c:296
 #, c-format
 msgid "setlocale: %s: cannot change locale (%s): %s"
 msgstr "setlocale: %s: klarte ikke å bytte region (%s): %s"
@@ -1474,141 +1466,136 @@ msgstr "Du har ny e-post i $_"
 msgid "The mail in %s has been read\n"
 msgstr "Posten i %s er lest\n"
 
-#: make_cmd.c:317
+#: make_cmd.c:314
 msgid "syntax error: arithmetic expression required"
 msgstr "syntaksfeil: aritmetisk uttrykk kreves"
 
-#: make_cmd.c:319
+#: make_cmd.c:316
 msgid "syntax error: `;' unexpected"
 msgstr "syntaksfeil: uforventet «;»"
 
-#: make_cmd.c:320
+#: make_cmd.c:317
 #, c-format
 msgid "syntax error: `((%s))'"
 msgstr "syntaksfeil: «((%s))»"
 
-#: make_cmd.c:572
+#: make_cmd.c:569
 #, c-format
 msgid "make_here_document: bad instruction type %d"
 msgstr "make_here_document: %d er en ugyldig instrukstype"
 
-#: make_cmd.c:657
+#: make_cmd.c:668
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
 msgstr "here-dokument ved linje %d adskilt av slutt på fil (forventet «%s»)"
 
-#: make_cmd.c:756
+#: make_cmd.c:769
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
-"make_redirection: videresendinginstruks «%d» er utenfor tillatt rekkevidde"
+msgstr "make_redirection: videresendinginstruks «%d» er utenfor tillatt rekkevidde"
 
-#: parse.y:2393
+#: parse.y:2428
 #, c-format
-msgid ""
-"shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line "
-"truncated"
-msgstr ""
-"shell_getc: «shell_input_line_size» (%zu) overskrider SIZE_MAX (%lu): linja "
-"er forkortet"
+msgid "shell_getc: shell_input_line_size (%zu) exceeds SIZE_MAX (%lu): line truncated"
+msgstr "shell_getc: «shell_input_line_size» (%zu) overskrider SIZE_MAX (%lu): linja er forkortet"
 
-#: parse.y:2826
+#: parse.y:2921
 msgid "maximum here-document count exceeded"
 msgstr "grensa for maksimalt antall here-dokumenter er overskredet"
 
-#: parse.y:3581 parse.y:3957 parse.y:4556
+#: parse.y:3684 parse.y:4244 parse.y:6148
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
 msgstr "uforventet slutt på fil (EOF) under søk etter «%c»"
 
-#: parse.y:4696
+#: parse.y:4452
 msgid "unexpected EOF while looking for `]]'"
 msgstr "uforventet slutt på fil (EOF) under søk etter «]]»"
 
-#: parse.y:4701
+#: parse.y:4457
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
 msgstr "syntaksfeil i betinget uttrykk: forventet ikke symbolet «%s»"
 
-#: parse.y:4705
+#: parse.y:4461
 msgid "syntax error in conditional expression"
 msgstr "syntaksfeil i betinget uttrykk"
 
-#: parse.y:4783
+#: parse.y:4539
 #, c-format
 msgid "unexpected token `%s', expected `)'"
 msgstr "forventet ikke symbolet «%s», men «)»"
 
-#: parse.y:4787
+#: parse.y:4543
 msgid "expected `)'"
 msgstr "forventet «)»"
 
-#: parse.y:4815
+#: parse.y:4571
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
 msgstr "«%s» er et uforventet argument for betinget unær operatør"
 
-#: parse.y:4819
+#: parse.y:4575
 msgid "unexpected argument to conditional unary operator"
 msgstr "uforventet argument for betinget unær operatør"
 
-#: parse.y:4865
+#: parse.y:4621
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
 msgstr "«%s» er et uforventet symbol. Forventet betinget binær operatør"
 
-#: parse.y:4869
+#: parse.y:4625
 msgid "conditional binary operator expected"
 msgstr "forventet betinget binæroperatør"
 
-#: parse.y:4891
+#: parse.y:4647
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
 msgstr "«%s» er et uforventet argument for betinget binæroperatør"
 
-#: parse.y:4895
+#: parse.y:4651
 msgid "unexpected argument to conditional binary operator"
 msgstr "uforventet argument for betinget binæroperatør"
 
-#: parse.y:4906
+#: parse.y:4662
 #, c-format
 msgid "unexpected token `%c' in conditional command"
 msgstr "«%c» er et uforventet symbol i en betinget kommando"
 
-#: parse.y:4909
+#: parse.y:4665
 #, c-format
 msgid "unexpected token `%s' in conditional command"
 msgstr "«%s» er et uforventet symbol i en betinget kommando"
 
-#: parse.y:4913
+#: parse.y:4669
 #, c-format
 msgid "unexpected token %d in conditional command"
 msgstr "«%d» er et uforventet symbol i en betinget kommando"
 
-#: parse.y:6336
+#: parse.y:6118
 #, c-format
 msgid "syntax error near unexpected token `%s'"
 msgstr "syntaksfeil ved «%s», som er et uforventet symbol"
 
-#: parse.y:6355
+#: parse.y:6137
 #, c-format
 msgid "syntax error near `%s'"
 msgstr "syntaksfeil ved «%s»"
 
-#: parse.y:6365
+#: parse.y:6151
 msgid "syntax error: unexpected end of file"
 msgstr "syntaksfeil: uforventet slutt på fil"
 
-#: parse.y:6365
+#: parse.y:6151
 msgid "syntax error"
 msgstr "syntaksfeil"
 
-#: parse.y:6428
+#: parse.y:6216
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Bruk «%s» for å gå ut av skallet.\n"
 
-#: parse.y:6602
+#: parse.y:6394
 msgid "unexpected EOF while looking for matching `)'"
 msgstr "uforventet slutt på fil (EOF) under søk etter «)»"
 
@@ -1646,94 +1633,94 @@ msgstr "xtrace_set: filpeker er NULL"
 msgid "xtrace fd (%d) != fileno xtrace fp (%d)"
 msgstr "xtrace fd (%d) != fileno xtrace fp (%d)"
 
-#: print_cmd.c:1540
+#: print_cmd.c:1545
 #, c-format
 msgid "cprintf: `%c': invalid format character"
 msgstr "cprintf: «%c»: ugyldig formattegn"
 
-#: redir.c:149 redir.c:197
+#: redir.c:150 redir.c:198
 msgid "file descriptor out of range"
 msgstr "fildeskriptor er utenfor tillatt rekkevidde"
 
-#: redir.c:204
+#: redir.c:205
 #, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: flertydig videresending"
 
-#: redir.c:208
+#: redir.c:209
 #, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: klarte ikke å overskrive fil"
 
-#: redir.c:213
+#: redir.c:214
 #, c-format
 msgid "%s: restricted: cannot redirect output"
 msgstr "%s: ikke tillatt: klarte ikke å videresende utdata"
 
-#: redir.c:218
+#: redir.c:219
 #, c-format
 msgid "cannot create temp file for here-document: %s"
 msgstr "klarte ikke å lage midlertidig fil for here-dokument: %s"
 
-#: redir.c:222
+#: redir.c:223
 #, c-format
 msgid "%s: cannot assign fd to variable"
 msgstr "%s: klarte ikke å knytte fd til variabel"
 
-#: redir.c:649
+#: redir.c:650
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr "/dev/(tcp|udp)/host/port støttes ikke uten nettverkstilkobling"
 
-#: redir.c:938 redir.c:1053 redir.c:1114 redir.c:1284
+#: redir.c:945 redir.c:1065 redir.c:1130 redir.c:1303
 msgid "redirection error: cannot duplicate fd"
 msgstr "videresendingsfeil: klarte ikke å duplisere fd"
 
-#: shell.c:347
+#: shell.c:353
 msgid "could not find /tmp, please create!"
 msgstr "fant ikke «/tmp». Opprett denne mappa!"
 
-#: shell.c:351
+#: shell.c:357
 msgid "/tmp must be a valid directory name"
 msgstr "«/tmp» må være et gyldig mappenavn"
 
-#: shell.c:804
+#: shell.c:826
 msgid "pretty-printing mode ignored in interactive shells"
 msgstr "pen utskriftsmodus blir ignorert i interaktive skall"
 
-#: shell.c:948
+#: shell.c:972
 #, c-format
 msgid "%c%c: invalid option"
 msgstr "%c%c: ugyldig valg"
 
-#: shell.c:1319
+#: shell.c:1343
 #, c-format
 msgid "cannot set uid to %d: effective uid %d"
 msgstr "klarte ikke å velge %d som uid. Effektiv uid: %d"
 
-#: shell.c:1330
+#: shell.c:1354
 #, c-format
 msgid "cannot set gid to %d: effective gid %d"
 msgstr "klarte ikke å velge %d som gid. Effektiv gid: %d"
 
-#: shell.c:1518
+#: shell.c:1544
 msgid "cannot start debugger; debugging mode disabled"
 msgstr "klarte ikke å starte feilsøkingsverktøy. Feilsøkingsmodus slått av"
 
-#: shell.c:1632
+#: shell.c:1658
 #, c-format
 msgid "%s: Is a directory"
 msgstr "%s: er en mappe"
 
-#: shell.c:1881
+#: shell.c:1907
 msgid "I have no name!"
 msgstr "Jeg manger navn!"
 
-#: shell.c:2035
+#: shell.c:2061
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
 msgstr "GNU bash, versjon %s-(%s)\n"
 
-#: shell.c:2036
+#: shell.c:2062
 #, c-format
 msgid ""
 "Usage:\t%s [GNU long option] [option] ...\n"
@@ -1742,323 +1729,317 @@ msgstr ""
 "Bruk:\t%s [langt GNU-valg] [valg] …\n"
 "\t%s [langt GNU-valg] [valg] skriptfil …\n"
 
-#: shell.c:2038
+#: shell.c:2064
 msgid "GNU long options:\n"
 msgstr "Lange GNU-valg:\n"
 
-#: shell.c:2042
+#: shell.c:2068
 msgid "Shell options:\n"
 msgstr "Skallvalg:\n"
 
-#: shell.c:2043
+#: shell.c:2069
 msgid "\t-ilrsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr ""
-"\t«-ilrsD»,  «-c kommando» eller «-O kortvalg_valg»\t\t(kun programkall)\n"
+msgstr "\t«-ilrsD»,  «-c kommando» eller «-O kortvalg_valg»\t\t(kun programkall)\n"
 
-#: shell.c:2062
+#: shell.c:2088
 #, c-format
 msgid "\t-%s or -o option\n"
 msgstr "\t«-%s» eller «-o»\n"
 
-#: shell.c:2068
+#: shell.c:2094
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
 msgstr "Skriv «%s -c \"help set\"» for mer informasjon om skallvalg.\n"
 
-#: shell.c:2069
+#: shell.c:2095
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
 msgstr "Skriv «%s -c help» for mer informasjon om innebygde skallkommandoer.\n"
 
-#: shell.c:2070
+#: shell.c:2096
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
 msgstr "Bruk kommandoen «bashbug» for å rapportere programfeil.\n"
 
-#: shell.c:2072
+#: shell.c:2098
 #, c-format
 msgid "bash home page: <http://www.gnu.org/software/bash>\n"
 msgstr "bash-nettside: <http://www.gnu.org/software/bash>\n"
 
-#: shell.c:2073
+#: shell.c:2099
 #, c-format
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
-"Generell hjelp til bruk av GNU-programvare: <http://www.gnu.org/gethelp/>\n"
+msgstr "Generell hjelp til bruk av GNU-programvare: <http://www.gnu.org/gethelp/>\n"
 
-#: sig.c:757
+#: sig.c:765
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
 msgstr "sigprocmask: %d: ugyldig handling"
 
-#: siglist.c:47
+#: siglist.c:48
 msgid "Bogus signal"
 msgstr "Ugyldig signal"
 
-#: siglist.c:50
+#: siglist.c:51
 msgid "Hangup"
 msgstr "Legg på"
 
-#: siglist.c:54
+#: siglist.c:55
 msgid "Interrupt"
 msgstr "Forstyrr"
 
-#: siglist.c:58
+#: siglist.c:59
 msgid "Quit"
 msgstr "Avslutt"
 
-#: siglist.c:62
+#: siglist.c:63
 msgid "Illegal instruction"
 msgstr "Ugyldig instruks"
 
-#: siglist.c:66
+#: siglist.c:67
 msgid "BPT trace/trap"
 msgstr "BPT-sporing/-fanging"
 
-#: siglist.c:74
+#: siglist.c:75
 msgid "ABORT instruction"
 msgstr "ABORT-instruks"
 
-#: siglist.c:78
+#: siglist.c:79
 msgid "EMT instruction"
 msgstr "EMT-instruks"
 
-#: siglist.c:82
+#: siglist.c:83
 msgid "Floating point exception"
 msgstr "Flyttallsfeil"
 
-#: siglist.c:86
+#: siglist.c:87
 msgid "Killed"
 msgstr "Drept"
 
-#: siglist.c:90
+#: siglist.c:91
 msgid "Bus error"
 msgstr "Bussfeil"
 
-#: siglist.c:94
+#: siglist.c:95
 msgid "Segmentation fault"
 msgstr "Segmenteringsfeil"
 
-#: siglist.c:98
+#: siglist.c:99
 msgid "Bad system call"
 msgstr "Ugyldig systemkall"
 
-#: siglist.c:102
+#: siglist.c:103
 msgid "Broken pipe"
 msgstr "Ødelagt datarør"
 
-#: siglist.c:106
+#: siglist.c:107
 msgid "Alarm clock"
 msgstr "Alarmklokke"
 
-#: siglist.c:110
+#: siglist.c:111
 msgid "Terminated"
 msgstr "Avsluttet"
 
-#: siglist.c:114
+#: siglist.c:115
 msgid "Urgent IO condition"
 msgstr "Hastende IO-tilstand"
 
-#: siglist.c:118
+#: siglist.c:119
 msgid "Stopped (signal)"
 msgstr "Stoppet (signal)"
 
-#: siglist.c:126
+#: siglist.c:127
 msgid "Continue"
 msgstr "Fortsett"
 
-#: siglist.c:134
+#: siglist.c:135
 msgid "Child death or stop"
 msgstr "Død eller stans av underprosess"
 
-#: siglist.c:138
+#: siglist.c:139
 msgid "Stopped (tty input)"
 msgstr "Stoppet (tty-inndata)"
 
-#: siglist.c:142
+#: siglist.c:143
 msgid "Stopped (tty output)"
 msgstr "Stoppet (tty-utdata)"
 
-#: siglist.c:146
+#: siglist.c:147
 msgid "I/O ready"
 msgstr "I/O klar"
 
-#: siglist.c:150
+#: siglist.c:151
 msgid "CPU limit"
 msgstr "CPU-grense"
 
-#: siglist.c:154
+#: siglist.c:155
 msgid "File limit"
 msgstr "Filgrense"
 
-#: siglist.c:158
+#: siglist.c:159
 msgid "Alarm (virtual)"
 msgstr "Alarm (virtuell)"
 
-#: siglist.c:162
+#: siglist.c:163
 msgid "Alarm (profile)"
 msgstr "Alarm (profil)"
 
-#: siglist.c:166
+#: siglist.c:167
 msgid "Window changed"
 msgstr "Vindu endret"
 
-#: siglist.c:170
+#: siglist.c:171
 msgid "Record lock"
 msgstr "Husk lås"
 
-#: siglist.c:174
+#: siglist.c:175
 msgid "User signal 1"
 msgstr "Brukersignal 1"
 
-#: siglist.c:178
+#: siglist.c:179
 msgid "User signal 2"
 msgstr "Brukersignal 2"
 
-#: siglist.c:182
+#: siglist.c:183
 msgid "HFT input data pending"
 msgstr "HFT-inndata venter"
 
-#: siglist.c:186
+#: siglist.c:187
 msgid "power failure imminent"
 msgstr "strømstans er nærliggende"
 
-#: siglist.c:190
+#: siglist.c:191
 msgid "system crash imminent"
 msgstr "systemkræsj er nærliggende"
 
-#: siglist.c:194
+#: siglist.c:195
 msgid "migrate process to another CPU"
 msgstr "flytt prosess til annen CPU"
 
-#: siglist.c:198
+#: siglist.c:199
 msgid "programming error"
 msgstr "programmeringsfeil"
 
-#: siglist.c:202
+#: siglist.c:203
 msgid "HFT monitor mode granted"
 msgstr "HFT-skjermmodus tildelt"
 
-#: siglist.c:206
+#: siglist.c:207
 msgid "HFT monitor mode retracted"
 msgstr "HFT-skjermmodus tilbaketrukket"
 
-#: siglist.c:210
+#: siglist.c:211
 msgid "HFT sound sequence has completed"
 msgstr "HFT-lydsekvens er fullført"
 
-#: siglist.c:214
+#: siglist.c:215
 msgid "Information request"
 msgstr "Informasjonsforespørsel"
 
-#: siglist.c:222 siglist.c:224
+#: siglist.c:223 siglist.c:225
 #, c-format
 msgid "Unknown Signal #%d"
 msgstr "#%d er et ukjent signal"
 
-#: subst.c:1476 subst.c:1666
+#: subst.c:1480 subst.c:1670
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
 msgstr "ugyldig substitutt: %2$s mangler avsluttende «%1$s»"
 
-#: subst.c:3281
+#: subst.c:3307
 #, c-format
 msgid "%s: cannot assign list to array member"
 msgstr "%s: klarte ikke å knytte liste til tabellmedlem"
 
-#: subst.c:5910 subst.c:5926
+#: subst.c:6048 subst.c:6064
 msgid "cannot make pipe for process substitution"
 msgstr "klarte ikke å lage datarør for substitusjon av prosess"
 
-#: subst.c:5985
+#: subst.c:6124
 msgid "cannot make child for process substitution"
 msgstr "klarte ikke å lage underprosess for substitusjon av prosess"
 
-#: subst.c:6059
+#: subst.c:6198
 #, c-format
 msgid "cannot open named pipe %s for reading"
 msgstr "klarte ikke å åpne navngitt datarør %s for lesing"
 
-#: subst.c:6061
+#: subst.c:6200
 #, c-format
 msgid "cannot open named pipe %s for writing"
 msgstr "klarte ikke å åpne navngitt datarør %s for skriving"
 
-#: subst.c:6084
+#: subst.c:6223
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
 msgstr "klarte ikke å duplisere navngitt datarør %s som fd %d"
 
-#: subst.c:6213
+#: subst.c:6370
 msgid "command substitution: ignored null byte in input"
 msgstr "kommandosubstitusjon: null-byte i inndata ignorert"
 
-#: subst.c:6353
+#: subst.c:6533
 msgid "cannot make pipe for command substitution"
 msgstr "klarte ikke å lage datarør for substitusjon av kommando"
 
-#: subst.c:6397
+#: subst.c:6580
 msgid "cannot make child for command substitution"
 msgstr "klarte ikke å lage underprosess for substitusjon av kommando"
 
-#: subst.c:6423
+#: subst.c:6613
 msgid "command_substitute: cannot duplicate pipe as fd 1"
 msgstr "command_substitute: klarte ikke å duplisere datarør som fd 1"
 
-#: subst.c:6883 subst.c:9952
+#: subst.c:7082 subst.c:10252
 #, c-format
 msgid "%s: invalid variable name for name reference"
 msgstr "%s: ugyldig variabelnavn for navnreferanse"
 
-#: subst.c:6979 subst.c:6997 subst.c:7169
+#: subst.c:7178 subst.c:7196 subst.c:7369
 #, c-format
 msgid "%s: invalid indirect expansion"
 msgstr "%s: ugyldig indirekte utvidelse"
 
-#: subst.c:7013 subst.c:7177
+#: subst.c:7212 subst.c:7377
 #, c-format
 msgid "%s: invalid variable name"
 msgstr "%s: ugyldig variabelnavn"
 
-#: subst.c:7256
+#: subst.c:7478
 #, c-format
 msgid "%s: parameter not set"
 msgstr "%s: parameter har ingen verdi"
 
-#: subst.c:7258
+#: subst.c:7480
 #, c-format
 msgid "%s: parameter null or not set"
 msgstr "%s: parameter har null-verdi eller står tomt"
 
-#: subst.c:7503 subst.c:7518
+#: subst.c:7727 subst.c:7742
 #, c-format
 msgid "%s: substring expression < 0"
 msgstr "%s: understreng-uttrykk < 0"
 
-#: subst.c:9281 subst.c:9302
+#: subst.c:9560 subst.c:9587
 #, c-format
 msgid "%s: bad substitution"
 msgstr "%s: ugyldig substitusjon"
 
-#: subst.c:9390
+#: subst.c:9678
 #, c-format
 msgid "$%s: cannot assign in this way"
 msgstr "$%s: du kan ikke tildele på denne måten"
 
-#: subst.c:9814
-msgid ""
-"future versions of the shell will force evaluation as an arithmetic "
-"substitution"
-msgstr ""
-"fremtidige versjoner av skallet skal tvinge evaluering som en aritmetisk "
-"substitusjon"
+#: subst.c:10111
+msgid "future versions of the shell will force evaluation as an arithmetic substitution"
+msgstr "fremtidige versjoner av skallet skal tvinge evaluering som en aritmetisk substitusjon"
 
-#: subst.c:10367
+#: subst.c:10795
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
 msgstr "ugyldig substitusjon. %s mangler avsluttende «`»"
 
-#: subst.c:11434
+#: subst.c:11874
 #, c-format
 msgid "no match: %s"
 msgstr "ingen treff på %s"
@@ -2081,137 +2062,131 @@ msgstr "forventet «)»"
 msgid "`)' expected, found %s"
 msgstr "forventet «)», men fant %s"
 
-#: test.c:466 test.c:799
+#: test.c:469 test.c:814
 #, c-format
 msgid "%s: binary operator expected"
 msgstr "%s: forventet binær operatør"
 
-#: test.c:756 test.c:759
+#: test.c:771 test.c:774
 #, c-format
 msgid "%s: unary operator expected"
 msgstr "%s: forventet unær operatør"
 
-#: test.c:881
+#: test.c:896
 msgid "missing `]'"
 msgstr "«]» mangler"
 
-#: test.c:899
-#, fuzzy, c-format
+#: test.c:914
+#, c-format
 msgid "syntax error: `%s' unexpected"
-msgstr "syntaksfeil: uforventet «;»"
+msgstr "syntaksfeil: uforventet «%s»"
 
 #: trap.c:220
 msgid "invalid signal number"
 msgstr "ugyldig signalnummer"
 
-#: trap.c:325
+#: trap.c:323
 #, c-format
 msgid "trap handler: maximum trap handler level exceeded (%d)"
-msgstr ""
-"fellehåndtering: øvre grense for fellehåndteringsnivå (%d) er overskredet"
+msgstr "fellehåndtering: øvre grense for fellehåndteringsnivå (%d) er overskredet"
 
-#: trap.c:414
+#: trap.c:412
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
 msgstr "run_pending_traps: ugyldig verdi i «trap_list[%d]»: %p"
 
-#: trap.c:418
+#: trap.c:416
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
-"run_pending_traps: SIG_DFL er signalbehandler. Sender %d (%s) til meg selv "
-"på nytt"
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: SIG_DFL er signalbehandler. Sender %d (%s) til meg selv på nytt"
 
-#: trap.c:487
+#: trap.c:509
 #, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: %d er et ugyldig signal"
 
-#: variables.c:421
+#: variables.c:424
 #, c-format
 msgid "error importing function definition for `%s'"
 msgstr "feil under importering av definisjonen av funksjonen «%s»"
 
-#: variables.c:833
+#: variables.c:838
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
 msgstr "skallnivået (%d) er for høyt. Tilbakestiller til 1"
 
-#: variables.c:2674
+#: variables.c:2642
 msgid "make_local_variable: no function context at current scope"
 msgstr "make_local_variable: ingen funksjonskontekst i gjeldende virkefelt"
 
-#: variables.c:2693
+#: variables.c:2661
 #, c-format
 msgid "%s: variable may not be assigned value"
 msgstr "%s: variabel kan ikke tilknyttes verdi"
 
-#: variables.c:3475
+#: variables.c:2818 variables.c:2874
+#, c-format
+msgid "%s: cannot inherit value from incompatible type"
+msgstr "%s: kan ikke arve verdi fra inkompatibel type"
+
+#: variables.c:3459
 #, c-format
 msgid "%s: assigning integer to name reference"
 msgstr "%s: knytter heltall til navnreferanse"
 
-#: variables.c:4404
+#: variables.c:4390
 msgid "all_local_variables: no function context at current scope"
 msgstr "all_local_variables: ingen funksjonskontekst i gjeldende virkefelt"
 
-#: variables.c:4771
+#: variables.c:4757
 #, c-format
 msgid "%s has null exportstr"
 msgstr "%s har exportstr som er null"
 
-#: variables.c:4776 variables.c:4785
+#: variables.c:4762 variables.c:4771
 #, c-format
 msgid "invalid character %d in exportstr for %s"
 msgstr "%d er et ugyldig tegn i exportstr for %s"
 
-#: variables.c:4791
+#: variables.c:4777
 #, c-format
 msgid "no `=' in exportstr for %s"
 msgstr "exportstr for %s mangler «=»"
 
-#: variables.c:5331
+#: variables.c:5317
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
-"pop_var_context: toppen av «shell_variables» er ikke en funksjonskontekst"
+msgstr "pop_var_context: toppen av «shell_variables» er ikke en funksjonskontekst"
 
-#: variables.c:5344
+#: variables.c:5330
 msgid "pop_var_context: no global_variables context"
 msgstr "pop_var_context: kontekst for «global_variables» mangler"
 
-#: variables.c:5424
+#: variables.c:5410
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
-"pop_scope: toppen av «shell_variables» er ikke et midlertidig miljøfelt"
+msgstr "pop_scope: toppen av «shell_variables» er ikke et midlertidig miljøfelt"
 
-#: variables.c:6387
+#: variables.c:6400
 #, c-format
 msgid "%s: %s: cannot open as FILE"
 msgstr "%s: %s: klarte ikke å åpne som FIL"
 
-#: variables.c:6392
+#: variables.c:6405
 #, c-format
 msgid "%s: %s: invalid value for trace file descriptor"
 msgstr "%s: %s: ugyldig verdi for sporing av fildeskriptor"
 
-#: variables.c:6437
+#: variables.c:6450
 #, c-format
 msgid "%s: %s: compatibility value out of range"
 msgstr "%s: %s: samspill-verdi er utenfor tillatt rekkevidde"
 
 #: version.c:46 version2.c:46
-#, fuzzy
-msgid "Copyright (C) 2020 Free Software Foundation, Inc."
-msgstr "Opphavsrett (C) 2012 Free Software Foundation, Inc."
+msgid "Copyright (C) 2022 Free Software Foundation, Inc."
+msgstr "Opphavsrett (C) 2022 Free Software Foundation, Inc."
 
 #: version.c:47 version2.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
-"Lisens GPLv3+: GNU GPL versjon 3 eller nyere <http://gnu.org/licenses/gpl."
-"html>\n"
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Lisens GPLv3+: GNU GPL versjon 3 eller nyere <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86 version2.c:86
 #, c-format
@@ -2220,13 +2195,11 @@ msgstr "GNU bash, versjon %s (%s)\n"
 
 #: version.c:91 version2.c:91
 msgid "This is free software; you are free to change and redistribute it."
-msgstr ""
-"Dette er fri programvare. Du står fritt til å endre og dele den videre."
+msgstr "Dette er fri programvare. Du står fritt til å endre og dele den videre."
 
 #: version.c:92 version2.c:92
 msgid "There is NO WARRANTY, to the extent permitted by law."
-msgstr ""
-"Det stilles INGEN GARANTI, i den grad dette tillates av gjeldende lovverk."
+msgstr "Det stilles INGEN GARANTI, i den grad dette tillates av gjeldende lovverk."
 
 #: xmalloc.c:93
 #, c-format
@@ -2257,13 +2230,8 @@ msgid "unalias [-a] name [name ...]"
 msgstr "unalias [-a] navn [navn …]"
 
 #: 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 tastaturoppsett] [-f filnavn] [-q navn] [-u navn] [-r "
-"knappesekv] [-x knappesekv:skallkommando] [knappesekv:readline-funksjon "
-"eller readline-kommando]"
+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 tastaturoppsett] [-f filnavn] [-q navn] [-u navn] [-r knappesekv] [-x knappesekv:skallkommando] [knappesekv:readline-funksjon eller readline-kommando]"
 
 #: builtins.c:56
 msgid "break [n]"
@@ -2294,14 +2262,12 @@ msgid "command [-pVv] command [arg ...]"
 msgstr "command [-pVv] command [arg …]"
 
 #: builtins.c:78
-#, fuzzy
-msgid "declare [-aAfFgiIlnrtux] [-p] [name[=value] ...]"
-msgstr "declare [-aAfFgilnrtux] [-p] [navn[=verdi] …]"
+msgid "declare [-aAfFgiIlnrtux] [name[=value] ...] or declare -p [-aAfFilnrtux] [name ...]"
+msgstr "declare [-aAfFgiIlnrtux] [-p] [navn[=verdi] …] eller deklarer -p [-aAfFilnrtux] [navn ...]"
 
 #: builtins.c:80
-#, fuzzy
-msgid "typeset [-aAfFgiIlnrtux] [-p] name[=value] ..."
-msgstr "typeset [-aAfFgilnrtux] [-p] navn[=verdi] …"
+msgid "typeset [-aAfFgiIlnrtux] name[=value] ... or typeset -p [-aAfFilnrtux] [name ...]"
+msgstr "typeset [-aAfFgilnrtux] [-p] navn[=verdi] … eller typesett -p [-aAfFilnrtux] [navn ...]"
 
 #: builtins.c:82
 msgid "local [option] name[=value] ..."
@@ -2324,14 +2290,12 @@ msgid "eval [arg ...]"
 msgstr "eval [arg …]"
 
 #: builtins.c:96
-#, fuzzy
 msgid "getopts optstring name [arg ...]"
-msgstr "getopts valgstreng navn [arg]"
+msgstr "getopts valgstreng navn [arg ...]"
 
 #: builtins.c:98
-#, fuzzy
 msgid "exec [-cl] [-a name] [command [argument ...]] [redirection ...]"
-msgstr "exec [-cl] [-a navn] [kommando [argumenter …]] [videresending …]"
+msgstr "exec [-cl] [-a navn] [kommando [argument …]] [videresending …]"
 
 #: builtins.c:100
 msgid "exit [n]"
@@ -2362,12 +2326,8 @@ msgid "help [-dms] [pattern ...]"
 msgstr "help [-dms] [mønster …]"
 
 #: builtins.c:123
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
-"history [-c] [-d posisjon] [n] eller history -anrw [filnavn] eller history -"
-"ps arg [arg …]"
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d posisjon] [n] eller history -anrw [filnavn] eller history -ps arg [arg …]"
 
 #: builtins.c:127
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
@@ -2378,32 +2338,24 @@ msgid "disown [-h] [-ar] [jobspec ... | pid ...]"
 msgstr "disown [-h] [-ar] [jobbspes … | pid …]"
 
 #: builtins.c:134
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
-"kill [-s sigspes | -n signum | -sigspes] pid | jobbspes … eller kill -l "
-"[sigspes]"
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s sigspes | -n signum | -sigspes] pid | jobbspes … eller kill -l [sigspes]"
 
 #: builtins.c:136
 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 tabell] [-d adskill] [-i tekst] [-n ntegn] [-N ntegn] [-p "
-"ledetekst] [-t tidsavbrudd] [-u fd] [navn …]"
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a tabell] [-d adskill] [-i tekst] [-n ntegn] [-N ntegn] [-p ledetekst] [-t tidsavbrudd] [-u fd] [navn …]"
 
 #: builtins.c:140
 msgid "return [n]"
 msgstr "return [n]"
 
 #: builtins.c:142
-msgid "set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]"
-msgstr "set [-abefhkmnptuvxBCHP] [-o valgnavn] [--] [arg …]"
+msgid "set [-abefhkmnptuvxBCEHPT] [-o option-name] [--] [-] [arg ...]"
+msgstr "set [-abefhkmnptuvxBCEHPT] [-o valgnavn] [--] [arg …]"
 
 #: builtins.c:144
 msgid "unset [-f] [-v] [-n] [name ...]"
@@ -2450,17 +2402,16 @@ msgid "type [-afptP] name [name ...]"
 msgstr "type [-afptP] navn [navn …]"
 
 #: builtins.c:171
-msgid "ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]"
-msgstr "ulimit [-SHabcdefiklmnpqrstuvxPT] [grense]"
+msgid "ulimit [-SHabcdefiklmnpqrstuvxPRT] [limit]"
+msgstr "ulimit [-SHabcdefiklmnpqrstuvxPRT [grense]"
 
 #: builtins.c:174
 msgid "umask [-p] [-S] [mode]"
 msgstr "umask [-p] [-S] [modus]"
 
 #: builtins.c:177
-#, fuzzy
 msgid "wait [-fn] [-p var] [id ...]"
-msgstr "wait [-fn] [id …]"
+msgstr "wait [-fn] [-p var] [id …]"
 
 #: builtins.c:181
 msgid "wait [pid ...]"
@@ -2487,20 +2438,16 @@ msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
 msgstr "case ORD in [MØNSTER [| MØNSTER] …) KOMMANDOER ;;] … esac"
 
 #: builtins.c:194
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
-"if KOMMANDOER; then KOMMANDOER; [ elif KOMMANDOER; then KOMMANDOER; ] … "
-"[ else KOMMANDOER; ] fi"
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if KOMMANDOER; then KOMMANDOER; [ elif KOMMANDOER; then KOMMANDOER; ] … [ else KOMMANDOER; ] fi"
 
 #: builtins.c:196
-msgid "while COMMANDS; do COMMANDS; done"
-msgstr "while KOMMANDOER; do KOMMANDOER; done"
+msgid "while COMMANDS; do COMMANDS-2; done"
+msgstr "while KOMMANDOER; do KOMMANDOER-2; done"
 
 #: builtins.c:198
-msgid "until COMMANDS; do COMMANDS; done"
-msgstr "until KOMMANDOER; do KOMMANDOER; done"
+msgid "until COMMANDS; do COMMANDS-2; done"
+msgstr "until KOMMANDOER; do KOMMANDOER-2; done"
 
 #: builtins.c:200
 msgid "coproc [NAME] command [redirections]"
@@ -2551,44 +2498,24 @@ msgid "printf [-v var] format [arguments]"
 msgstr "printf [-v var] format [argumenter]"
 
 #: builtins.c:231
-#, fuzzy
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-"
-"W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S "
-"suffix] [name ...]"
-msgstr ""
-"complete [-abcdefgjksuv] [-pr] [-DEI] [-o valg] [-A handling] [-G globpat] [-"
-"W ordliste]  [-F funksjon] [-C kommando] [-X filterpat] [-P prefiks] [-S "
-"suffiks] [navn …]"
+msgid "complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-DEI] [-o valg] [-A handling] [-G globpat] [-W ordliste] [-F funksjon] [-C kommando] [-X filterpat] [-P prefiks] [-S suffiks] [navn …]"
 
 #: 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 valg] [-A handling] [-G globpat] [-W ordliste]  "
-"[-F funksjon] [-C kommando] [-X filtersti] [-P prefiks] [-S suffiks] [ord]"
+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 valg] [-A handling] [-G globpat] [-W ordliste] [-F funksjon] [-C kommando] [-X filtersti] [-P prefiks] [-S suffiks] [ord]"
 
 #: builtins.c:239
 msgid "compopt [-o|+o option] [-DEI] [name ...]"
 msgstr "compopt [-o|+o valg] [-DEI] [navn …]"
 
 #: builtins.c:242
-msgid ""
-"mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"mapfile [-d skilletegn] [-n antall] [-O opphav] [-s antall] [-t] [-u fd] [-C "
-"tilbakekall] [-c mengde] [tabell]"
+msgid "mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-d skilletegn] [-n antall] [-O opphav] [-s antall] [-t] [-u fd] [-C tilbakekall] [-c mengde] [tabell]"
 
 #: builtins.c:244
-msgid ""
-"readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C "
-"callback] [-c quantum] [array]"
-msgstr ""
-"readarray [-d skilletegn] [-n antall] [-O opphav] [-s antall] [-t] [-u fd] [-"
-"C tilbakekall] [-c mengde] [tabell]"
+msgid "readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "readarray [-d skilletegn] [-n antall] [-O opphav] [-s antall] [-t] [-u fd] [-C tilbakekall] [-c mengde] [tabell]"
 
 #: builtins.c:256
 msgid ""
@@ -2605,8 +2532,7 @@ 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 ""
 "Definer eller vis alias.\n"
@@ -2622,8 +2548,7 @@ msgstr ""
 "      -p\tSkriv ut alle definerte alias i brukbart format\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    alias avslutter med positiv verdi («true»), med mindre bruker skriver "
-"inn et NAVN\n"
+"    alias avslutter med positiv verdi («true»), med mindre bruker skriver inn et NAVN\n"
 "    som mangler definert alias."
 
 #: builtins.c:278
@@ -2640,8 +2565,7 @@ msgstr ""
 "    Valg:\n"
 "      -a\tfjern alle alias-definisjoner.\n"
 "    \n"
-"    Programmet avslutter som vellykket med mindre bruker velger et aliasNAVN "
-"som ikke finnes."
+"    Programmet avslutter som vellykket med mindre bruker velger et aliasNAVN som ikke finnes."
 
 #: builtins.c:291
 msgid ""
@@ -2655,30 +2579,25 @@ 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"
@@ -2686,45 +2605,35 @@ msgid ""
 msgstr ""
 "Velg hurtigtaster og variabler for Readline.\n"
 "    \n"
-"    Knytt en knappekombinasjon til en Readline-funksjon eller makro, eller "
-"gi\n"
-"    verdi til en Readline-variabel. Argumentsyntaksen tilsvarer det som "
-"finnes\n"
+"    Knytt en knappekombinasjon til en Readline-funksjon eller makro, eller gi\n"
+"    verdi til en Readline-variabel. Argumentsyntaksen tilsvarer det som finnes\n"
 "    i «~/.inputrc», men må oppgis som ett argument.\n"
 "    F.eks.: bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
 "    \n"
 "    Valg:\n"
-"      -m  OPPSETT         Bruk valgt tastaturOPPSETT under kjøring av denne "
-"kommandoen.\n"
+"      -m  OPPSETT         Bruk valgt tastaturOPPSETT under kjøring av denne kommandoen.\n"
 "                         Gyldige oppsettsnavn er «emacs», «emacs-standard»,\n"
 "                         «emacs-meta», «emacs-ctlx», «vi», «vi-move»,\n"
 "                         «vi-command» og «vi-insert».\n"
 "      -l                 Vis funksjonsnavn.\n"
 "      -P                 Vis funksjonsnavn og tildelinger.\n"
-"      -p                 Vis funksjoner og tildelinger i et format som kan "
-"gjenbrukes\n"
+"      -p                 Vis funksjoner og tildelinger i et format som kan gjenbrukes\n"
 "                         som inndata.\n"
-"      -S                 Vis knappekombinasjoner som kaller makroer og "
-"tilhørende verdier\n"
-"      -s                 Tilsvarer «-S», men i et format som kan gjenbrukes "
-"i inndata.\n"
+"      -S                 Vis knappekombinasjoner som kaller makroer og tilhørende verdier\n"
+"      -s                 Tilsvarer «-S», men i et format som kan gjenbrukes i inndata.\n"
 "      -V                 Vis variabelnavn og verdier\n"
-"      -v                 Tilsvarer «-V», men i et format som kan gjenbrukes "
-"i inndata.\n"
+"      -v                 Tilsvarer «-V», men i et format som kan gjenbrukes i inndata.\n"
 "      -q  function-name  Spør hvilke knapper som kaller aktuell funksjon.\n"
-"      -u  function-name  Fjern alle knappekombinasjoner som er tilknyttet "
-"aktuell funksjon.\n"
+"      -u  function-name  Fjern alle knappekombinasjoner som er tilknyttet aktuell funksjon.\n"
 "      -r  KOMB         Fjern tildeling av valgt knappeKOMBinasjon.\n"
 "      -f  FILNAVN       Les knappekombinasjoner fra FILNAVN.\n"
 "      -x  KOMB:KOMMANDO\tGjør slik at valgt skallKOMMANDO kjøres når\n"
 "    \t\t\t\tvalgt knappeKOMBinasjon trykkes.\n"
-"      -X                 Vis knappekombinasjoner som er tildelt med «-x», og "
-"aktuelle kommandoer \n"
+"      -X                 Vis knappekombinasjoner som er tildelt med «-x», og aktuelle kommandoer \n"
 "                         i et format som kan gjenbrukes i inndata.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    bind avslutter med 0, med mindre bruker tar et ukjent valg eller det "
-"oppstår feil."
+"    bind avslutter med 0, med mindre bruker tar et ukjent valg eller det oppstår feil."
 
 #: builtins.c:330
 msgid ""
@@ -2766,8 +2675,7 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
@@ -2777,8 +2685,7 @@ msgstr ""
 "    \n"
 "    Kjør SKALLFUNKSJON med valgte ARGumenter uten å slå opp\n"
 "    kommandonavn. Dette er nyttig når du vil re-implementere en innebygd\n"
-"    skallkommando som en funksjon, samtidig som du kjører den innenfor en "
-"skallfunksjon.\n"
+"    skallkommando som en funksjon, samtidig som du kjører den innenfor en skallfunksjon.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Statuskoden er den samme som aktuell SKALLFUNKSJON gir, eller\n"
@@ -2805,8 +2712,7 @@ msgstr ""
 "    «$line $subroutine $filename». Denne ekstrainformasjonen kan brukes\n"
 "    til stabelsporing.\n"
 "    \n"
-"    Verdien av UTTRykk viser hvor mange kall-rammer programmet skal bevege "
-"seg\n"
+"    Verdien av UTTRykk viser hvor mange kall-rammer programmet skal bevege seg\n"
 "    gjennom tilbake fra gjeldende ramme. Øverste ramme er 0.\n"
 "    \n"
 "    Avslutningsstatus:\n"
@@ -2817,22 +2723,16 @@ msgstr ""
 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"
@@ -2848,13 +2748,11 @@ 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 ""
 "Bytt arbeidsmappe for skallet.\n"
@@ -2867,8 +2765,7 @@ msgstr ""
 "    Et null-mappenavn er det samme som gjeldende mappe. Hvis MAP begynner\n"
 "    med skråstrek (/), brukes ikke CDPATH.\n"
 "    \n"
-"    Hvis valgt mappe ikke finnes, og skallvalget «cdable_vars» har en "
-"verdi,\n"
+"    Hvis valgt mappe ikke finnes, og skallvalget «cdable_vars» har en verdi,\n"
 "    antas ordet å være et variabelnavn. Hvis den variabelen har en verdi,\n"
 "    brukes denne verdien som MAP.\n"
 "    \n"
@@ -2887,8 +2784,7 @@ msgstr ""
 "    én skråstrek tilbake eller til begynnelsen av MAP.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Status er 0 hvis skallet har byttet mappe, og hvis $PWD er valgt uten "
-"problemer\n"
+"    Status er 0 hvis skallet har byttet mappe, og hvis $PWD er valgt uten problemer\n"
 "    ved bruk av «-P». Ellers er status noe annet enn 0."
 
 #: builtins.c:425
@@ -2964,8 +2860,7 @@ msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2979,10 +2874,8 @@ msgid ""
 msgstr ""
 "Kjør en enkel kommando, eller vis informasjon om kommandoer.\n"
 "    \n"
-"    Kjører valgt KOMMANDO med ARG uten oppslag av skallfunksjoner, eller "
-"viser\n"
-"    informasjon om valgte KOMMANDOer. Dette kan brukes til å kalle "
-"kommandoer\n"
+"    Kjører valgt KOMMANDO med ARG uten oppslag av skallfunksjoner, eller viser\n"
+"    informasjon om valgte KOMMANDOer. Dette kan brukes til å kalle kommandoer\n"
 "    på disk når det finens en funksjon med samme navn.\n"
 "    \n"
 "    Valg:\n"
@@ -2992,11 +2885,9 @@ msgstr ""
 "      -V\tskriv ut en mer detaljert beskrivelse av hver KOMMANDO\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Samme som statuskoden fra KOMMANDO, eller mislykket hvis KOMMANDO ikke "
-"finnes."
+"    Samme som statuskoden fra KOMMANDO, eller mislykket hvis KOMMANDO ikke finnes."
 
 #: builtins.c:490
-#, fuzzy
 msgid ""
 "Set variable values and attributes.\n"
 "    \n"
@@ -3029,8 +2920,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"
@@ -3048,6 +2938,7 @@ msgstr ""
 "    \tkildefil kommer i tillegg ved feilsøking)\n"
 "      -g\tlag globale variabler ved bruk innenfor en skallfunksjon\n"
 "    \t(ignoreres ved annen bruk)\n"
+"      -I\thvis du oppretter en lokal variabel, arv attributtene og verdien\n"
 "      -p\tvis attributter og verdi av hvert valgt NAVN\n"
 "    \n"
 "    Valg som justerer attributter:\n"
@@ -3055,8 +2946,7 @@ msgstr ""
 "      -A\tgjør valgte NAVN til assosiative tabeller (hvis det støttes)\n"
 "      -i\tgi valgte NAVN attributten «integer» (heltall)\n"
 "      -l\tkonverter valgte NAVN til små bokstaver\n"
-"      -n\tgjør valgt NAVN til en referanse til variabelen med egen verdi som "
-"navn\n"
+"      -n\tgjør valgt NAVN til en referanse til variabelen med egen verdi som navn\n"
 "      -r\tskrivebeskytt valgte NAVN\n"
 "      -t\tgi valgte NAVN attirbutten «trace»\n"
 "      -u\tkonverter valgte NAVN til store bokstaver\n"
@@ -3103,8 +2993,7 @@ msgstr ""
 "    Lag en lokal variabel med valgt NAVN og VERDI. Du kan foreta\n"
 "    VALG i henhold til kommandoen «declare».\n"
 "    \n"
-"    Lokale variabler kan bare brukes innenfor en funksjon. De er kun "
-"synlige\n"
+"    Lokale variabler kan bare brukes innenfor en funksjon. De er kun synlige\n"
 "    for funksjonen de lages innenfor, samt underfunksjoner.\n"
 "    \n"
 "    Avslutningsstatus:\n"
@@ -3115,8 +3004,7 @@ msgstr ""
 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"
@@ -3140,11 +3028,9 @@ msgid ""
 "    \t\t0 to 3 octal digits\n"
 "      \\xHH\tthe eight-bit character whose value is HH (hexadecimal).  HH\n"
 "    \t\tcan be one or two hex digits\n"
-"      \\uHHHH\tthe Unicode character whose value is the hexadecimal value "
-"HHHH.\n"
+"      \\uHHHH\tthe Unicode character whose value is the hexadecimal value HHHH.\n"
 "    \t\tHHHH can be one to four hex digits.\n"
-"      \\UHHHHHHHH the Unicode character whose value is the hexadecimal "
-"value\n"
+"      \\UHHHHHHHH the Unicode character whose value is the hexadecimal value\n"
 "    \t\tHHHHHHHH. HHHHHHHH can be one to eight hex digits.\n"
 "    \n"
 "    Exit Status:\n"
@@ -3236,8 +3122,7 @@ msgstr ""
 "    \n"
 "    Valg:\n"
 "      -a\tskriv ut en liste som viser hvilke kommandoer som er slått på\n"
-"      -n\tslå av hvert valgt NAVN, eller vis en liste over kommandoer som er "
-"slått av\n"
+"      -n\tslå av hvert valgt NAVN, eller vis en liste over kommandoer som er slått av\n"
 "      -p\tskriv ut liste over kommandoer i et gjenbrukbart format\n"
 "      -s\tbare skriv ut navn på innebygde Posix-spesialkommandoer\n"
 "    \n"
@@ -3257,8 +3142,7 @@ msgstr ""
 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"
@@ -3273,7 +3157,6 @@ msgstr ""
 "    Samme som valgt kommando, eller vellykket hvis kommando er null."
 
 #: builtins.c:652
-#, fuzzy
 msgid ""
 "Parse option arguments.\n"
 "    \n"
@@ -3326,17 +3209,13 @@ msgstr ""
 "    kalles, laster inn navnet hvis det ikke finnes, og\n"
 "    indeks for neste argument som skal behandles i skallvariabelen OPTIND.\n"
 "    OPTIND lastes inn til 1 hver gang skallet eller et skallskript kjøres.\n"
-"    Når et valg krever et argument plasseres argumentet i skallvariabelen "
-"OPTARG.\n"
+"    Når et valg krever et argument plasseres argumentet i skallvariabelen OPTARG.\n"
 "    \n"
-"    getopts rapporterer feil på én av to måter. Hvis første tegn i "
-"VALGSTRENG\n"
+"    getopts rapporterer feil på én av to måter. Hvis første tegn i VALGSTRENG\n"
 "    er kolon, rapporteres feil uten direkte feilmeldinger til bruker.\n"
 "    Hvis getopts ser et ugyldig valg, plasseres aktuelt valgtegn i OPTARG.\n"
-"    Hvis et obligatorisk argument ikke er gitt, legger getopts et «:» i NAVN "
-"og\n"
-"    bruker oppdaget valgtegn som OPTARG. Hvis getopts ikke er i "
-"stillemodus,\n"
+"    Hvis et obligatorisk argument ikke er gitt, legger getopts et «:» i NAVN og\n"
+"    bruker oppdaget valgtegn som OPTARG. Hvis getopts ikke er i stillemodus,\n"
 "    og ser et ugyldig valg, brukes «?» som NAVN, og OPTARG tømmes.\n"
 "    Hvis et obligatorisk argument ikke er gitt, legger getopts et «?»\n"
 "    i NAVN, tømmer OPTARG og skriver ut en feilmelding.\n"
@@ -3345,7 +3224,7 @@ msgstr ""
 "    av feilmeldinger, selv hvis første tegn i VALGSTRENG ikke er kolon.\n"
 "    OPTERR har verdien 1 som standard.\n"
 "    \n"
-"    Getopts tolker vanligvis posisjonsparametre ($0 - $9), men hvis\n"
+"    Getopts tolker vanligvis posisjonsparametre, men hvis\n"
 "    flere argumenter er gitt, blir disse tolket i stedet.\n"
 "    \n"
 "    Avslutningsstatus:\n"
@@ -3357,8 +3236,7 @@ msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -3366,19 +3244,16 @@ 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 ""
 "Erstatt skallet med valgt kommando.\n"
 "    \n"
 "    Kjør KOMMANDO, og erstatt dette skallet med valgt program.\n"
-"    ARGUMENTER sendes videre til valgt KOMMANDO. Hvis KOMMANDO ikke er "
-"valgt,\n"
+"    ARGUMENTER sendes videre til valgt KOMMANDO. Hvis KOMMANDO ikke er valgt,\n"
 "    blir videresendinger brukt i gjeldende skall.\n"
 "    \n"
 "    Valg:\n"
@@ -3386,13 +3261,11 @@ msgstr ""
 "      -c\t\tkjør valgt KOMMANDO med et tomt miljø\n"
 "      -l\t\tbruk bindestrek som argument nummer null for COMMAND\n"
 "    \n"
-"    Hvis kommandoen ikke kan kjøres, avsluttes ikke-interaktivt skall, med "
-"mindre\n"
+"    Hvis kommandoen ikke kan kjøres, avsluttes ikke-interaktivt skall, med mindre\n"
 "    skallvalget «execfail» er brukt.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket, med mindre valgt KOMMANDO ikke finnes eller det oppstår en "
-"videresendingsfeil."
+"    Vellykket, med mindre valgt KOMMANDO ikke finnes eller det oppstår en videresendingsfeil."
 
 #: builtins.c:715
 msgid ""
@@ -3410,29 +3283,25 @@ msgstr ""
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
 "Avslutt et innloggingsskall.\n"
 "    \n"
-"    Avslutter et innloggingsskall med status N. Dette gir feilmelding hvis "
-"det\n"
+"    Avslutter et innloggingsskall med status N. Dette gir feilmelding hvis det\n"
 "    ikke kjøres i et innloggingsskall."
 
 #: builtins.c:734
 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"
@@ -3446,20 +3315,16 @@ 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 ""
 "Vis eller kjør kommandoer fra historikklista.\n"
 "    \n"
-"    fc brukes til å vise list eller redigere og kjøre kommandoer på nytt fra "
-"historikklista.\n"
-"    FØRSTE og SISTE kan være tall som angir rekkevidde. FØRSTE kan også være "
-"en\n"
+"    fc brukes til å vise list eller redigere og kjøre kommandoer på nytt fra historikklista.\n"
+"    FØRSTE og SISTE kan være tall som angir rekkevidde. FØRSTE kan også være en\n"
 "    streng, som betyr nyeste kommando som begynner med denne strengen.\n"
 "    \n"
 "    Valg:\n"
-"      -e ENAME\tvelg hvilket redigeringsprogram som skal brukes. Standard er "
-"FCEDIT, evt. EDITOR\n"
+"      -e ENAME\tvelg hvilket redigeringsprogram som skal brukes. Standard er FCEDIT, evt. EDITOR\n"
 "    \t\teller vi\n"
 "      -l \tvis linjer i stedet for å redigere\n"
 "      -n\tikke vis linjenumre\n"
@@ -3473,8 +3338,7 @@ msgstr ""
 "    betyr å kjøre forrige kommando.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Enten vellykket, samme som kjørt kommando eller noe annet enn null hvis "
-"det oppstår feil."
+"    Enten vellykket, samme som kjørt kommando eller noe annet enn null hvis det oppstår feil."
 
 #: builtins.c:764
 msgid ""
@@ -3494,17 +3358,14 @@ msgstr ""
 "    allerede oppfattes som gjeldende i skallet.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Samme som kommandoen som legges i forgrunnen, eller mislykket hvis det "
-"oppstår feil."
+"    Samme som kommandoen som legges i forgrunnen, eller mislykket hvis det oppstår feil."
 
 #: builtins.c:779
 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"
@@ -3513,8 +3374,7 @@ msgstr ""
 "Flytt jobber til bakgrunnen.\n"
 "    \n"
 "    Plasser jobber med id-er JOB_SPEC i bakgrunnen, som om de\n"
-"    ble startet med «&».  Hvis JOB_SPEC ikke er oppgitt, brukes jobben som "
-"allerede\n"
+"    ble startet med «&».  Hvis JOB_SPEC ikke er oppgitt, brukes jobben som allerede\n"
 "    som gjeldende i skallet.\n"
 "    \n"
 "    Avslutningsstatus:\n"
@@ -3525,8 +3385,7 @@ 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"
@@ -3556,8 +3415,7 @@ msgstr ""
 "      -t\t\tskriv ut lagret plassering av valgt(e) NAVN, med\n"
 "    \t\tNAVN foran aktuell plassering hvis flere NAVN er valgt\n"
 "    Argumenter:\n"
-"      NAVN\t\tProgrammet søker etter hvert NAVN i $PATH og legger det til i "
-"lista\n"
+"      NAVN\t\tProgrammet søker etter hvert NAVN i $PATH og legger det til i lista\n"
 "    \t\tover lagrede kommandoer.\n"
 "    \n"
 "    Avslutningsstatus:\n"
@@ -3581,8 +3439,7 @@ msgid ""
 "      PATTERN\tPattern specifying 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 ""
 "Vis informasjon om innebygde kommandoer.\n"
 "    \n"
@@ -3600,8 +3457,7 @@ msgstr ""
 "      MØNSTER\tVelger hjelpeemne\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket, med mindre et MØNSTER ikke finnes eller bruker tar et ugyldig "
-"valg."
+"    Vellykket, med mindre et MØNSTER ikke finnes eller bruker tar et ugyldig valg."
 
 #: builtins.c:842
 msgid ""
@@ -3631,8 +3487,7 @@ 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."
@@ -3648,8 +3503,7 @@ msgstr ""
 "\t\tNegativ posisjon teller fra slutten.\n"
 "    \n"
 "      -a\tlegg til linjer fra gjeldende økt i historikkfil\n"
-"      -n\tles alle historikklinjer som ikke allerede er lest inn fra "
-"historikkfil\n"
+"      -n\tles alle historikklinjer som ikke allerede er lest inn fra historikkfil\n"
 "      -r\tles historikkfil og legg til innhold i historikkliste\n"
 "      -w\tlagre gjeldende historikk i historikkfil\n"
 "    \n"
@@ -3707,8 +3561,7 @@ msgstr ""
 "    jobber er erstattet med prosess-ID-en til gjeldende prosessgruppeleder.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår "
-"feil.\n"
+"    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår feil.\n"
 "    Hvis «-x» er valgt, hentes statuskode fra aktuell KOMMANDO."
 
 #: builtins.c:906
@@ -3734,8 +3587,7 @@ msgstr ""
 "    \n"
 "    Valg:\n"
 "      -a\tfjern alle jobber hvis JOBBSPES ikke er angitt\n"
-"      -h\tmarker hver JOBBSPES slik at SIGHUP ikke sendes til jobben hvis "
-"skallet\n"
+"      -h\tmarker hver JOBBSPES slik at SIGHUP ikke sendes til jobben hvis skallet\n"
 "    \tmottar et SIGHUP\n"
 "      -r\tbare fjern kjørende jobber\n"
 "    \n"
@@ -3767,8 +3619,7 @@ msgstr ""
 "Send signal til en jobb.\n"
 "    \n"
 "    Gi prosesser (valgt med PID eller JOBBSPES) et signal\n"
-"    (valgt med SIGSPES eller SIGNUM). Hvis hverken SIGSPES eller SIGNUM er "
-"valgt,\n"
+"    (valgt med SIGSPES eller SIGNUM). Hvis hverken SIGSPES eller SIGNUM er valgt,\n"
 "    brukes SIGTERM.\n"
 "    \n"
 "    Valg:\n"
@@ -3778,8 +3629,7 @@ msgstr ""
 "    \tantas disse å være signalnumre som det skal vises navn på\n"
 "      -L\ttilsvarer «-l»\n"
 "    \n"
-"    Kill er en innebygget skallkommando av to grunner: den tillater bruk av "
-"jobb-ID\n"
+"    Kill er en innebygget skallkommando av to grunner: den tillater bruk av jobb-ID\n"
 "    i stedet for prosess-ID, og lar bruker drepe prosesser hvis grensa for\n"
 "    antall tillatte prosesser er nådd.\n"
 "    \n"
@@ -3793,8 +3643,7 @@ msgid ""
 "    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"
@@ -3860,8 +3709,7 @@ msgstr ""
 "    \n"
 "    Skallvariabler tillates som operand. Variabelens navn erstattes med\n"
 "    verdien (tvunget til et breddefast heltall) i et uttrykk.\n"
-"    Variabelen behøver ikke heltallsattributt for å kunne brukes i et "
-"uttrykk.\n"
+"    Variabelen behøver ikke heltallsattributt for å kunne brukes i et uttrykk.\n"
 "    \n"
 "    Operatører regnes ut etter presedens. Underuttrykk i parentes\n"
 "    regnes ut først, og kan overstyre overnevnte presedensregler.\n"
@@ -3874,16 +3722,14 @@ 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"
-"    delimiters.\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
+"    delimiters. By default, the backslash character escapes delimiter characters\n"
+"    and newline.\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"
@@ -3895,8 +3741,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"
@@ -3914,10 +3759,8 @@ 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 ""
 "Les en linje fra standard inndata og del den opp i felt.\n"
@@ -3933,38 +3776,32 @@ msgstr ""
 "    Valg:\n"
 "      -a tabell\tknytt leste ord til sekvens-indekser i \n"
 "    \t\ttabellvariabelen TABELL, talt fra null\n"
-"      -d skill\tfortsett frem til første SKILLetegn, i stedet for frem til "
-"linjeskift\n"
+"      -d skill\tfortsett frem til første SKILLetegn, i stedet for frem til linjeskift\n"
 "      -e\t\tbruk Readline til å hente linje\n"
 "      -i tekst\tBruk valgt TEKST med Readline\n"
-"      -n n\tgå tilbake etter å ha lest N antall tegn i stedet for å vente på "
-"ny linje,\n"
+"      -n n\tgå tilbake etter å ha lest N antall tegn i stedet for å vente på ny linje,\n"
 "    \t\tmen bruk skilletegn hvis linja er kortere enn N\n"
 "    \t\tles tegn før skilletegn\n"
 "      -N N\tgå tilbake etter å ha lest nøyaktig N antall tegn, med mindre\n"
 "    \t\tEOF eller tidsavbrudd oppstår (skilletegn ignoreres)\n"
-"      -p ledet\tskriv ut valgt LEDETekst uten å legge til linjeskift før "
-"lesing\n"
+"      -p ledet\tskriv ut valgt LEDETekst uten å legge til linjeskift før lesing\n"
 "      -r\t\tikke tillat bruk av skråstrek som skiftetegn\n"
 "      -s\t\tikke skriv ut inndata som kommer fra en terminal\n"
 "      -t tidsav\tavbryt og avslutt med feil hvis en hel linje med inndata\n"
 "    \t\tikke blir lest ferdig innen valgt TIDSAVbrudd (i sekunder).\n"
-"    \t\tStandard avbruddstid hentes fra variabelen TMOUT. TIDSAVbrudd kan "
-"være\n"
+"    \t\tStandard avbruddstid hentes fra variabelen TMOUT. TIDSAVbrudd kan være\n"
 "    \t\tet brøktall. Hvis TIDSAV er 0, går read tilbake umiddelbart,\n"
-"    \t\tog prøver ikke å lese data. I sistnevnte tilfelle avslutter read "
-"bare\n"
+"    \t\tog prøver ikke å lese data. I sistnevnte tilfelle avslutter read bare\n"
 "    \t\tvellykket hvis inndata er tilgjengelig på valgt fildeskriptor.\n"
 "    \t\tAvslutningsstatus er større enn 128 ved tidsavbrudd\n"
 "      -u fd\t\tles fra fildeskriptor FD i stedet for standard inndata\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Null (vellykket), med mindre programmet møter EOF, får tidsavbrudd\n"
-"    (i så fall er verdien høyere enn 128), det oppstår en variabel-"
-"tidelingsfeil,\n"
+"    (i så fall er verdien høyere enn 128), det oppstår en variabel-tidelingsfeil,\n"
 "    eller valget «-u» argumenteres med en ugyldig fildeskriptor."
 
-#: builtins.c:1041
+#: builtins.c:1042
 msgid ""
 "Return from a shell function.\n"
 "    \n"
@@ -3984,7 +3821,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    N, eller mislykket hvis skallet ikke kjører en funksjon eller et skript."
 
-#: builtins.c:1054
+#: builtins.c:1055
 msgid ""
 "Set or unset values of shell options and positional parameters.\n"
 "    \n"
@@ -4027,8 +3864,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"
@@ -4052,8 +3888,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 and RETURN traps are 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"
@@ -4109,10 +3944,8 @@ msgstr ""
 "              onecmd       tilsvarer «-t»\n"
 "              physical     tilsvarer «-P»\n"
 "              pipefail     returverdi av en kommandokø er statusen for\n"
-"                           siste kommando som avslutter med en annen status "
-"enn null,\n"
-"                           eller null hvis alle kommandoer avsluttet med "
-"null\n"
+"                           siste kommando som avslutter med en annen status enn null,\n"
+"                           eller null hvis alle kommandoer avsluttet med null\n"
 "              posix        endre bash-oppførsel hvor standardoppførselen er\n"
 "                           annerledes enn Posix-standarden, slik at bash\n"
 "                           samsvarer med Posix\n"
@@ -4122,8 +3955,7 @@ msgstr ""
 "              xtrace       tilsvarer «-x»\n"
 "      -p  Slått på når virkelig og effektiv bruker-ID ikke er like.\n"
 "          Dette slår av behandling av fila $ENV og importering av\n"
-"          skallfunksjoner. Hvis du slår av dette valget, blir effektiv uid "
-"og\n"
+"          skallfunksjoner. Hvis du slår av dette valget, blir effektiv uid og\n"
 "          gid det samme som virkelig uid og gid.\n"
 "      -t  Avslutt når én kommando er lest og kjørt.\n"
 "      -u  Behandle udefinerte variabler som en feil.\n"
@@ -4152,7 +3984,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg."
 
-#: builtins.c:1139
+#: builtins.c:1140
 msgid ""
 "Unset values and attributes of shell variables and functions.\n"
 "    \n"
@@ -4164,8 +3996,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"
@@ -4180,8 +4011,7 @@ msgstr ""
 "    Valg:\n"
 "      -f\tbehandle hvert NAVN som en skallfunksjon\n"
 "      -v\tbehandle hvert NAVN som en skallvariabel\n"
-"      -n\tbehandle hvert NAVN som en navnreferanse, og tilbakestill selve "
-"variabelen\n"
+"      -n\tbehandle hvert NAVN som en navnreferanse, og tilbakestill selve variabelen\n"
 "    \ti stedet for variabelen den refererer til\n"
 "    \n"
 "    Hvis ingen valg er tatt, prøver programmet først å tømme en variabel.\n"
@@ -4190,16 +4020,14 @@ msgstr ""
 "    Enkelte variabler kan ikke tømmes. Se også «readonly».\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket, med mindre bruker tar et ugyldig valg eller et NAVN er "
-"skrivebeskyttet."
+"    Vellykket, med mindre bruker tar et ugyldig valg eller et NAVN er skrivebeskyttet."
 
-#: builtins.c:1161
+#: builtins.c:1162
 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"
@@ -4213,10 +4041,8 @@ msgid ""
 msgstr ""
 "Gi skallvariabler eksport-attributt.\n"
 "    \n"
-"    Markerer hvert valgt NAVN for automatisk eksportering til miljøet ved "
-"etterfølgende\n"
-"    kjørte kommandoer. Hvis VERDI er oppgitt, tildeles VERDI før "
-"eksportering.\n"
+"    Markerer hvert valgt NAVN for automatisk eksportering til miljøet ved etterfølgende\n"
+"    kjørte kommandoer. Hvis VERDI er oppgitt, tildeles VERDI før eksportering.\n"
 "    \n"
 "    Valg:\n"
 "      -f\thenvis til skallfunksjoner\n"
@@ -4226,10 +4052,9 @@ msgstr ""
 "    Bruk argumentet«--» for å slå av videre behandling av valg.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket, med mindre bruker tar et ugyldig valg, eller et NAVN er "
-"ugyldig."
+"    Vellykket, med mindre bruker tar et ugyldig valg, eller et NAVN er ugyldig."
 
-#: builtins.c:1180
+#: builtins.c:1181
 msgid ""
 "Mark shell variables as unchangeable.\n"
 "    \n"
@@ -4251,8 +4076,7 @@ msgid ""
 msgstr ""
 "Marker skallvariabler som skrivebeskyttet.\n"
 "    \n"
-"    Marker hvert valgt NAVN som skrivebeskyttet. Verdier av NAVN kan ikke "
-"endres\n"
+"    Marker hvert valgt NAVN som skrivebeskyttet. Verdier av NAVN kan ikke endres\n"
 "    av etterfølgende tildeling. Hvis VERDI er oppgitt, tildeles denne før\n"
 "    variabelen markeres som skrivebeskyttet.\n"
 "    \n"
@@ -4260,8 +4084,7 @@ msgstr ""
 "      -a\thenvis til indekserte tabellvariabler\n"
 "      -A\thenvis til assosiative tabellvariabler\n"
 "      -f\thenvis til skallfunksjoner\n"
-"      -p\tvis en liste over alle skrivebeskyttede variabler eller "
-"funksjoner,\n"
+"      -p\tvis en liste over alle skrivebeskyttede variabler eller funksjoner,\n"
 "            avhengig av hvorvidt «-f» er valgt\n"
 "    \n"
 "    Bruk argumentet «--» for å slå av videre behandling av valg.\n"
@@ -4269,7 +4092,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller NAVN."
 
-#: builtins.c:1202
+#: builtins.c:1203
 msgid ""
 "Shift positional parameters.\n"
 "    \n"
@@ -4287,7 +4110,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre N er negativ eller større enn $#."
 
-#: builtins.c:1214 builtins.c:1229
+#: builtins.c:1215 builtins.c:1230
 msgid ""
 "Execute commands from a file in the current shell.\n"
 "    \n"
@@ -4311,7 +4134,7 @@ msgstr ""
 "    Samme som siste kommando som ble kjørt via FILNAVN, eller\n"
 "    mislykket hvis FILNAVN ikke kan leses."
 
-#: builtins.c:1245
+#: builtins.c:1246
 msgid ""
 "Suspend shell execution.\n"
 "    \n"
@@ -4326,10 +4149,8 @@ msgid ""
 msgstr ""
 "Sett skallkjøring på pause.\n"
 "    \n"
-"    Sett kjøring av dette skallet på pause inntil det mottar et SIGCONT-"
-"signal.\n"
-"    Innloggingsskall kan ikke settes på pause med mindre du tvinger det "
-"fram.\n"
+"    Sett kjøring av dette skallet på pause inntil det mottar et SIGCONT-signal.\n"
+"    Innloggingsskall kan ikke settes på pause med mindre du tvinger det fram.\n"
 "    \n"
 "    Valg:\n"
 "      -f\ttving skallpause, selv hvis skallet er et innloggingsskall\n"
@@ -4337,7 +4158,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre jobbkontroll er slått av eller det oppstår feil."
 
-#: builtins.c:1261
+#: builtins.c:1262
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4371,8 +4192,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"
@@ -4393,8 +4213,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"
@@ -4422,8 +4241,7 @@ msgstr ""
 "Kontroller betinget uttrykk.\n"
 "    \n"
 "    Avslutter med status 0 (positiv, «true») eller 1 (negativ, «false»)\n"
-"    i henhold til resultatet av valgt UTTRykk. Uttrykk kan være unære eller "
-"binære.\n"
+"    i henhold til resultatet av valgt UTTRykk. Uttrykk kan være unære eller binære.\n"
 "    Unære uttrykk brukes ofte for å undersøke status for en fil.\n"
 "    Streng- og tallkontroll-valg kan også brukes.\n"
 "    \n"
@@ -4451,10 +4269,8 @@ msgstr ""
 "      -w FIL        Positiv hvis FIL kan overskrives av deg.\n"
 "      -x FIL        Positiv hvis FIL kan kjøres av deg.\n"
 "      -O FIL        Positiv hvis FIL har deg som effektiv eier.\n"
-"      -G FIL        Positiv hvis FIL har din gruppe som effektiv "
-"gruppetilhørighet.\n"
-"      -N FIL        Positiv hvis FIL er blitt endret siden den ble lest "
-"sist.\n"
+"      -G FIL        Positiv hvis FIL har din gruppe som effektiv gruppetilhørighet.\n"
+"      -N FIL        Positiv hvis FIL er blitt endret siden den ble lest sist.\n"
 "    \n"
 "      FIL1 -nt FIL2  Positiv hvis FIL1 er nyere enn FIL2 (i følge\n"
 "                       endringsdato).\n"
@@ -4475,18 +4291,15 @@ msgstr ""
 "      STRENG1 != STRENG2\n"
 "                     Positiv hvis STRENGene ikke er like.\n"
 "      STRENG1 < STRENG2\n"
-"                     Positiv hvis STRENG1 havner over STRENG2 når de "
-"sorteres leksikografisk.\n"
+"                     Positiv hvis STRENG1 havner over STRENG2 når de sorteres leksikografisk.\n"
 "      STRENG1 > STRENG2\n"
-"                     Positiv hvis STRENG1 havner under STRENG2 når de "
-"sorteres leksikografisk.\n"
+"                     Positiv hvis STRENG1 havner under STRENG2 når de sorteres leksikografisk.\n"
 "    \n"
 "    Andre valg:\n"
 "    \n"
 "      -o VALG      Positiv hvis skallvalget OPTION er slått på.\n"
 "      -v VAR\t Positiv hvis skallvariabelen VAR har en verdi\n"
-"      -R VAR\t Positiv hvis skallvariabelen VAR har en verdi, og er en "
-"navnreferanse.\n"
+"      -R VAR\t Positiv hvis skallvariabelen VAR har en verdi, og er en navnreferanse.\n"
 "      ! UTTR         Positiv hvis UTTR er usant.\n"
 "      UTTR1 -a UTTR2 Positiv hvis både UTTR1 og UTTR2 er sanne.\n"
 "      UTTR1 -o UTTR2 Positiv hvis enten UTTR1 eller UTTR2 er sanne.\n"
@@ -4494,16 +4307,14 @@ msgstr ""
 "      arg1 OP arg2   Aritmetiske tester. OP må være enten «-eq», «-ne»,\n"
 "                     «-lt», «-le», «-gt» eller «-ge».\n"
 "    \n"
-"    Aritmetiske binærvalg gir positiv verdi hvis ARG1 er lik, ulik, mindre "
-"enn,\n"
+"    Aritmetiske binærvalg gir positiv verdi hvis ARG1 er lik, ulik, mindre enn,\n"
 "    lik-eller-mindre-enn, større enn eller større-enn-eller-lik ARG2.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket hvis UTTR gir positiv verdi, og mislykket hvis det gir negativ "
-"verdi eller\n"
+"    Vellykket hvis UTTR gir positiv verdi, og mislykket hvis det gir negativ verdi eller\n"
 "    bruker skriver inn et ugyldig argument."
 
-#: builtins.c:1343
+#: builtins.c:1344
 msgid ""
 "Evaluate conditional expression.\n"
 "    \n"
@@ -4515,12 +4326,11 @@ msgstr ""
 "    Dette er synonymt med den innebygde kommandoen «test», men\n"
 "    siste argument må være «]» for å samsvare med «[»."
 
-#: builtins.c:1352
+#: builtins.c:1353
 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"
@@ -4528,18 +4338,16 @@ msgid ""
 msgstr ""
 "Vis prosesstider.\n"
 "    \n"
-"    Skriver ut oppsamlet bruker- og systemtid for skallet og alle "
-"underprosesser.\n"
+"    Skriver ut oppsamlet bruker- og systemtid for skallet og alle underprosesser.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Alltid vellykket."
 
-#: builtins.c:1364
+#: builtins.c:1365
 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"
@@ -4548,43 +4356,33 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
-"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  "
-"If\n"
-"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or "
-"a\n"
-"    script run by the . or source builtins finishes executing.  A "
-"SIGNAL_SPEC\n"
-"    of ERR means to execute ARG each time a command's failure would cause "
-"the\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
+"    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.  If\n"
+"    a SIGNAL_SPEC is RETURN, ARG is executed each time a shell function or a\n"
+"    script run by the . or source builtins finishes executing.  A SIGNAL_SPEC\n"
+"    of ERR means to execute ARG each time a command's failure would cause the\n"
 "    shell to exit when the -e option is enabled.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
 "Fang signaler og andre hendelser.\n"
 "    \n"
-"    Definerer og slår på brytere som skal kjøres når skallet mottar "
-"signaler\n"
+"    Definerer og slår på brytere som skal kjøres når skallet mottar signaler\n"
 "    eller havner i andre tilstander.\n"
 "    \n"
-"    ARG er en kommando som skal leses og kjøres når skallet mottar signalet/-"
-"ene\n"
+"    ARG er en kommando som skal leses og kjøres når skallet mottar signalet/-ene\n"
 "    i henhold til SIGNALSPES. Hvis ARG er enten utelatt eller «-»,\n"
 "    og én SIGNALSPES er brukt, tilbakestilles valgt(e) signal(er) til\n"
 "    opprinnelig verdi. Hvis ARG er null, ignoreres SIGNALSPES av skallet\n"
@@ -4592,31 +4390,26 @@ msgstr ""
 "    \n"
 "    Hvis en SIGNALSPES er EXIT (0), kjøres ARG når skallet avslutter.\n"
 "    Hvis en SIGNALSPES er DEBUG, kjøres ARG før hver kommando.\n"
-"    Hvis en SIGNALSPES er RETURN, kjøres ARG hver gang en skallfunksjon, "
-"skript\n"
+"    Hvis en SIGNALSPES er RETURN, kjøres ARG hver gang en skallfunksjon, skript\n"
 "    eller innebygd kommando har kjørt ferdig. Hvis en SIGNALSPES\n"
-"    er ERR, kjøres ARG hver gang en feilkjørt kommando ville ført til at "
-"skallet\n"
+"    er ERR, kjøres ARG hver gang en feilkjørt kommando ville ført til at skallet\n"
 "    avsluttes når «-e» er valgt.\n"
 "    \n"
-"    Hvis ingen argumenter er brukt, skriver trap ut en liste over "
-"kommandoer\n"
+"    Hvis ingen argumenter er brukt, skriver trap ut en liste over kommandoer\n"
 "    som er tilknyttet hvert signal.\n"
 "    \n"
 "    Valg:\n"
 "      -l\tskriv ut en liste over signalnavn og tilknyttede numre\n"
 "      -p\tvis trap-kommandoer som er tilknyttet hver SIGNALSPESifikasjon\n"
 "    \n"
-"    Hver SIGNALSPES er enten et signalnavn fra <signal.h> eller et "
-"signalnummer.\n"
-"    Signalnavn skiller mellom små og store bokstaver. Prefikset «SIG» er "
-"valgfritt.\n"
+"    Hver SIGNALSPES er enten et signalnavn fra <signal.h> eller et signalnummer.\n"
+"    Signalnavn skiller mellom små og store bokstaver. Prefikset «SIG» er valgfritt.\n"
 "    Du kan sende et signal til skallet med «kill -signal $$».\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre en SIGNALSPES eller et valg er ugyldig."
 
-#: builtins.c:1400
+#: builtins.c:1401
 msgid ""
 "Display information about command type.\n"
 "    \n"
@@ -4642,8 +4435,7 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
+"    Returns success if all of the NAMEs are found; fails if any are not found."
 msgstr ""
 "Vis informasjon om kommandotype.\n"
 "    \n"
@@ -4651,36 +4443,30 @@ msgstr ""
 "    et kommandonavn.\n"
 "    \n"
 "    Valg:\n"
-"      -a\tvis alle plasseringer som inneholder en kjørbar fil med oppgitt "
-"NAVN.\n"
+"      -a\tvis alle plasseringer som inneholder en kjørbar fil med oppgitt NAVN.\n"
 "    \tHer inngår alle alias, innebygde kommandoer og funksjoner, med mindre\n"
 "    \t«-p» er valgt i tillegg\n"
 "      -f\tikke slå opp skallfunksjoner\n"
 "      -P\ttving et søk i STI etter NAVN, selv hvis det er et alias,\n"
 "    \tinnebygd kommando eller en funksjon, og vis navn på fila\n"
 "    \tsom ville blitt kjørt\n"
-"      -p\tvis enten navn på fila som ville blitt kjørt, eller ingenting "
-"hvis\n"
+"      -p\tvis enten navn på fila som ville blitt kjørt, eller ingenting hvis\n"
 "    \t«type -t NAVN» ikke fører til «file».\n"
 "      -t\tbeskriv NAVN som enten «alias», «keyword» (nøkkelord),\n"
-"    \t«function» (funksjon), «builtin» (innebygd kommando), «file» (fil) "
-"eller \n"
+"    \t«function» (funksjon), «builtin» (innebygd kommando), «file» (fil) eller \n"
 "    \t«'» (ikke funnet), if NAME is an alias, shell\n"
 "    \n"
 "    Argumenter:\n"
 "      NAVN\tKommandonavn som skal tolkes.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Vellykket hvis alle NAVN finnes, og mislykket hvis ett eller flere ikke "
-"finnes."
+"    Vellykket hvis alle NAVN finnes, og mislykket hvis ett eller flere ikke finnes."
 
-#: builtins.c:1431
-#, fuzzy
+#: builtins.c:1432
 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"
@@ -4726,8 +4512,7 @@ msgid ""
 msgstr ""
 "Endre grenser for skallressurser.\n"
 "    \n"
-"    Lar deg kontrollere mengden ressurser som skal være tilgjengelig for "
-"skall og\n"
+"    Lar deg kontrollere mengden ressurser som skal være tilgjengelig for skall og\n"
 "    prosessene det lager på systemer som tillater det.\n"
 "    \n"
 "    Valg:\n"
@@ -4738,9 +4523,9 @@ msgstr ""
 "      -c\tmaksimal størrelse på opprettede kjernefiler\n"
 "      -d\tmaksimal størrelse på datasegment av en prosess\n"
 "      -e\tmaksimal prioritet («nice»-verdi)\n"
-"      -f\tmaksimal størrelse på filer som skrives av skallet og "
-"underprosesser\n"
+"      -f\tmaksimal størrelse på filer som skrives av skallet og underprosesser\n"
 "      -i\tmaksimalt antall ventende signaler\n"
+"      -k\tmaksimalt antall k-køer som er tildelt denne prosessen\n"
 "      -l\tmaksimal minnemengde en prosess kan låse\n"
 "      -m\tmaksimal «resident set»-størrelse\n"
 "      -n\tmaksimalt antall åpne fildeskriptorer\n"
@@ -4752,26 +4537,24 @@ msgstr ""
 "      -u\tmaksimalt antall brukerprosesser\n"
 "      -v\tstørrelsen på virtuelt minne\n"
 "      -x\tmaksimalt antall fillåser\n"
-"      -T    maksimalt antall tråder\n"
+"      -P\tmaksimalt antall pseudoterminaler\n"
+"      -R\tden maksimale tiden en sanntidsprosess kan kjøre før blokkering\n"
+"      -T\tmaksimalt antall tråder\n"
 "    \n"
 "    Det er ikke alle valg som støttes på alle plattformer.\n"
 "    \n"
 "    Hvis GRENSE er oppgitt, brukes denne som ny verdi for valgt ressurs.\n"
-"    Du kan også bruke spesialverdiene «soft» (myk), «hard», og "
-"«unlimited» (ubegrenset).\n"
-"    Ellers skriver programmet ut gjeldende verdi av valgt ressurs. Hvis "
-"ingenting\n"
+"    Du kan også bruke spesialverdiene «soft» (myk), «hard», og «unlimited» (ubegrenset).\n"
+"    Ellers skriver programmet ut gjeldende verdi av valgt ressurs. Hvis ingenting\n"
 "    er valgt, brukes «-f».\n"
 "    \n"
-"    Verdier oppgis i 1024-byte-enheter, bortsett fra «-t» som oppgis i "
-"sekunder,\n"
-"    «-p» som oppgis i 512-byte-enheter og «-u» som er et uskalert antall "
-"prosesser.\n"
+"    Verdier oppgis i 1024-byte-enheter, bortsett fra «-t» som oppgis i sekunder,\n"
+"    «-p» som oppgis i 512-byte-enheter og «-u» som er et uskalert antall prosesser.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår feil."
 
-#: builtins.c:1482
+#: builtins.c:1483
 msgid ""
 "Display or set file mode mask.\n"
 "    \n"
@@ -4797,35 +4580,29 @@ msgstr ""
 "    og ellers som en symbolsk modusstreng av typen som brukes av chmod(1).\n"
 "    \n"
 "    Valg:\n"
-"      -p\tskriv ut i et format som kan gjenbrukes som inndata hvis ingen "
-"MODUS er valgt\n"
+"      -p\tskriv ut i et format som kan gjenbrukes som inndata hvis ingen MODUS er valgt\n"
 "      -S\tgjør utdata symbolsk (ikke skriv ut oktaltall)\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre MODUS er ugyldig eller bruker tar et ugyldig valg."
 
-#: builtins.c:1502
-#, fuzzy
+#: builtins.c:1503
 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 job specification, waits for all processes\n"
 "    in that job's pipeline.\n"
 "    \n"
-"    If the -n option is supplied, waits for a single job from the list of "
-"IDs,\n"
-"    or, if no IDs are supplied, for the next job to complete and returns "
-"its\n"
+"    If the -n option is supplied, waits for a single job from the list of IDs,\n"
+"    or, if no IDs are supplied, for the next job to complete and returns its\n"
 "    exit status.\n"
 "    \n"
 "    If the -p option is supplied, the process or job identifier of the job\n"
 "    for which the exit status is returned is assigned to the variable VAR\n"
-"    named by the option argument. The variable will be unset initially, "
-"before\n"
+"    named by the option argument. The variable will be unset initially, before\n"
 "    any assignment. This is useful only when the -n option is supplied.\n"
 "    \n"
 "    If the -f option is supplied, and job control is enabled, waits for the\n"
@@ -4837,51 +4614,48 @@ msgid ""
 "    children."
 msgstr ""
 "Vent på fullføring av jobb, og skriv ut avslutningsstatus.\n"
-"    \n"
-"    Vent på valgt(e) prosess(er) (valgt med ID, som kan være prosess-ID "
-"eller\n"
+"   \n"
+" \n"
+"    Vent på valgt(e) prosess(er) (valgt med ID, som kan være prosess-ID eller\n"
 "    jobbspesifikasjon), og skriv ut statuskode. Hvis ID ikke er valgt,\n"
 "    venter programmet på alle aktive underprosesser, og avslutter\n"
-"    med kode null. Hvis ID er en jobbspesifikasjon, venter programmet på "
-"alle\n"
+"    med kode null. Hvis ID er en jobbspesifikasjon, venter programmet på alle\n"
 "    prosesser i kommandokøen for valgt jobb.\n"
 "    \n"
-"    Hvis «-n» er valgt, skriver programmet ut avslutningsstatus for neste "
-"jobb.\n"
+"    Hvis «-n» er valgt, venter på en enkelt jobb fra listen over IDer,\n"
+"    eller, hvis ingen IDer er oppgitt skriver programmet ut avslutningsstatus for neste jobb.\n"
 "    \n"
 "    Hvis «f» er valgt og jobbkontroll er slått på, venter programmet på at\n"
 "    valgt ID skal avslutte i stedet for å vente på statusendring.\n"
+"    \n"
 "    Avslutningsstatus:\n"
-"    Samme som siste ID, eller mislykket hvis enten ID er ugyldig eller\n"
-"    bruker tar et ugyldig valg."
+"    Samme som siste ID: mislykket hvis enten ID er ugyldig eller\n"
+"    bruker tar et ugyldig valg, eller hvis «-n» er oppgitt og \n"
+"    skallet ikke har noen uventede barne-prosesser."
 
-#: builtins.c:1533
+#: builtins.c:1534
 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 ""
 "Vent på ferdigstillelse av prosess, og rapporter avslutningsstatus.\n"
 "    \n"
-"    Venter på hver prosess som er valgt med PID, og rapporterer avsluttende "
-"statuskode.\n"
-"    Hvis PID ikke er valgt, venter kommandoen på alle aktive "
-"underprosesser,\n"
+"    Venter på hver prosess som er valgt med PID, og rapporterer avsluttende statuskode.\n"
+"    Hvis PID ikke er valgt, venter kommandoen på alle aktive underprosesser,\n"
 "    og avslutter med null-status. PID må være en prosess-ID.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Samme som siste PID. Mislykket hvis PID er ugyldig, eller hvis\n"
 "    bruker tar et ugyldig valg."
 
-#: builtins.c:1548
+#: builtins.c:1549
 msgid ""
 "Execute commands for each member in a list.\n"
 "    \n"
@@ -4902,7 +4676,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Samme som sist kjørte kommando."
 
-#: builtins.c:1562
+#: builtins.c:1563
 msgid ""
 "Arithmetic for loop.\n"
 "    \n"
@@ -4932,7 +4706,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Samme som sist kjørte kommando."
 
-#: builtins.c:1580
+#: builtins.c:1581
 msgid ""
 "Select words from a list and execute commands.\n"
 "    \n"
@@ -4960,15 +4734,14 @@ msgstr ""
 "    består av et tall som tilsvarer antall ord, endres NAVN slik at det\n"
 "    tilsvarer dette tallet. Hvis linja er tom, vises ORD og ledetekst på\n"
 "    nytt.  Hvis programmet møter EOF, avslutter kommandoen. Andre\n"
-"    verdier fører til at NAVN endres til null. Lest linje lagres i "
-"variabelen\n"
+"    verdier fører til at NAVN endres til null. Lest linje lagres i variabelen\n"
 "    REPLY. KOMMANDOER kjøres etter hvert utvalg frem til programmet\n"
 "    støter på en bruddkommando.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Samme som sist kjørt kommando."
 
-#: builtins.c:1601
+#: builtins.c:1602
 msgid ""
 "Report time consumed by pipeline's execution.\n"
 "    \n"
@@ -4985,10 +4758,8 @@ msgid ""
 msgstr ""
 "Rapporter medgått tid i kommandokø-kjøring.\n"
 "    \n"
-"    Kjør valgt DATARØR og skriv ut en oppsummering av reell tid, bruker-CPU-"
-"tid\n"
-"    og system-CPU-tid som er medgått ved kjøring av DATARØR idet det "
-"avsluttes.\n"
+"    Kjør valgt DATARØR og skriv ut en oppsummering av reell tid, bruker-CPU-tid\n"
+"    og system-CPU-tid som er medgått ved kjøring av DATARØR idet det avsluttes.\n"
 "    \n"
 "    Valg:\n"
 "      -p\tkjør tidsoppsummering i gjenbrukbart Posix-format.\n"
@@ -4998,7 +4769,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Samme som statuskoden fra valgt DATARØR."
 
-#: builtins.c:1618
+#: builtins.c:1619
 msgid ""
 "Execute commands based on pattern matching.\n"
 "    \n"
@@ -5016,21 +4787,16 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Samme som sist kjørte kommando."
 
-#: builtins.c:1630
+#: builtins.c:1631
 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"
@@ -5040,53 +4806,51 @@ msgstr ""
 "    \n"
 "    Kjør lista «if KOMMANDOER». Hvis avslutningsstatus er null, kjøres\n"
 "    «then KOMMANDOER». Ellers kjøres hver «elif KOMMANDOER»-liste\n"
-"    etter tur. Hvis status er null ved sistnevnte, kjøres tilhørende «then "
-"KOMMANDOER»\n"
+"    etter tur. Hvis status er null ved sistnevnte, kjøres tilhørende «then KOMMANDOER»\n"
 "    og if-kommandoen avslutter. Ellers kjøres evt. lista «else KOMMANDOER».\n"
-"    Avslutningsstatus for hele betingelsesuttrykket er statuskoden fra sist "
-"kjørt kommando,\n"
+"    Avslutningsstatus for hele betingelsesuttrykket er statuskoden fra sist kjørt kommando,\n"
 "    eller null hvis ingen tilstand er sann.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Samme som sist kjørt kommando."
 
-#: builtins.c:1647
+#: builtins.c:1648
 msgid ""
 "Execute commands as long as a test succeeds.\n"
 "    \n"
-"    Expand and execute COMMANDS as long as the final command in the\n"
-"    `while' COMMANDS has an exit status of zero.\n"
+"    Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
+"    an exit status of zero.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 "Kjør kommandoer så lenge en test lykkes.\n"
 "    \n"
-"    Utvid og kjør KOMMANDOER så lenge siste kommando i\n"
+"    Utvid og kjør KOMMANDOER-2 så lenge siste kommando i\n"
 "    «while» avslutter med null-status.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Samme som sist kjørte kommando."
+"    Returnerer statusen til den siste kommandoen som ble kjørt."
 
-#: builtins.c:1659
+#: builtins.c:1660
 msgid ""
 "Execute commands as long as a test does not succeed.\n"
 "    \n"
-"    Expand and execute COMMANDS as long as the final command in the\n"
-"    `until' COMMANDS has an exit status which is not zero.\n"
+"    Expand and execute COMMANDS-2 as long as the final command in COMMANDS has\n"
+"    an exit status which is not zero.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
 "Kjør kommandoer så lenge en test mislykkes.\n"
 "    \n"
-"    Utvid og kjør KOMMANDOER så lenge siste kommando i\n"
+"    Utvid og kjør KOMMANDOER-2 så lenge siste kommando i\n"
 "    «until» avslutter med en annen statuskode enn null.\n"
 "    \n"
 "    Avslutningsstatus:\n"
-"    Samme som sist kjørte kommando."
+"    Returnerer statusen til den siste kommandoen som ble kjørt."
 
-#: builtins.c:1671
+#: builtins.c:1672
 msgid ""
 "Create a coprocess named NAME.\n"
 "    \n"
@@ -5100,22 +4864,19 @@ msgid ""
 msgstr ""
 "Lag medprosess med valgt NAVN.\n"
 "    \n"
-"    Kjør valgt KOMMANDO synkront, med standard inn- og utdata for "
-"kommandoen\n"
-"    som er tilkoblet via et datarør til fildeskriptorer med indeks 0 og 1 i "
-"en tabellvariabel \n"
+"    Kjør valgt KOMMANDO synkront, med standard inn- og utdata for kommandoen\n"
+"    som er tilkoblet via et datarør til fildeskriptorer med indeks 0 og 1 i en tabellvariabel \n"
 "    med oppgitt NAVN i kjørende skall.\n"
 "\v    StandardNAVN er «COPROC».\n"
 "    \n"
 "    coproc avslutter med kode 0."
 
-#: builtins.c:1685
+#: builtins.c:1686
 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"
@@ -5124,16 +4885,14 @@ msgid ""
 msgstr ""
 "Definer en skallfunksjon.\n"
 "    \n"
-"    Lag en skallfunksjon med valgt NAVN. NAVN kjører KOMMANDOer i gjeldende "
-"skallkontekst\n"
-"    når det kjøres som en enkel kommando, og argumenter videresendes til "
-"funksjonen som\n"
+"    Lag en skallfunksjon med valgt NAVN. NAVN kjører KOMMANDOer i gjeldende skallkontekst\n"
+"    når det kjøres som en enkel kommando, og argumenter videresendes til funksjonen som\n"
 "    $1…$n. Funksjonens navn ligger i $FUNCNAME.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre valgt NAVN er skrivebeskyttet."
 
-#: builtins.c:1699
+#: builtins.c:1700
 msgid ""
 "Group commands as a unit.\n"
 "    \n"
@@ -5151,7 +4910,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Samme som sist kjørt kommando."
 
-#: builtins.c:1711
+#: builtins.c:1712
 msgid ""
 "Resume job in foreground.\n"
 "    \n"
@@ -5169,14 +4928,12 @@ msgstr ""
 "    Tilsvarer argumentet «JOBBSPES» for kommandoen «fg». Gjenoppta\n"
 "    en jobb som venter eller kjører i bakgrunnen. «JOBBSPES» kan\n"
 "    enten være et jobbnavn eller -nummer. Bruk «&» etter JOBBSPES for å\n"
-"    legge jobben i bakgrunnen, som om jobbspesifikasjonen var et argument "
-"for «bg».\n"
+"    legge jobben i bakgrunnen, som om jobbspesifikasjonen var et argument for «bg».\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Samme som statuskoden for gjenopptatt jobb."
 
-#: builtins.c:1726
-#, fuzzy
+#: builtins.c:1727
 msgid ""
 "Evaluate arithmetic expression.\n"
 "    \n"
@@ -5194,16 +4951,13 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    1 hvis UTTRYKK blir 0, og ellers 0."
 
-#: builtins.c:1738
+#: builtins.c:1739
 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"
@@ -5229,10 +4983,8 @@ msgstr ""
 "    \n"
 "      ( UTTRYKK )\tViser verdien av UTTRYKK\n"
 "      ! UTTRYKK\t\tPositiv hvis UTTRYKK er usant, ellers negativ\n"
-"      UTTR1 && UTTR2\tPositiv hvis både UTTR1 og UTTR2 er sant, ellers "
-"negativ\n"
-"      UTTR1 || UTTR2\tPositiv hvis enten UTTR1 eller UTTR2 er sant, ellers "
-"negativ\n"
+"      UTTR1 && UTTR2\tPositiv hvis både UTTR1 og UTTR2 er sant, ellers negativ\n"
+"      UTTR1 || UTTR2\tPositiv hvis enten UTTR1 eller UTTR2 er sant, ellers negativ\n"
 "    \n"
 "    Ved bruk av «==» og «!=» brukes etterfølgende streng som\n"
 "    et mønster, og programmet utfører mønsterutlikning.\n"
@@ -5245,7 +4997,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    0 eller 1, avhengig av UTTRYKKets verdi."
 
-#: builtins.c:1764
+#: builtins.c:1765
 msgid ""
 "Common shell variable names and usage.\n"
 "    \n"
@@ -5305,11 +5057,9 @@ msgstr ""
 "    \t\tfor mapper som er brukt som argumenter for «cd».\n"
 "    GLOBIGNORE\tEn kolondelt liste over mønstre som beskriver filnavn\n"
 "    \t\tsom skal ignoreres av stinavn-utvidelse.\n"
-"    HISTFILE\tNavn på fil hvor kommandohistorikk for gjeldende bruker er "
-"lagret.\n"
+"    HISTFILE\tNavn på fil hvor kommandohistorikk for gjeldende bruker er lagret.\n"
 "    HISTFILESIZE\tMaksimalt antall linjer denne fila kan inneholde.\n"
-"    HISTSIZE\tMaksimalt antall historikklinjer et kjørende skall har tilgang "
-"til.\n"
+"    HISTSIZE\tMaksimalt antall historikklinjer et kjørende skall har tilgang til.\n"
 "    HOME\tFullstendig sti til gjeldende brukers hjemmemappe.\n"
 "    HOSTNAME\tNavn på gjeldende vert.\n"
 "    HOSTTYPE\tType prosessor denne versjonen av Bash kjører på.\n"
@@ -5335,8 +5085,7 @@ msgstr ""
 "    TIMEFORMAT\tUtdata-format for tidsstatistikk som vises av\n"
 "    \t\tdet reserverte ordet «time».\n"
 "    auto_resume\tEt kommandoord som dukker opp alene på en linje\n"
-"    \t\tblir kontrollert mot lista over ventende jobber. Hvis kommandoen "
-"finnes\n"
+"    \t\tblir kontrollert mot lista over ventende jobber. Hvis kommandoen finnes\n"
 "    \t\ti lista, flyttes den til forgrunnen.\n"
 "    \t\tVerdien «exact» betyr at kommandoen må være helt lik\n"
 "    \t\tet kommandonavn i lista over ventende jobber.\n"
@@ -5350,7 +5099,7 @@ msgstr ""
 "    HISTIGNORE\tEn kolondelt liste over mønstre som bestemmer\n"
 "    \t\thvilke kommandoer som skal lagres i historikklista.\n"
 
-#: builtins.c:1821
+#: builtins.c:1822
 msgid ""
 "Add directories to stack.\n"
 "    \n"
@@ -5406,7 +5155,7 @@ msgstr ""
 "    Vellykket, med mindre et ugyldig argument er brukt eller\n"
 "    mappebytte mislykkes."
 
-#: builtins.c:1855
+#: builtins.c:1856
 msgid ""
 "Remove directories from stack.\n"
 "    \n"
@@ -5435,8 +5184,7 @@ msgstr ""
 "Fjern mapper fra stabelen.\n"
 "    \n"
 "    Fjern oppføringer fra mappestabelen. Hvis ingen argumenter er gitt,\n"
-"    fjernes øverste mappe fra stabelen, og tar i bruk ny toppmappe som "
-"arbeidsmappe.\n"
+"    fjernes øverste mappe fra stabelen, og tar i bruk ny toppmappe som arbeidsmappe.\n"
 "    \n"
 "    Valg:\n"
 "      -n\tIkke bytt mappe når mapper fjernes fra stabelen\n"
@@ -5447,8 +5195,7 @@ msgstr ""
 "       F.eks.: «popd +0» fjerner første mappe, og «popd +1» mappe nr. 2.\n"
 "    \n"
 "      -N\tFjern N-te mappe (talt fra null til høyre, etter «dirs»).\n"
-"       F.eks.: «popd -0» fjerner siste mappe, og «popd -1» nest siste "
-"mappe.\n"
+"       F.eks.: «popd -0» fjerner siste mappe, og «popd -1» nest siste mappe.\n"
 "    \n"
 "    Bruk kommandoen «dirs» for å vise mappestabelen.\n"
 "    \n"
@@ -5456,7 +5203,7 @@ msgstr ""
 "    Vellykket, med mindre et ugyldig argument er brukt eller\n"
 "    mappebytte mislykkes."
 
-#: builtins.c:1885
+#: builtins.c:1886
 msgid ""
 "Display directory stack.\n"
 "    \n"
@@ -5502,7 +5249,7 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår feil."
 
-#: builtins.c:1916
+#: builtins.c:1917
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
@@ -5523,10 +5270,8 @@ msgid ""
 msgstr ""
 "Juster og tilbakestill skallvalg.\n"
 "    \n"
-"    Endre innstilling for hvert VALGNAVN. Hvis ingen valg/argumenter er "
-"brukt,\n"
-"    skriver programmet ut alle oppgitte VALGNAVN og viser hvorvidt de har en "
-"verdi.\n"
+"    Endre innstilling for hvert VALGNAVN. Hvis ingen valg/argumenter er brukt,\n"
+"    skriver programmet ut alle oppgitte VALGNAVN og viser hvorvidt de har en verdi.\n"
 "    Hvis ingen VALGNAVN er oppgitt, skriver programmet ut alle skallvalg.\n"
 "    \n"
 "    Valg:\n"
@@ -5540,7 +5285,7 @@ msgstr ""
 "    Vellykket hvis VALGNAVN er slått på, og mislykket hvis enten bruker \n"
 "    tar et ugyldig valg eller VALGNAVN er slått av."
 
-#: builtins.c:1937
+#: builtins.c:1938
 msgid ""
 "Formats and prints ARGUMENTS under control of the FORMAT.\n"
 "    \n"
@@ -5548,34 +5293,29 @@ 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"
+"      %Q\tlike %q, but apply any precision to the unquoted argument before\n"
+"    \t\tquoting\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 ""
 "Formaterer og skriver ut ARGUMENTER på FORMATets premisser.\n"
@@ -5589,35 +5329,29 @@ msgstr ""
 "    - skiftetegn (som konverteres og kopieres til standardutdata), og\n"
 "    - formatspesifikasjoner (som skriver ut påfølgende argument).\n"
 "    \n"
-"    Printf tolker følgende standard-formatspes. i tillegg til de som "
-"står     beskrevet i printf(1):\n"
+"    Printf tolker følgende standard-formatspes. i tillegg til de som står     beskrevet i printf(1):\n"
 "    \n"
 "      %b\tutvid omvendt skråstrek-skiftesekvenser i gjeldende argument\n"
-"      %q\tgi argumentet anførselstegn slik at det kan brukes som skall-"
-"inndata\n"
-"      %(fmt)T skriv ut «date-time»-streng etter bruk av FMT som "
-"formatstreng\n"
+"      %q\tgi argumentet anførselstegn slik at det kan brukes som skall-inndata\n"
+"      %Q\tsom %q, men bruk hvilken som helst presisjon på argumentet uten anførselstegn før\n"
+"     \t\tsitering\n"
+"      %(fmt)T skriv ut «date-time»-streng etter bruk av FMT som formatstreng\n"
 "            med strftime(3)\n"
 "    \n"
-"    Formatet gjenbrukes etter nødvendighet for å bruke opp alle "
-"argumentene.\n"
-"    Hvis det finnes færre argumenter enn formatet krever, oppfører "
-"overflødige\n"
+"    Formatet gjenbrukes etter nødvendighet for å bruke opp alle argumentene.\n"
+"    Hvis det finnes færre argumenter enn formatet krever, oppfører overflødige\n"
 "    formatstrenger seg som om de var 0-verdier eller null-strenger.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår en\n"
 "    skrive- eller tidelingsfeil."
 
-#: builtins.c:1971
-#, fuzzy
+#: builtins.c:1974
 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"
@@ -5632,10 +5366,8 @@ msgid ""
 "    \t\tcommand) word\n"
 "    \n"
 "    When completion is attempted, the actions are applied in the order the\n"
-"    uppercase-letter options are listed above. If multiple options are "
-"supplied,\n"
-"    the -D option takes precedence over -E, and both take precedence over -"
-"I.\n"
+"    uppercase-letter options are listed above. If multiple options are supplied,\n"
+"    the -D option takes precedence over -E, and both take precedence over -I.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
@@ -5643,13 +5375,11 @@ msgstr ""
 "Velg hvordan argumenter skal fullføres av Readline.\n"
 "    \n"
 "    Velg hvordan argumenter skal fullføres per NAVN.\n"
-"    Hvis brukeren ikke tar noen valg, blir gjeldende "
-"fullføringsspesifikasjoner\n"
+"    Hvis brukeren ikke tar noen valg, blir gjeldende fullføringsspesifikasjoner\n"
 "    skrevet ut i et format som egner seg til gjenbruk.\n"
 "    \n"
 "    Valg:\n"
-"      -p\tskriv ut gjeldende fullføringsoppsett i et gjenbrukbart format "
-"(standard)\n"
+"      -p\tskriv ut gjeldende fullføringsoppsett i et gjenbrukbart format (standard)\n"
 "      -r\tfjern en fullføringsspesifikasjon per NAVN\n"
 "    \t(eller fra alle spesifikasjoner hvis ingen NAVN er valgt)\n"
 "      -D\tbruk fullføringer og handlinger som standard for kommandoer uten\n"
@@ -5664,13 +5394,12 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår feil."
 
-#: builtins.c:2001
+#: builtins.c:2004
 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"
@@ -5685,16 +5414,13 @@ msgstr ""
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller det oppstår feil."
 
-#: builtins.c:2016
+#: builtins.c:2019
 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"
@@ -5718,10 +5444,8 @@ msgid ""
 msgstr ""
 "Endre eller vis fullføringsvalg.\n"
 "    \n"
-"    Endre fullføringsvalg per NAVN, eller kjørende fullføringsprosess hvis "
-"ingen\n"
-"    NAVN er valgt. Hvis ingen VALG er brukt, skriv enten ut fullføringsvalg "
-"per NAVN,\n"
+"    Endre fullføringsvalg per NAVN, eller kjørende fullføringsprosess hvis ingen\n"
+"    NAVN er valgt. Hvis ingen VALG er brukt, skriv enten ut fullføringsvalg per NAVN,\n"
 "    eller gjeldende fullføringsoppsett.\n"
 "    \n"
 "    Valg:\n"
@@ -5734,8 +5458,7 @@ msgstr ""
 "    \n"
 "    Argumenter:\n"
 "    \n"
-"    Hvert NAVN henviser til en kommando som må ha en "
-"fullføringsspesifikasjon\n"
+"    Hvert NAVN henviser til en kommando som må ha en fullføringsspesifikasjon\n"
 "    definert med den innebyde kommandoen «complete». Hvis ingen NAVN\n"
 "    er valgt, må compopt brukes av en funksjon som genererer fullføringer.\n"
 "    Valgene for den aktuelle fullføringsgeneratoren blir i så fall endret.\n"
@@ -5744,26 +5467,21 @@ msgstr ""
 "    Vellykket, med mindre bruker tar et ugyldig valg eller NAVN\n"
 "    mangler fullføringsoppsett."
 
-#: builtins.c:2047
+#: builtins.c:2050
 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"
@@ -5776,54 +5494,43 @@ 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 ""
 "Legg linjer fra standard inndata i en indeksert tabellvariabel.\n"
 "    \n"
-"    Legg linjer fra standard inndata i indeksert tabellvariabel TABELL, "
-"eller\n"
+"    Legg linjer fra standard inndata i indeksert tabellvariabel TABELL, eller\n"
 "    fra fildeskriptor FD ved bruk av «-u». Variabelen MAPFILE er\n"
 "    standard TABELL.\n"
 "    \n"
 "    Valg:\n"
-"      -d skill\tBruk SKILLetegn til å avslutte linjer (i stedet for "
-"linjeskift)\n"
-"      -n antall\tIkke kopier flere enn valgt ANTALL linjer. Hvis ANTALL er "
-"0, kopieres alle linjer.\n"
-"      -O oppr\tTildel til TABELL ved indeks-OPPRinnelse. Standard indeks er "
-"0.\n"
+"      -d skill\tBruk SKILLetegn til å avslutte linjer (i stedet for linjeskift)\n"
+"      -n antall\tIkke kopier flere enn valgt ANTALL linjer. Hvis ANTALL er 0, kopieres alle linjer.\n"
+"      -O oppr\tTildel til TABELL ved indeks-OPPRinnelse. Standard indeks er 0.\n"
 "      -s antall \tForkast valgt ANTALL linjer i starten.\n"
 "      -t\t\tFjern etterfølgende linjeskift fra hver lest linje.\n"
-"      -u fd\t\tLes linjer fra fildeskriptor FD i stedet for standard "
-"inndata.\n"
-"      -C tilbakekall\tVurder TILBAKEKALL hver gang valgt ANTALL linjer er "
-"lest.\n"
-"      -c antall\tVelg antall linjer som skal leses mellom hvert "
-"TILBAKEKALL.\n"
+"      -u fd\t\tLes linjer fra fildeskriptor FD i stedet for standard inndata.\n"
+"      -C tilbakekall\tVurder TILBAKEKALL hver gang valgt ANTALL linjer er lest.\n"
+"      -c antall\tVelg antall linjer som skal leses mellom hvert TILBAKEKALL.\n"
 "    \n"
 "    Argumenter:\n"
 "      ARRAY\t\tTabellvariabel-navn som skal brukes i fildata.\n"
 "    \n"
 "    Hvis «-C» er valgt men ikke «-c», brukes standardantallet 5000.  Når\n"
-"    TILBAKEKALL vurderes, argumenteres det i tillegg med indeks av neste "
-"tabellelement\n"
+"    TILBAKEKALL vurderes, argumenteres det i tillegg med indeks av neste tabellelement\n"
 "    samt linjenummeret som skal tildeles aktuelt element.\n"
 "    \n"
-"    Hvis ingen eksplisitt opprinnelse er gitt, tømmes TABELL før den får "
-"tildelt noe.\n"
+"    Hvis ingen eksplisitt opprinnelse er gitt, tømmes TABELL før den får tildelt noe.\n"
 "    \n"
 "    Avslutningsstatus:\n"
 "    Vellykket, med mindre bruker tar et ugyldig valg eller TABELL enten er\n"
 "    skrivebeskyttet eller en ikke-indeksert tabell."
 
-#: builtins.c:2083
+#: builtins.c:2086
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
@@ -5833,6 +5540,9 @@ msgstr ""
 "    \n"
 "    Dette er synonymt med «mapfile»."
 
+#~ msgid "%s: invalid associative array key"
+#~ msgstr "%s: ugyldig nøkkel for assosiativ tabell"
+
 #~ msgid ""
 #~ "Returns the context of the current subroutine call.\n"
 #~ "    \n"
index 188695bea48067b14362fe48198a92f9b4421bb2..6e84d0ce337e249860f1b6f83e23ac044684c6bb 100644 (file)
@@ -129,6 +129,7 @@ static int inside_function_def;
 static int skip_this_indent;
 static int was_heredoc;
 static int printing_connection;
+static int printing_comsub;
 static REDIRECT *deferred_heredocs;
 
 /* The depth of the group commands that we are currently printing.  This
@@ -162,6 +163,21 @@ make_command_string (command)
   return (the_printed_command);
 }
 
+/* Print a command substitution after parsing it in parse_comsub to turn it
+   back into an external representation without turning newlines into `;'.
+   Placeholder for other changes, if any are necessary. */
+char *
+print_comsub (command)
+     COMMAND *command;
+{
+  char *ret;
+
+  printing_comsub++;
+  ret = make_command_string (command);
+  printing_comsub--;
+  return ret;
+}
+
 /* The internal function.  This is the real workhorse. */
 static void
 make_command_string_internal (command)
@@ -278,25 +294,35 @@ make_command_string_internal (command)
              break;
 
            case ';':
-             if (deferred_heredocs == 0)
-               {
-                 if (was_heredoc == 0)
-                   cprintf (";");
-                 else
-                   was_heredoc = 0;
-               }
-             else
-               print_deferred_heredocs (inside_function_def ? "" : ";");
+           case '\n':                          /* special case this */
+             {
+               char c = command->value.Connection->connector;
 
-             if (inside_function_def)
-               cprintf ("\n");
-             else
-               {
-                 cprintf (" ");
-                 if (command->value.Connection->second)
-                   skip_this_indent++;
-               }
-             break;
+               s[0] = printing_comsub ? c : ';';
+               s[1] = '\0';
+
+               if (deferred_heredocs == 0)
+                 {
+                   if (was_heredoc == 0)
+                     cprintf (s);              /* inside_function_def? */
+                   else
+                     was_heredoc = 0;
+                 }
+               else
+                 /* print_deferred_heredocs special-cases `;' */
+                 print_deferred_heredocs (inside_function_def ? "" : ";");
+
+               if (inside_function_def)
+                 cprintf ("\n");
+               else
+                 {
+                   if (c == ';')
+                     cprintf (" ");
+                   if (command->value.Connection->second)
+                     skip_this_indent++;
+                 }
+               break;
+             }
 
            default:
              cprintf (_("print_command: bad connector `%d'"),
@@ -1293,6 +1319,7 @@ reset_locals ()
   indentation = 0;
   printing_connection = 0;
   deferred_heredocs = 0;
+  printing_comsub = 0;
 }
 
 static void
@@ -1364,6 +1391,7 @@ named_function_string (name, command, flags)
   old_amount = indentation_amount;
   command_string_index = was_heredoc = 0;
   deferred_heredocs = 0;
+  printing_comsub = 0;
 
   if (name && *name)
     {
index 3abfc252634400c660c7bfb20acf0dee8599a166..ddf69ed1c3ae64ff44d5550b57958e931836bc91 100644 (file)
@@ -53,16 +53,23 @@ unset before after
 # date +%s should be portable enough now
 # then try gawk, perl, python in that order
 now1=$(date +%s 2>/dev/null) D=date
-[ -z "$now1" ] && now1=$(gawk 'BEGIN { print systime(); }' 2>/dev/null) D=gawk
-[ -z "$now1" ] && now1=$(perl -e 'print time' 2>/dev/null) D=perl
-[ -z "$now1" ] && now1=$(python -c 'import time; ts = int(time.time()); print(ts)' 2>/dev/null) D=python
+[ -z "$now1" ] &&
+{
+       now1=$(gawk 'BEGIN { print systime(); }' 2>/dev/null) D=gawk
+       [ -z "$now1" ] && now1=$(perl -e 'print time' 2>/dev/null) D=perl
+       [ -z "$now1" ] && now1=$(python -c 'import time; ts = int(time.time()); print(ts)' 2>/dev/null) D=python
+}
 now2=$EPOCHSECONDS
 
-case $now1 in
-$now2) echo EPOCHSECONDS ok ;;
-'')    echo "cannot get current time using date/gawk/perl/python" >&2 ;;
-*)     echo "current time via $D and EPOCHSECONDS possible mismatch|$now1|$now2" >&2 ;;
-esac
+# use a window of +-1 second
+offset=1
+if [[ -z $now1 ]]; then
+       echo "cannot get current time using date/gawk/perl/python" >&2
+elif (( $now1 - $offset <= $now2 && $now2 <= $now1 + $offset )); then
+       echo EPOCHSECONDS ok
+else
+       echo "current time via $D and EPOCHSECONDS possible mismatch|$now1|$now2|offset=$offset" >&2
+fi
 unset now1 now2 D
 
 LC_ALL=C               # force decimal point to `.'
index 33da5238a2381ffc7ae053777dd162591c08a618..cc193f66601913a941c0f9280ad9a2d3271dd0e6 100644 (file)
@@ -120,11 +120,12 @@ argv[3] = <ve>
 5: ${x#$pat}
 6: ${y#$'not'}
 7: ${y#'not'}
+./heredoc7.sub: line 17: warning: command substitution: 1 unterminated here-document
 foo bar
 ./heredoc7.sub: line 21: after: command not found
 ./heredoc7.sub: line 29: warning: here-document at line 29 delimited by end-of-file (wanted `EOF')
 ./heredoc7.sub: line 29: foobar: command not found
-./heredoc7.sub: line 29: EOF: command not found
+./heredoc7.sub: line 30: EOF: command not found
 grep: *.c: No such file or directory
 comsub here-string
 ./heredoc.tests: line 156: warning: here-document at line 154 delimited by end-of-file (wanted `EOF')